commit f5dbcd1cb4374be619ba0b18e40a069a7e860d93 (tree)
parent a1b607acb5c1e9dd03760efd7078185e7628b29d
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Sun, 4 Feb 2024 17:56:26 +0100
macho: add <cpu_arch>-macosx to target strings as a fallback target
Turns out that around 10.13/10.14 macOS release version, Apple changed the target tags in
tbd files from `macosx` to `macos`. In order to be compliant and therefore actually support
linking on older platforms against `libSystem.tbd`, we add `<cpu_arch>-macosx` to target strings.
Diffstat:
1 file changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/link/MachO/Dylib.zig b/src/link/MachO/Dylib.zig
@@ -677,6 +677,15 @@ pub const TargetMatcher = struct {
const host_target = try targetToAppleString(allocator, cpu_arch, .MACOS);
try self.target_strings.append(allocator, host_target);
},
+ .MACOS => {
+ // Turns out that around 10.13/10.14 macOS release version, Apple changed the target tags in
+ // tbd files from `macosx` to `macos`. In order to be compliant and therefore actually support
+ // linking on older platforms against `libSystem.tbd`, we add `<cpu_arch>-macosx` to target_strings.
+ const fallback_target = try std.fmt.allocPrint(allocator, "{s}-macosx", .{
+ cpuArchToAppleString(cpu_arch),
+ });
+ try self.target_strings.append(allocator, fallback_target);
+ },
else => {},
}