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:
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]