| author | |
| committer | |
| log | e2c587ae54cba1d2b13b5cbef8530e13fab04c7f |
| tree | 2abd1c320527b508f9d99f498a29d98e62ca408d |
| parent | b981b7975dad40e4e779f848530bf80e54b7cde4 |
objdump: dump the filename for file aux symbols
test/link: remove the text attribute on the snapshots folder to avoid changing snapshot line endings4 files changed, 16 insertions(+), 11 deletions(-)
lib/compiler/objdump.zig+13-9| ... | @@ -1037,21 +1037,25 @@ const coff = struct { | ... | @@ -1037,21 +1037,25 @@ const coff = struct { |
| 1037 | .{ weak_external.tag_index, symbol_i }, | 1037 | .{ weak_external.tag_index, symbol_i }, |
| 1038 | ); | 1038 | ); |
| 1039 | 1039 | ||
| 1040 | try w.print(" Weak External [falls back to {x:0>8} via {t}]", .{ | 1040 | if (d.redacted(.ord)) |
| 1041 | weak_external.tag_index, | 1041 | try w.print(" Weak External [falls back to relative ordinal {x:0>8} via {t}]", .{ |
| 1042 | weak_external.flag, | 1042 | @as(i64, weak_external.tag_index) - symbol_i, |
| 1043 | }); | 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 | }); | ||
| 1044 | } else if (symbol.storage_class == .FILE) { | 1050 | } else if (symbol.storage_class == .FILE) { |
| 1045 | if (!std.mem.eql(u8, name, ".file")) { | 1051 | if (!std.mem.eql(u8, name, ".file")) { |
| 1046 | try w.print(" !! unexpected symbol name '{s}' for file symbol 0x{x}", .{ name, symbol_i }); | 1052 | try w.print(" !! unexpected symbol name '{s}' for file symbol 0x{x}", .{ name, symbol_i }); |
| 1047 | continue; | 1053 | continue; |
| 1048 | } | 1054 | } |
| 1049 | 1055 | ||
| 1050 | var file: std.coff.FileDefinition = undefined; | 1056 | const filename = std.mem.sliceTo(aux_symbols, 0); |
| 1051 | @memcpy(std.mem.asBytes(&file)[0..symbol_size], aux_symbols[0..symbol_size]); | 1057 | try w.print(" File '{s}'", .{filename}); |
| 1052 | 1058 | break; | |
| 1053 | // TODO | ||
| 1054 | _ = file.getFileName(); | ||
| 1055 | } else if (symbol.storage_class == .STATIC and | 1059 | } else if (symbol.storage_class == .STATIC and |
| 1056 | symbol.type == std.coff.SymType{ | 1060 | symbol.type == std.coff.SymType{ |
| 1057 | .complex_type = .NULL, | 1061 | .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 | ... | @@ -11,5 +11,5 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong |
| 11 | xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias | 11 | xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias |
| 12 | xxxx 00000008 2 NULL EXTERNAL | foo_array | 12 | xxxx 00000008 2 NULL EXTERNAL | foo_array |
| 13 | xxxx 00000000 UNDEF NULL WEAK_EXTERNAL | fooWeak | 13 | xxxx 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] |
| 15 | xxxx 00000000 1 NULL() EXTERNAL | .weak.fooWeak.default.foo_strong | 15 | xxxx 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 | ... | @@ -9,4 +9,4 @@ xxxx 00000000 2 NULL EXTERNAL | foo_strong |
| 9 | xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias | 9 | xxxx 00000000 2 NULL EXTERNAL | foo_strong_alias |
| 10 | xxxx 00000010 2 NULL EXTERNAL | foo_array | 10 | xxxx 00000010 2 NULL EXTERNAL | foo_array |
| 11 | xxxx 00000000 UNDEF NULL() WEAK_EXTERNAL | fooWeak | 11 | xxxx 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] |