Commit 96a703ee6d
2020-12-04 16:23:21
1 parent
32997a2Changed files (2)
src
src/link/MachO.zig
@@ -476,6 +476,8 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void {
man.hash.addStringSet(self.base.options.system_libs);
man.hash.add(allow_shlib_undefined);
man.hash.add(self.base.options.bind_global_refs_locally);
+ man.hash.add(self.base.options.system_linker_hack);
+ man.hash.addOptionalBytes(self.base.options.syslibroot);
// We don't actually care whether it's a cache hit or miss; we just need the digest and the lock.
_ = try man.hit();
src/Compilation.zig
@@ -530,7 +530,10 @@ pub fn create(gpa: *Allocator, options: InitOptions) !*Compilation {
const darwin_options: DarwinOptions = if (build_options.have_llvm and comptime std.Target.current.isDarwin()) outer: {
const opts: DarwinOptions = if (use_lld and options.is_native_os and options.target.isDarwin()) inner: {
- const syslibroot = try std.zig.system.getSDKPath(arena);
+ // TODO Revisit this targeting versions lower than macOS 11 when LLVM 12 is out.
+ // See https://github.com/ziglang/zig/issues/6996
+ const at_least_big_sur = options.target.os.getVersionRange().semver.min.major >= 11;
+ const syslibroot = if (at_least_big_sur) try std.zig.system.getSDKPath(arena) else null;
const system_linker_hack = std.os.getenv("ZIG_SYSTEM_LINKER_HACK") != null;
break :inner .{
.syslibroot = syslibroot,