1
Fork 0

Promote arm64ec-pc-windows-msvc to tier 2

This commit is contained in:
Daniel Paoliello 2024-05-10 12:41:52 -07:00
parent db8aca4812
commit 537f531b4e
5 changed files with 14 additions and 7 deletions

View file

@ -244,7 +244,11 @@ mod arch {
pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t}; pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
} }
#[cfg(target_arch = "aarch64")] #[cfg(any(
target_arch = "aarch64",
// Arm64EC is Windows-only, but docs are always build as Linux, so re-use AArch64 for Arm64EC.
all(doc, target_arch = "arm64ec")
))]
mod arch { mod arch {
use crate::os::raw::{c_int, c_long}; use crate::os::raw::{c_int, c_long};

View file

@ -421,6 +421,7 @@ auto:
RUST_CONFIGURE_ARGS: >- RUST_CONFIGURE_ARGS: >-
--build=x86_64-pc-windows-msvc --build=x86_64-pc-windows-msvc
--host=aarch64-pc-windows-msvc --host=aarch64-pc-windows-msvc
--target=aarch64-pc-windows-msvc,arm64ec-pc-windows-msvc
--enable-full-tools --enable-full-tools
--enable-profiler --enable-profiler
SCRIPT: python x.py dist bootstrap --include-default-paths SCRIPT: python x.py dist bootstrap --include-default-paths

View file

@ -146,6 +146,7 @@ target | std | notes
[`arm-linux-androideabi`](platform-support/android.md) | ✓ | Armv6 Android [`arm-linux-androideabi`](platform-support/android.md) | ✓ | Armv6 Android
`arm-unknown-linux-musleabi` | ✓ | Armv6 Linux with musl 1.2.3 `arm-unknown-linux-musleabi` | ✓ | Armv6 Linux with musl 1.2.3
`arm-unknown-linux-musleabihf` | ✓ | Armv6 Linux with musl 1.2.3, hardfloat `arm-unknown-linux-musleabihf` | ✓ | Armv6 Linux with musl 1.2.3, hardfloat
[`arm64ec-pc-windows-msvc`](platform-support/arm64ec-pc-windows-msvc.md) | ✓ | Arm64EC Windows MSVC
[`armebv7r-none-eabi`](platform-support/armv7r-none-eabi.md) | * | Bare Armv7-R, Big Endian [`armebv7r-none-eabi`](platform-support/armv7r-none-eabi.md) | * | Bare Armv7-R, Big Endian
[`armebv7r-none-eabihf`](platform-support/armv7r-none-eabi.md) | * | Bare Armv7-R, Big Endian, hardfloat [`armebv7r-none-eabihf`](platform-support/armv7r-none-eabi.md) | * | Bare Armv7-R, Big Endian, hardfloat
`armv5te-unknown-linux-gnueabi` | ✓ | Armv5TE Linux (kernel 4.4, glibc 2.23) `armv5te-unknown-linux-gnueabi` | ✓ | Armv5TE Linux (kernel 4.4, glibc 2.23)
@ -240,7 +241,6 @@ target | std | host | notes
-------|:---:|:----:|------- -------|:---:|:----:|-------
[`arm64e-apple-ios`](platform-support/arm64e-apple-ios.md) | ✓ | | ARM64e Apple iOS [`arm64e-apple-ios`](platform-support/arm64e-apple-ios.md) | ✓ | | ARM64e Apple iOS
[`arm64e-apple-darwin`](platform-support/arm64e-apple-darwin.md) | ✓ | ✓ | ARM64e Apple Darwin [`arm64e-apple-darwin`](platform-support/arm64e-apple-darwin.md) | ✓ | ✓ | ARM64e Apple Darwin
[`arm64ec-pc-windows-msvc`](platform-support/arm64ec-pc-windows-msvc.md) | ? | | Arm64EC Windows MSVC
[`aarch64-apple-ios-macabi`](platform-support/apple-ios-macabi.md) | ✓ | | Apple Catalyst on ARM64 [`aarch64-apple-ios-macabi`](platform-support/apple-ios-macabi.md) | ✓ | | Apple Catalyst on ARM64
[`aarch64-apple-tvos`](platform-support/apple-tvos.md) | ✓ | | ARM64 tvOS [`aarch64-apple-tvos`](platform-support/apple-tvos.md) | ✓ | | ARM64 tvOS
[`aarch64-apple-tvos-sim`](platform-support/apple-tvos.md) | ✓ | | ARM64 tvOS Simulator [`aarch64-apple-tvos-sim`](platform-support/apple-tvos.md) | ✓ | | ARM64 tvOS Simulator

View file

@ -1,6 +1,6 @@
# `arm64ec-pc-windows-msvc` # `arm64ec-pc-windows-msvc`
**Tier: 3** **Tier: 2**
Arm64EC ("Emulation Compatible") for mixed architecture (AArch64 and x86_64) Arm64EC ("Emulation Compatible") for mixed architecture (AArch64 and x86_64)
applications on AArch64 Windows 11. See <https://learn.microsoft.com/en-us/windows/arm/arm64ec>. applications on AArch64 Windows 11. See <https://learn.microsoft.com/en-us/windows/arm/arm64ec>.
@ -21,6 +21,9 @@ Only supported backend is LLVM 18 or above:
* 18.1.4 fixed linking issue for some intrinsics implemented in * 18.1.4 fixed linking issue for some intrinsics implemented in
`compiler_builtins`. `compiler_builtins`.
Visual Studio 2022 (or above) with the "ARM64/ARM64EC built tools" component and
the Windows 11 SDK are required.
### Reusing code from other architectures - x86_64 or AArch64? ### Reusing code from other architectures - x86_64 or AArch64?
Arm64EC uses `arm64ec` as its `target_arch`, but it is possible to reuse Arm64EC uses `arm64ec` as its `target_arch`, but it is possible to reuse
@ -62,10 +65,8 @@ target = [ "arm64ec-pc-windows-msvc" ]
## Building Rust programs ## Building Rust programs
Rust does not yet ship pre-compiled artifacts for this target. To compile for These targets are distributed through `rustup`, and otherwise require no
this target, you will either need to build Rust with the target enabled (see special configuration.
"Building the target" above), or build your own copy using `build-std` or
similar.
## Testing ## Testing

View file

@ -71,6 +71,7 @@ static TARGETS: &[&str] = &[
"arm-unknown-linux-gnueabihf", "arm-unknown-linux-gnueabihf",
"arm-unknown-linux-musleabi", "arm-unknown-linux-musleabi",
"arm-unknown-linux-musleabihf", "arm-unknown-linux-musleabihf",
"arm64ec-pc-windows-msvc",
"armv5te-unknown-linux-gnueabi", "armv5te-unknown-linux-gnueabi",
"armv5te-unknown-linux-musleabi", "armv5te-unknown-linux-musleabi",
"armv7-linux-androideabi", "armv7-linux-androideabi",