| ... | ... | @@ -3542,8 +3542,8 @@ pub fn requiresCodeSig(self: MachO) bool { |
| 3542 | 3542 | const target = self.getTarget(); |
| 3543 | 3543 | return switch (target.cpu.arch) { |
| 3544 | 3544 | .aarch64 => switch (target.os.tag) { |
| 3545 | | .macos => true, |
| 3546 | | .watchos, .tvos, .ios, .visionos => target.abi == .simulator, |
| 3545 | .bridgeos, .driverkit, .macos => true, |
| 3546 | .ios, .tvos, .visionos, .watchos => target.abi == .simulator, |
| 3547 | 3547 | else => false, |
| 3548 | 3548 | }, |
| 3549 | 3549 | .x86_64 => false, |
| ... | ... | @@ -4172,36 +4172,38 @@ pub const Platform = struct { |
| 4172 | 4172 | const cmd = lc.cast(macho.build_version_command).?; |
| 4173 | 4173 | return .{ |
| 4174 | 4174 | .os_tag = switch (cmd.platform) { |
| 4175 | | .MACOS => .macos, |
| 4175 | .BRIDGEOS => .bridgeos, |
| 4176 | .DRIVERKIT => .driverkit, |
| 4176 | 4177 | .IOS, .IOSSIMULATOR => .ios, |
| 4177 | | .TVOS, .TVOSSIMULATOR => .tvos, |
| 4178 | | .WATCHOS, .WATCHOSSIMULATOR => .watchos, |
| 4179 | 4178 | .MACCATALYST => .ios, |
| 4179 | .MACOS => .macos, |
| 4180 | .TVOS, .TVOSSIMULATOR => .tvos, |
| 4180 | 4181 | .VISIONOS, .VISIONOSSIMULATOR => .visionos, |
| 4182 | .WATCHOS, .WATCHOSSIMULATOR => .watchos, |
| 4181 | 4183 | else => @panic("TODO"), |
| 4182 | 4184 | }, |
| 4183 | 4185 | .abi = switch (cmd.platform) { |
| 4184 | 4186 | .MACCATALYST => .macabi, |
| 4185 | 4187 | .IOSSIMULATOR, |
| 4186 | 4188 | .TVOSSIMULATOR, |
| 4187 | | .WATCHOSSIMULATOR, |
| 4188 | 4189 | .VISIONOSSIMULATOR, |
| 4190 | .WATCHOSSIMULATOR, |
| 4189 | 4191 | => .simulator, |
| 4190 | 4192 | else => .none, |
| 4191 | 4193 | }, |
| 4192 | 4194 | .version = appleVersionToSemanticVersion(cmd.minos), |
| 4193 | 4195 | }; |
| 4194 | 4196 | }, |
| 4195 | | .VERSION_MIN_MACOSX, |
| 4196 | 4197 | .VERSION_MIN_IPHONEOS, |
| 4198 | .VERSION_MIN_MACOSX, |
| 4197 | 4199 | .VERSION_MIN_TVOS, |
| 4198 | 4200 | .VERSION_MIN_WATCHOS, |
| 4199 | 4201 | => { |
| 4200 | 4202 | const cmd = lc.cast(macho.version_min_command).?; |
| 4201 | 4203 | return .{ |
| 4202 | 4204 | .os_tag = switch (lc.cmd()) { |
| 4203 | | .VERSION_MIN_MACOSX => .macos, |
| 4204 | 4205 | .VERSION_MIN_IPHONEOS => .ios, |
| 4206 | .VERSION_MIN_MACOSX => .macos, |
| 4205 | 4207 | .VERSION_MIN_TVOS => .tvos, |
| 4206 | 4208 | .VERSION_MIN_WATCHOS => .watchos, |
| 4207 | 4209 | else => unreachable, |
| ... | ... | @@ -4228,15 +4230,17 @@ pub const Platform = struct { |
| 4228 | 4230 | |
| 4229 | 4231 | pub fn toApplePlatform(plat: Platform) macho.PLATFORM { |
| 4230 | 4232 | return switch (plat.os_tag) { |
| 4231 | | .macos => .MACOS, |
| 4233 | .bridgeos => .BRIDGEOS, |
| 4234 | .driverkit => .DRIVERKIT, |
| 4232 | 4235 | .ios => switch (plat.abi) { |
| 4233 | | .simulator => .IOSSIMULATOR, |
| 4234 | 4236 | .macabi => .MACCATALYST, |
| 4237 | .simulator => .IOSSIMULATOR, |
| 4235 | 4238 | else => .IOS, |
| 4236 | 4239 | }, |
| 4240 | .macos => .MACOS, |
| 4237 | 4241 | .tvos => if (plat.abi == .simulator) .TVOSSIMULATOR else .TVOS, |
| 4238 | | .watchos => if (plat.abi == .simulator) .WATCHOSSIMULATOR else .WATCHOS, |
| 4239 | 4242 | .visionos => if (plat.abi == .simulator) .VISIONOSSIMULATOR else .VISIONOS, |
| 4243 | .watchos => if (plat.abi == .simulator) .WATCHOSSIMULATOR else .WATCHOS, |
| 4240 | 4244 | else => unreachable, |
| 4241 | 4245 | }; |
| 4242 | 4246 | } |
| ... | ... | @@ -4305,15 +4309,18 @@ const SupportedPlatforms = struct { |
| 4305 | 4309 | // Source: https://github.com/apple-oss-distributions/ld64/blob/59a99ab60399c5e6c49e6945a9e1049c42b71135/src/ld/PlatformSupport.cpp#L52 |
| 4306 | 4310 | // zig fmt: off |
| 4307 | 4311 | const supported_platforms = [_]SupportedPlatforms{ |
| 4308 | | .{ .macos, .none, 0xA0E00, 0xA0800 }, |
| 4309 | | .{ .ios, .none, 0xC0000, 0x70000 }, |
| 4310 | | .{ .tvos, .none, 0xC0000, 0x70000 }, |
| 4311 | | .{ .watchos, .none, 0x50000, 0x20000 }, |
| 4312 | | .{ .visionos, .none, 0x10000, 0x10000 }, |
| 4313 | | .{ .ios, .simulator, 0xD0000, 0x80000 }, |
| 4314 | | .{ .tvos, .simulator, 0xD0000, 0x80000 }, |
| 4315 | | .{ .watchos, .simulator, 0x60000, 0x20000 }, |
| 4316 | | .{ .visionos, .simulator, 0x10000, 0x10000 }, |
| 4312 | .{ .bridgeos, .none, 0x010000, 0x010000 }, |
| 4313 | .{ .driverkit, .none, 0x130000, 0x130000 }, |
| 4314 | .{ .ios, .none, 0x0C0000, 0x070000 }, |
| 4315 | .{ .ios, .macabi, 0x0D0000, 0x0D0000 }, |
| 4316 | .{ .ios, .simulator, 0x0D0000, 0x080000 }, |
| 4317 | .{ .macos, .none, 0x0A0E00, 0x0A0800 }, |
| 4318 | .{ .tvos, .none, 0x0C0000, 0x070000 }, |
| 4319 | .{ .tvos, .simulator, 0x0D0000, 0x080000 }, |
| 4320 | .{ .visionos, .none, 0x010000, 0x010000 }, |
| 4321 | .{ .visionos, .simulator, 0x010000, 0x010000 }, |
| 4322 | .{ .watchos, .none, 0x050000, 0x020000 }, |
| 4323 | .{ .watchos, .simulator, 0x060000, 0x020000 }, |
| 4317 | 4324 | }; |
| 4318 | 4325 | // zig fmt: on |
| 4319 | 4326 | |