diff --git a/lib/compiler/objdump.zig b/lib/compiler/objdump.zig index 539a4fe384036a1de025fa3c1585181f869dcbe0..c3f6f5e8a7a444862b1396427fcf589805725942 100644 --- 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 new file mode 100644 index 0000000000000000000000000000000000000000..625449502ba4b4d7c229c6ccee42e3ec41cc780c --- /dev/null +++ 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 index 0b4f7ab2e207befefe8401b67213b0c8e74ab3ed..f64e76be1134c735e77bb6e2e10d0983a8858d35 100644 --- 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 index 0c9a4c1e8254cf6a162a91cef2be6799b7a4ba59..07e2219bfd57889557bd5eda680dc5de4ba62e42 100644 --- 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]