A repository that collects libc ABI files for multiple versions and a tool to combine them into one dataset.
186
stars
112
commits
Zig
primary language
Oct 19, 2025
updated
This repository contains a collection of tools to be used by Zig maintainers to
generate abilists files for various libc implementations; Zig users have no
direct use for this repository.
An abilists file can be used by the Zig compiler to generate an accurate stub
shared library when dynamically linking libc in cross-compilation scenarios. The
generated abilists files are shipped with the Zig compiler, so an effort is
made to keep them compact.
Currently supported libcs:
abilists binary formatAll integers are stored little-endian.
u8 number of libc libraries. For each:
"c\x00", "m\x00", "dl\x00", "pthread\x00"u8 number of libc versions, sorted ascending. For each:
u8 majoru8 minoru8 patchu8 number of targets. For each:
"arm-linux-gnueabi\x00"u16 number of function inclusions
u16 number of object inclusions
u16 number of TLS inclusions
Set of Function Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexSet of Object Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u16) object sizeu8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexSet of TLS Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u16) object sizeu8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexabilists filezig run list.zig -- abilists
Zig
100.0%
A repository that collects libc ABI files for multiple versions and a tool to combine them into one dataset.
186
stars
112
commits
Zig
primary language
Oct 19, 2025
updated
This repository contains a collection of tools to be used by Zig maintainers to
generate abilists files for various libc implementations; Zig users have no
direct use for this repository.
An abilists file can be used by the Zig compiler to generate an accurate stub
shared library when dynamically linking libc in cross-compilation scenarios. The
generated abilists files are shipped with the Zig compiler, so an effort is
made to keep them compact.
Currently supported libcs:
abilists binary formatAll integers are stored little-endian.
u8 number of libc libraries. For each:
"c\x00", "m\x00", "dl\x00", "pthread\x00"u8 number of libc versions, sorted ascending. For each:
u8 majoru8 minoru8 patchu8 number of targets. For each:
"arm-linux-gnueabi\x00"u16 number of function inclusions
u16 number of object inclusions
u16 number of TLS inclusions
Set of Function Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexSet of Object Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u16) object sizeu8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexSet of TLS Inclusions:
u64) set of targets this inclusion applies to (1 << INDEX_IN_TARGET_LIST)u16) object sizeu8 index of libc library this inclusion applies to
1 << 5 bit is set in library index1 << 6 bit is set in library index1 << 7 bit is set in library index[N]u8 set of libc versions this inclusion applies to
1 << 7 bit is set in version indexabilists filezig run list.zig -- abilists
Zig
100.0%