authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-05-13 00:20:23+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-05-17 04:41:24+02:00
loge52ffe673875db6c3007be8632849b8c65a41462
tree70309525a1123938b7b2aec69d551b361d75bee6
parent9e48e919e7f2bd29ae3bd664646c28d9baf6d0fd
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

glibc: Fix a benign bug when selecting the size of an object symbol.

This didn't cause any problems in practice, but doing it this way is technically more correct.

1 files changed, 7 insertions(+), 4 deletions(-)

src/libs/glibc.zig+7-4
......@@ -966,6 +966,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
966966
967967 const obj_inclusions_len = try inc_reader.readInt(u16, .little);
968968
969 var sizes = try arena.alloc(u16, metadata.all_versions.len);
970
969971 sym_i = 0;
970972 opt_symbol_name = null;
971973 versions_buffer = undefined;
......@@ -1003,6 +1005,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
10031005 if (ok_lib_and_target and ver_i <= target_ver_index) {
10041006 versions_buffer[versions_len] = ver_i;
10051007 versions_len += 1;
1008 sizes[ver_i] = size;
10061009 }
10071010 if (last) break;
10081011 }
......@@ -1066,14 +1069,14 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
10661069 sym_plus_ver,
10671070 sym_plus_ver,
10681071 sym_plus_ver,
1069 size,
1072 sizes[ver_index],
10701073 sym_plus_ver,
10711074 sym_name,
10721075 at_sign_str,
10731076 ver.major,
10741077 ver.minor,
10751078 sym_plus_ver,
1076 size,
1079 sizes[ver_index],
10771080 });
10781081 } else {
10791082 const sym_plus_ver = try std.fmt.allocPrint(
......@@ -1094,7 +1097,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
10941097 sym_plus_ver,
10951098 sym_plus_ver,
10961099 sym_plus_ver,
1097 size,
1100 sizes[ver_index],
10981101 sym_plus_ver,
10991102 sym_name,
11001103 at_sign_str,
......@@ -1102,7 +1105,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
11021105 ver.minor,
11031106 ver.patch,
11041107 sym_plus_ver,
1105 size,
1108 sizes[ver_index],
11061109 });
11071110 }
11081111 }