Rollup merge of #77202 - ehuss:defer-apple-sdkroot, r=petrochenkov
Defer Apple SDKROOT detection to link time. This defers the detection of the SDKROOT for Apple iOS/tvOS targets to link time, instead of when the `Target` is defined. This allows commands that don't need to link to work (like `rustdoc` or `rustc --print=target-list`). This also makes `--print=target-list` a bit faster. This also removes the note in the platform support documentation about these targets being missing. When I wrote it, I misunderstood how the SDKROOT stuff worked. Notes: * This means that JSON spec targets can't explicitly override these flags. I think that is probably fine, as I believe the value is generally required, and can be set with the SDKROOT environment variable. * This changes `x86_64-apple-tvos` to use `appletvsimulator`. I think the original code was wrong (it was using `iphonesimulator`). Also, `x86_64-apple-tvos` seems broken in general, and I cannot build it locally. The `data_layout` does not appear to be correct (it is a copy of the arm64 layout instead of the x86_64 layout). I have not tried building Apple's LLVM to see if that helps, but I suspect it is just wrong (I'm uncertain since I don't know how the tvOS simulator works with its bitcode-only requirements). * I'm tempted to remove the use of `Result` for built-in target definitions, since I don't think they should be fallible. This was added in https://github.com/rust-lang/rust/pull/34980, but that only relates to JSON definitions. I think the built-in targets shouldn't fail. I can do this now, or not. Fixes #36156 Fixes #76584
This commit is contained in:
commit
37df40bd1c
12 changed files with 114 additions and 139 deletions
|
|
@ -57,7 +57,7 @@ Specifically, these platforms are required to have each of the following:
|
|||
|
||||
target | std | host | notes
|
||||
-------|-----|------|-------
|
||||
`aarch64-apple-ios` | ✓[^apple] | | ARM64 iOS
|
||||
`aarch64-apple-ios` | ✓ | | ARM64 iOS
|
||||
`aarch64-fuchsia` | ✓ | | ARM64 Fuchsia
|
||||
`aarch64-linux-android` | ✓ | | ARM64 Android
|
||||
`aarch64-pc-windows-msvc` | ✓ | | ARM64 Windows MSVC
|
||||
|
|
@ -122,7 +122,7 @@ target | std | host | notes
|
|||
`wasm32-unknown-emscripten` | ✓ | | WebAssembly via Emscripten
|
||||
`wasm32-unknown-unknown` | ✓ | | WebAssembly
|
||||
`wasm32-wasi` | ✓ | | WebAssembly with WASI
|
||||
`x86_64-apple-ios` | ✓[^apple] | | 64-bit x86 iOS
|
||||
`x86_64-apple-ios` | ✓ | | 64-bit x86 iOS
|
||||
`x86_64-fortanix-unknown-sgx` | ✓ | | [Fortanix ABI] for 64-bit Intel SGX
|
||||
`x86_64-fuchsia` | ✓ | | 64-bit Fuchsia
|
||||
`x86_64-linux-android` | ✓ | | 64-bit x86 Android
|
||||
|
|
@ -146,7 +146,7 @@ not available.
|
|||
target | std | host | notes
|
||||
-------|-----|------|-------
|
||||
`aarch64-apple-darwin` | ? | | ARM64 macOS
|
||||
`aarch64-apple-tvos` | *[^apple] | | ARM64 tvOS
|
||||
`aarch64-apple-tvos` | * | | ARM64 tvOS
|
||||
`aarch64-unknown-cloudabi` | ✓ | | ARM64 CloudABI
|
||||
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
|
||||
`aarch64-unknown-hermit` | ? | |
|
||||
|
|
@ -158,16 +158,16 @@ target | std | host | notes
|
|||
`armv4t-unknown-linux-gnueabi` | ? | |
|
||||
`armv6-unknown-freebsd` | ✓ | ✓ | ARMv6 FreeBSD
|
||||
`armv6-unknown-netbsd-eabihf` | ? | |
|
||||
`armv7-apple-ios` | ✓[^apple] | | ARMv7 iOS, Cortex-a8
|
||||
`armv7-apple-ios` | ✓ | | ARMv7 iOS, Cortex-a8
|
||||
`armv7-unknown-cloudabi-eabihf` | ✓ | | ARMv7 CloudABI, hardfloat
|
||||
`armv7-unknown-freebsd` | ✓ | ✓ | ARMv7 FreeBSD
|
||||
`armv7-unknown-netbsd-eabihf` | ? | |
|
||||
`armv7-wrs-vxworks-eabihf` | ? | |
|
||||
`armv7a-none-eabihf` | * | | ARM Cortex-A, hardfloat
|
||||
`armv7s-apple-ios` | ✓[^apple] | |
|
||||
`armv7s-apple-ios` | ✓ | |
|
||||
`avr-unknown-gnu-atmega328` | ✗ | | AVR. Requires `-Z build-std=core`
|
||||
`hexagon-unknown-linux-musl` | ? | |
|
||||
`i386-apple-ios` | ✓[^apple] | | 32-bit x86 iOS
|
||||
`i386-apple-ios` | ✓ | | 32-bit x86 iOS
|
||||
`i686-apple-darwin` | ✓ | ✓ | 32-bit OSX (10.7+, Lion+)
|
||||
`i686-pc-windows-msvc` | ✓ | | 32-bit Windows XP support
|
||||
`i686-unknown-cloudabi` | ✓ | | 32-bit CloudABI
|
||||
|
|
@ -203,8 +203,8 @@ target | std | host | notes
|
|||
`thumbv7a-uwp-windows-msvc` | ✓ | |
|
||||
`thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7a Linux with NEON, MUSL
|
||||
`thumbv4t-none-eabi` | * | | ARMv4T T32
|
||||
`x86_64-apple-ios-macabi` | ✓[^apple] | | Apple Catalyst
|
||||
`x86_64-apple-tvos` | *[^apple] | | x86 64-bit tvOS
|
||||
`x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst
|
||||
`x86_64-apple-tvos` | * | | x86 64-bit tvOS
|
||||
`x86_64-linux-kernel` | * | | Linux kernel modules
|
||||
`x86_64-pc-solaris` | ? | |
|
||||
`x86_64-pc-windows-msvc` | ✓ | | 64-bit Windows XP support
|
||||
|
|
@ -221,4 +221,3 @@ target | std | host | notes
|
|||
`x86_64-wrs-vxworks` | ? | |
|
||||
|
||||
[runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets
|
||||
[^apple]: These targets are only available on macOS.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue