link.MachO.Dylib: allow maccatalyst output to link macos libraries in TBDs

This is the logic that LLD uses. It is pretty silly, but it is what it is.
This commit is contained in:
Alex Rønne Petersen 2025-11-14 18:30:14 +01:00
parent ca7523742f
commit 2125c94abe
No known key found for this signature in database

View file

@ -716,6 +716,11 @@ pub const TargetMatcher = struct {
const host_target = try targetToAppleString(allocator, cpu_arch, .MACOS);
try self.target_strings.append(allocator, host_target);
},
.MACCATALYST => {
// Mac Catalyst is allowed to link macOS libraries in a TBD because Apple were apparently too lazy
// to add the proper target strings despite doing so in other places in the format???
try self.target_strings.append(allocator, try targetToAppleString(allocator, cpu_arch, .MACOS));
},
.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