Commit 245dc9d930
Changed files (3)
tools
lib/libc/glibc/abi.txt
@@ -193,6 +193,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
+
29
29
@@ -514,6 +515,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+29
29
@@ -697,6 +699,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+
29
29
29
@@ -819,6 +822,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+29
29
29
@@ -904,6 +908,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+29
+
+
29
29
29
@@ -1004,6 +1011,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+29
29
29
@@ -1033,6 +1041,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
29
29
29
+29
29
29
@@ -3920,6 +3929,7 @@ s390x-linux-gnu
5
+
27
27
@@ -4241,6 +4251,7 @@ s390x-linux-gnu
5
5
5
+5
11
27
@@ -4424,6 +4435,7 @@ s390x-linux-gnu
19
19
5
+
5
5
28
@@ -4543,6 +4555,7 @@ s390x-linux-gnu
27
16
+
5
5
15
@@ -4631,6 +4644,9 @@ s390x-linux-gnu
16
5
5
+
+
+12
5
5
5
@@ -4731,6 +4747,7 @@ s390x-linux-gnu
5
5
5
+5
5
5
@@ -4756,6 +4773,7 @@ s390x-linux-gnu
5
5
5
+5
31 5
24 5 12 16
24 5 12 16
@@ -7645,6 +7663,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
+
27
@@ -7968,6 +7987,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
16
16
16
+16
27
@@ -8151,6 +8171,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
19
19
16
+
16
16
28
@@ -8273,6 +8294,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
16
16
16
+16
16
16
@@ -8358,6 +8380,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
16
16
16
+16
+
+
16
16
16
@@ -8458,6 +8483,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
16
16
16
+16
16
16
@@ -8484,6 +8510,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
16
16
16
+16
24 16
24 16
16
@@ -11374,6 +11401,7 @@ sparc-linux-gnu sparcel-linux-gnu
0
+
27
27
@@ -11693,6 +11721,7 @@ sparc-linux-gnu sparcel-linux-gnu
0
0
1
+1
0
0
3 11
@@ -11878,6 +11907,7 @@ sparc-linux-gnu sparcel-linux-gnu
19
19
0
+
0
1
28
@@ -11997,6 +12027,7 @@ sparc-linux-gnu sparcel-linux-gnu
33
16
+
5
0
15
@@ -12085,6 +12116,9 @@ sparc-linux-gnu sparcel-linux-gnu
16
0
0
+12
+
+
1
1
1
@@ -12183,6 +12217,7 @@ sparc-linux-gnu sparcel-linux-gnu
1
1
1
+1
0
0
@@ -12207,6 +12242,7 @@ sparc-linux-gnu sparcel-linux-gnu
0
0
0
+0
5
0
0
@@ -15101,6 +15137,7 @@ sparcv9-linux-gnu
5
5
+
27
27
@@ -15422,6 +15459,7 @@ sparcv9-linux-gnu
5
5
5
+5
11
27
@@ -15605,6 +15643,7 @@ sparcv9-linux-gnu
19
19
5
+
5
5
28
@@ -15724,6 +15763,7 @@ sparcv9-linux-gnu
27
16
+
5
5
15
@@ -15812,6 +15852,9 @@ sparcv9-linux-gnu
16
5
5
+12
+
+
5
5
5
@@ -15912,6 +15955,7 @@ sparcv9-linux-gnu
5
5
5
+5
5
5
@@ -15938,6 +15982,7 @@ sparcv9-linux-gnu
5
5
5
+5
24 28 5 12 16
24 28 5 12 16
5 14
@@ -18828,6 +18873,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
0
+
27
27
@@ -19147,6 +19193,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
0
0
5
+5
0
0
11
@@ -19332,6 +19379,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
19
19
0
+
0
5
28
@@ -19450,6 +19498,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
27
27
+16
16
5
0
@@ -19539,6 +19588,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
16
0
0
+12
+
+
5
5
5
@@ -19637,6 +19689,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
5
5
5
+5
0
0
0
@@ -19661,6 +19714,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
0
0
0
+0
5
0
0
@@ -22555,6 +22609,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
0
+
27
27
@@ -22874,6 +22929,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
0
0
5
+5
0
0
11
@@ -23059,6 +23115,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
19
19
0
+
0
5
28
@@ -23177,6 +23234,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
27
27
+16
16
5
0
@@ -23266,6 +23324,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
16
0
0
+12
+
+
5
5
5
@@ -23364,6 +23425,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
5
5
5
+5
0
0
0
@@ -23388,6 +23450,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
0
0
0
+0
5
0
0
@@ -26282,6 +26345,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
0
+
27
27
@@ -26601,6 +26665,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
0
0
5
+5
0
0
11
@@ -26786,6 +26851,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
19
19
0
+
0
5
28
@@ -26904,6 +26970,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
27
+16
16
5
0
@@ -26993,6 +27060,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
16
0
0
+12
+
+
5
5
5
@@ -27091,6 +27161,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
5
5
5
+5
0
0
0
@@ -27115,6 +27186,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
0
0
0
+0
5
0
0
@@ -30009,6 +30081,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
0
+
27
27
@@ -30328,6 +30401,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
0
0
5
+5
0
0
11
@@ -30513,6 +30587,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
19
19
0
+
0
5
28
@@ -30631,6 +30706,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
27
+16
16
5
0
@@ -30720,6 +30796,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi
16
0
0
+12
+
+
5
5
5
@@ -30818,6 +30897,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
5
5
5
+5
0
0
0
@@ -30842,6 +30922,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
0
0
0
+0
5
0
0
@@ -33734,6 +33815,7 @@ x86_64-linux-gnu
+
27
@@ -34057,6 +34139,7 @@ x86_64-linux-gnu
10
10
10
+10
11
27
36
@@ -34240,6 +34323,7 @@ x86_64-linux-gnu
19
19
10
+
10
10
28
@@ -34359,6 +34443,7 @@ x86_64-linux-gnu
27
16
+
10
10
15
@@ -34447,6 +34532,9 @@ x86_64-linux-gnu
16
10
10
+12
+
+
10
10
10
@@ -34547,6 +34635,7 @@ x86_64-linux-gnu
10
10
10
+10
10
10
@@ -34573,6 +34662,7 @@ x86_64-linux-gnu
10
10
10
+10
24 10 12 16
24 10 12 16
10 14
@@ -37461,6 +37551,7 @@ x86_64-linux-gnux32
+
28
@@ -37784,6 +37875,7 @@ x86_64-linux-gnux32
28
28
28
+28
28
36
@@ -37967,6 +38059,7 @@ x86_64-linux-gnux32
28
28
28
+
28
28
28
@@ -38086,6 +38179,7 @@ x86_64-linux-gnux32
28
28
+
28
28
28
@@ -38174,6 +38268,9 @@ x86_64-linux-gnux32
28
28
28
+28
+
+
28
28
28
@@ -38274,6 +38371,7 @@ x86_64-linux-gnux32
28
28
28
+28
28
28
@@ -38303,6 +38401,7 @@ x86_64-linux-gnux32
28
28
28
+28
28
28
@@ -41190,6 +41289,7 @@ i386-linux-gnu
0
+12
27
36
27
@@ -41509,6 +41609,7 @@ i386-linux-gnu
0
0
1
+1
0
0
3 11
@@ -41694,6 +41795,7 @@ i386-linux-gnu
19
19
0
+
0
1
28
@@ -41813,6 +41915,7 @@ i386-linux-gnu
27
16
+
5
0
15
@@ -41901,6 +42004,9 @@ i386-linux-gnu
16
0
0
+12
+
+
1
1
1
@@ -41999,6 +42105,7 @@ i386-linux-gnu
1
1
1
+1
0
0
@@ -42023,6 +42130,7 @@ i386-linux-gnu
0
0
0
+0
5
0
0
@@ -44915,6 +45023,7 @@ powerpc64le-linux-gnu
+
29
@@ -45238,6 +45347,7 @@ powerpc64le-linux-gnu
29
29
29
+29
29
36
@@ -45421,6 +45531,7 @@ powerpc64le-linux-gnu
29
29
29
+33
29
29
29
@@ -45540,6 +45651,7 @@ powerpc64le-linux-gnu
29
29
+
29
29
29
@@ -45628,6 +45740,9 @@ powerpc64le-linux-gnu
29
29
29
+29
+32
+
29
29
29
@@ -45728,6 +45843,7 @@ powerpc64le-linux-gnu
29
29
29
+29
29
29
@@ -45757,6 +45873,7 @@ powerpc64le-linux-gnu
29
29
29
+29
29
29
@@ -48642,6 +48759,7 @@ powerpc64-linux-gnu
+
27
@@ -48965,6 +49083,7 @@ powerpc64-linux-gnu
12
12
12
+12
27
@@ -49148,6 +49267,7 @@ powerpc64-linux-gnu
19
19
12
+33
12
12
28
@@ -49267,6 +49387,7 @@ powerpc64-linux-gnu
27
16
+
12
12
15
@@ -49355,6 +49476,9 @@ powerpc64-linux-gnu
16
12
12
+12
+32
+
12
12
12
@@ -49455,6 +49579,7 @@ powerpc64-linux-gnu
12
12
12
+12
12
12
@@ -49480,6 +49605,7 @@ powerpc64-linux-gnu
12
12
12
+12
12 15
24 12 16
24 12 16
@@ -52369,6 +52495,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
+
27
@@ -52690,6 +52817,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
0
0
1
+1
0
0
3 11
@@ -52875,6 +53003,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
19
19
0
+33
0
1
28
@@ -52994,6 +53123,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
27
13
16
+
5
0
15
@@ -53082,6 +53212,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
16
0
0
+12
+32
+
1
1
1
@@ -53180,6 +53313,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
1
1
1
+1
0
0
@@ -53204,6 +53338,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
0
0
0
+0
5
0
0
lib/libc/glibc/fns.txt
@@ -192,6 +192,7 @@ _Qp_uitoq c
_Qp_uxtoq c
_Qp_xtoq c
___brk_addr c
+___tls_get_addr ld
__acos_finite m
__acosf128_finite m
__acosf_finite m
@@ -511,6 +512,7 @@ __libc_memalign c
__libc_pvalloc c
__libc_realloc c
__libc_sa_len c
+__libc_stack_end ld
__libc_start_main c
__libc_valloc c
__libpthread_version_placeholder pthread
@@ -696,6 +698,7 @@ __open_2 c
__openat64_2 c
__openat_2 c
__overflow c
+__parse_hwcap_and_convert_at_platform ld
__pipe c
__poll c
__poll_chk c
@@ -815,6 +818,7 @@ __sqrtf_finite m
__sqrtl_finite m
__sqrtsf2 c
__stack_chk_fail c
+__stack_chk_guard ld
__statfs c
__stpcpy c
__stpcpy_chk c
@@ -903,6 +907,9 @@ __sysctl c
__syslog_chk c
__sysv_signal c
__timezone c
+__tls_get_addr ld
+__tls_get_addr_opt ld
+__tls_get_offset ld
__toascii_l c
__tolower_l c
__toupper_l c
@@ -999,6 +1006,7 @@ __ynf128_finite m
__ynf_finite m
__ynl_finite m
_authenticate c
+_dl_mcount ld
_dl_mcount_wrapper c
_dl_mcount_wrapper_check c
_environ c
@@ -1024,6 +1032,7 @@ _pthread_cleanup_pop pthread
_pthread_cleanup_pop_restore pthread
_pthread_cleanup_push pthread
_pthread_cleanup_push_defer pthread
+_r_debug ld
_res c
_res_hconf c
_rpc_dtablesize c
tools/update_glibc.zig
@@ -20,6 +20,7 @@ const lib_names = [_][]const u8{
"m",
"pthread",
"rt",
+ "ld",
};
// fpu/nofpu are hardcoded elsewhere, based on .gnueabi/.gnueabihf with an exception for .arm
@@ -154,22 +155,24 @@ pub fn main() !void {
const fn_set = &target_funcs_gop.kv.value.list;
for (lib_names) |lib_name, lib_name_index| {
- const basename = try fmt.allocPrint(allocator, "lib{}.abilist", .{lib_name});
+ const lib_prefix = if (std.mem.eql(u8, lib_name, "ld")) "" else "lib";
+ const basename = try fmt.allocPrint(allocator, "{}{}.abilist", .{ lib_prefix, lib_name });
const abi_list_filename = blk: {
- if (abi_list.targets[0].abi == .gnuabi64 and std.mem.eql(u8, lib_name, "c")) {
+ const is_c = std.mem.eql(u8, lib_name, "c");
+ const is_m = std.mem.eql(u8, lib_name, "m");
+ const is_ld = std.mem.eql(u8, lib_name, "ld");
+ if (abi_list.targets[0].abi == .gnuabi64 and (is_c or is_ld)) {
break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n64", basename });
- } else if (abi_list.targets[0].abi == .gnuabin32 and std.mem.eql(u8, lib_name, "c")) {
+ } else if (abi_list.targets[0].abi == .gnuabin32 and (is_c or is_ld)) {
break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n32", basename });
} else if (abi_list.targets[0].arch != .arm and
abi_list.targets[0].abi == .gnueabihf and
- (std.mem.eql(u8, lib_name, "c") or
- (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc)))
+ (is_c or (is_m and abi_list.targets[0].arch == .powerpc)))
{
break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "fpu", basename });
} else if (abi_list.targets[0].arch != .arm and
abi_list.targets[0].abi == .gnueabi and
- (std.mem.eql(u8, lib_name, "c") or
- (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc)))
+ (is_c or (is_m and abi_list.targets[0].arch == .powerpc)))
{
break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "nofpu", basename });
} else if (abi_list.targets[0].arch == .arm) {
@@ -234,8 +237,8 @@ pub fn main() !void {
const vers_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "vers.txt" });
const vers_txt_file = try fs.cwd().createFile(vers_txt_path, .{});
defer vers_txt_file.close();
- var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&vers_txt_file.outStream().stream);
- const vers_txt = &buffered.stream;
+ var buffered = std.io.bufferedOutStream(vers_txt_file.outStream());
+ const vers_txt = buffered.outStream();
for (global_ver_list) |name, i| {
_ = global_ver_set.put(name, i) catch unreachable;
try vers_txt.print("{}\n", .{name});
@@ -246,8 +249,8 @@ pub fn main() !void {
const fns_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "fns.txt" });
const fns_txt_file = try fs.cwd().createFile(fns_txt_path, .{});
defer fns_txt_file.close();
- var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&fns_txt_file.outStream().stream);
- const fns_txt = &buffered.stream;
+ var buffered = std.io.bufferedOutStream(fns_txt_file.outStream());
+ const fns_txt = buffered.outStream();
for (global_fn_list) |name, i| {
const kv = global_fn_set.get(name).?;
kv.value.index = i;
@@ -277,8 +280,8 @@ pub fn main() !void {
const abilist_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "abi.txt" });
const abilist_txt_file = try fs.cwd().createFile(abilist_txt_path, .{});
defer abilist_txt_file.close();
- var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&abilist_txt_file.outStream().stream);
- const abilist_txt = &buffered.stream;
+ var buffered = std.io.bufferedOutStream(abilist_txt_file.outStream());
+ const abilist_txt = buffered.outStream();
// first iterate over the abi lists
for (abi_lists) |*abi_list, abi_index| {