commit 57f9304275b7704fc2bd2879cdbb344c9f82e75c (tree)
parent ef645ab1754d6117d06cf2296de689605546f5f7
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Wed, 5 Apr 2023 18:31:47 +0200
macho: improve reporting of missing symbols
Fix a typo in TLV bootstrap symbol: __tlv_bootstrap.
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
@@ -702,9 +702,9 @@ pub fn flushModule(self: *MachO, comp: *Compilation, prog_node: *std.Progress.No
if (self.dyld_stub_binder_index == null) {
self.dyld_stub_binder_index = try self.addUndefined("dyld_stub_binder", .add_got);
}
- // if (!self.base.options.single_threaded) {
- // _ = try self.addUndefined("_tlv_bootstrap", .none);
- // }
+ if (!self.base.options.single_threaded) {
+ _ = try self.addUndefined("__tlv_bootstrap", .none);
+ }
try self.createMhExecuteHeaderSymbol();
@@ -713,6 +713,12 @@ pub fn flushModule(self: *MachO, comp: *Compilation, prog_node: *std.Progress.No
try self.resolveSymbolsInDylibs(&actions);
if (self.unresolved.count() > 0) {
+ for (self.unresolved.keys()) |index| {
+ // TODO: convert into compiler errors.
+ const global = self.globals.items[index];
+ const sym_name = self.getSymbolName(global);
+ log.err("undefined symbol reference '{s}'", .{sym_name});
+ }
return error.UndefinedSymbolReference;
}