authorgravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-06-13 19:01:00-04:00
committergravatar for kcbanner@gmail.comCasey Banner <kcbanner@gmail.com> 2026-06-23 00:27:17-04:00
loge2c587ae54cba1d2b13b5cbef8530e13fab04c7f
tree2abd1c320527b508f9d99f498a29d98e62ca408d
parentb981b7975dad40e4e779f848530bf80e54b7cde4

objdump: when redacting ordinals, show weak external alias as relative to the WEAK_EXTERNAL symbol

objdump: dump the filename for file aux symbols test/link: remove the text attribute on the snapshots folder to avoid changing snapshot line endings

4 files changed, 16 insertions(+), 11 deletions(-)

lib/compiler/objdump.zig+13-9
......@@ -1037,21 +1037,25 @@ const coff = struct {
10371037 .{ weak_external.tag_index, symbol_i },
10381038 );
10391039
1040 try w.print(" Weak External [falls back to {x:0>8} via {t}]", .{
1041 weak_external.tag_index,
1042 weak_external.flag,
1043 });
1040 if (d.redacted(.ord))
1041 try w.print(" Weak External [falls back to relative ordinal {x:0>8} via {t}]", .{
1042 @as(i64, weak_external.tag_index) - symbol_i,
1043 weak_external.flag,
1044 })
1045 else
1046 try w.print(" Weak External [falls back to ordinal {x:0>8} via {t}]", .{
1047 weak_external.tag_index,
1048 weak_external.flag,
1049 });
10441050 } else if (symbol.storage_class == .FILE) {
10451051 if (!std.mem.eql(u8, name, ".file")) {
10461052 try w.print(" !! unexpected symbol name '{s}' for file symbol 0x{x}", .{ name, symbol_i });
10471053 continue;
10481054 }
10491055
1050 var file: std.coff.FileDefinition = undefined;
1051 @memcpy(std.mem.asBytes(&file)[0..symbol_size], aux_symbols[0..symbol_size]);
1052
1053 // TODO
1054 _ = file.getFileName();
1056 const filename = std.mem.sliceTo(aux_symbols, 0);
1057 try w.print(" File '{s}'", .{filename});
1058 break;
10551059 } else if (symbol.storage_class == .STATIC and
10561060 symbol.type == std.coff.SymType{
10571061 .complex_type = .NULL,
test/link/snapshots/.gitattributes created+1
......@@ -0,0 +1 @@
1* -text
test/link/snapshots/static-lib.llvm.dmp+1-1
......@@ -11,5 +11,5 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong
1111xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias
1212xxxx 00000008 2 NULL EXTERNAL | foo_array
1313xxxx 00000000 UNDEF NULL WEAK_EXTERNAL | fooWeak
14 | Weak External [falls back to 00000025 via SEARCH_ALIAS]
14 | Weak External [falls back to relative ordinal 000000+2 via SEARCH_ALIAS]
1515xxxx 00000000 1 NULL() EXTERNAL | .weak.fooWeak.default.foo_strong
test/link/snapshots/static-lib.no-llvm.dmp+1-1
......@@ -9,4 +9,4 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong
99xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias
1010xxxx 00000010 2 NULL EXTERNAL | foo_array
1111xxxx 00000000 UNDEF NULL() WEAK_EXTERNAL | fooWeak
12 | Weak External [falls back to 0000000d via SEARCH_ALIAS]
12 | Weak External [falls back to relative ordinal 000000-4 via SEARCH_ALIAS]