Commit 2125c94abe

Alex Rønne Petersen <alex@alexrp.com>
2025-11-14 18:30:14
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.
1 parent ca75237
Changed files (1)
src
link
MachO
src/link/MachO/Dylib.zig
@@ -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