From 57f9304275b7704fc2bd2879cdbb344c9f82e75c Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Wed, 5 Apr 2023 18:31:47 +0200 Subject: [PATCH] macho: improve reporting of missing symbols Fix a typo in TLV bootstrap symbol: __tlv_bootstrap. --- src/link/MachO.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/link/MachO.zig b/src/link/MachO.zig index 9dbdeaaad1..990ad16452 100644 --- 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; }