zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/link/MachO.zig | 12+++++++++---
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; }