This is a sub-task of #8726.
LLD on Mach-O is fatally flawed for a few reasons. One example is #3295.
However Zig still falls back to LLD for Mach-O in a handful of cases. Here is the current logic:
// Make a decision on whether to use LLD or our own linker. const use_lld = if (options.use_lld) |explicit| explicit else blk: { if (!build_options.have_llvm) break :blk false; if (ofmt == .c) break :blk false; if (options.want_lto) |lto| { if (lto) { break :blk true; } } // Our linker can't handle objects or most advanced options yet. if (options.link_objects.len != 0 or options.c_source_files.len != 0 or options.frameworks.len != 0 or options.system_libs.len != 0 or options.link_libc or options.link_libcpp or options.link_eh_frame_hdr or options.link_emit_relocs or options.output_mode == .Lib or options.lld_argv.len != 0 or options.image_base_override != null or options.linker_script != null or options.version_script != null) { break :blk true; } if (use_llvm) { // If stage1 generates an object file, self-hosted linker is not // yet sophisticated enough to handle that. break :blk options.root_pkg != null; } break :blk false; }; const use_zld = blk: { if (self.base.options.is_native_os and self.base.options.system_linker_hack) { // If the user forces the use of ld64, make sure we are running native! break :blk false; } if (self.base.options.target.cpu.arch == .aarch64) { // On aarch64, always use zld. break :blk true; } if (self.base.options.output_mode == .Lib or self.base.options.linker_script != null) { // Fallback to LLD in this handful of cases on x86_64 only. break :blk false; } break :blk true; };This issue is to improve self-hosted linking on Mach-O enough that for Mach-O targets, we always use self-hosted linking, and we can remove this line from cmake:
FIND_AND_ADD_LLD_LIB(lldMachO)jedisct1, komuw, kivutar and slavakurilyakkubkon and jedisct1kubkon, jedisct1 and komuwkubkon, jedisct1 and komuwkubkon and jedisct1
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4