zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit e2c587ae54cba1d2b13b5cbef8530e13fab04c7f (tree)
parent b981b7975dad40e4e779f848530bf80e54b7cde4
Author: kcbanner <kcbanner@gmail.com>
Date:   Sat, 13 Jun 2026 19:01:00 -0400

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

Diffstat:
Mlib/compiler/objdump.zig | 22+++++++++++++---------
Atest/link/snapshots/.gitattributes | 1+
Mtest/link/snapshots/static-lib.llvm.dmp | 2+-
Mtest/link/snapshots/static-lib.no-llvm.dmp | 2+-
4 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/lib/compiler/objdump.zig b/lib/compiler/objdump.zig @@ -1037,21 +1037,25 @@ const coff = struct { .{ weak_external.tag_index, symbol_i }, ); - try w.print(" Weak External [falls back to {x:0>8} via {t}]", .{ - weak_external.tag_index, - weak_external.flag, - }); + if (d.redacted(.ord)) + try w.print(" Weak External [falls back to relative ordinal {x:0>8} via {t}]", .{ + @as(i64, weak_external.tag_index) - symbol_i, + weak_external.flag, + }) + else + try w.print(" Weak External [falls back to ordinal {x:0>8} via {t}]", .{ + weak_external.tag_index, + weak_external.flag, + }); } else if (symbol.storage_class == .FILE) { if (!std.mem.eql(u8, name, ".file")) { try w.print(" !! unexpected symbol name '{s}' for file symbol 0x{x}", .{ name, symbol_i }); continue; } - var file: std.coff.FileDefinition = undefined; - @memcpy(std.mem.asBytes(&file)[0..symbol_size], aux_symbols[0..symbol_size]); - - // TODO - _ = file.getFileName(); + const filename = std.mem.sliceTo(aux_symbols, 0); + try w.print(" File '{s}'", .{filename}); + break; } else if (symbol.storage_class == .STATIC and symbol.type == std.coff.SymType{ .complex_type = .NULL, diff --git a/test/link/snapshots/.gitattributes b/test/link/snapshots/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/test/link/snapshots/static-lib.llvm.dmp b/test/link/snapshots/static-lib.llvm.dmp @@ -11,5 +11,5 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias xxxx 00000008 2 NULL EXTERNAL | foo_array xxxx 00000000 UNDEF NULL WEAK_EXTERNAL | fooWeak - | Weak External [falls back to 00000025 via SEARCH_ALIAS] + | Weak External [falls back to relative ordinal 000000+2 via SEARCH_ALIAS] xxxx 00000000 1 NULL() EXTERNAL | .weak.fooWeak.default.foo_strong diff --git a/test/link/snapshots/static-lib.no-llvm.dmp b/test/link/snapshots/static-lib.no-llvm.dmp @@ -9,4 +9,4 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias xxxx 00000010 2 NULL EXTERNAL | foo_array xxxx 00000000 UNDEF NULL() WEAK_EXTERNAL | fooWeak - | Weak External [falls back to 0000000d via SEARCH_ALIAS] + | Weak External [falls back to relative ordinal 000000-4 via SEARCH_ALIAS]