Skip to content

Commit ee45f5b

Browse files
Rollup merge of rust-lang#126039 - dpaoliello:arm64ecbuild, r=davidtwco
Promote `arm64ec-pc-windows-msvc` to tier 2 MCP: <rust-lang/compiler-team#746> * Update platform support docs * Add `arm64ec-pc-windows-msvc` as a target to the existing AArch64 Windows build in CI. * Fix docs build break. * Add `arm64ec-pc-windows-msvc` to build manifest. CI build (succeeded, but upload to S3 failed): <https://github.com/rust-lang/rust/actions/runs/9388227822/job/25853013083?pr=126039>
2 parents bbe9a9c + 537f531 commit ee45f5b

File tree

5 files changed

+14
-7
lines changed

5 files changed

+14
-7
lines changed

Diff for: library/std/src/os/linux/raw.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,11 @@ mod arch {
244244
pub use libc::{blkcnt_t, blksize_t, ino_t, nlink_t, off_t, stat, time_t};
245245
}
246246

247-
#[cfg(target_arch = "aarch64")]
247+
#[cfg(any(
248+
target_arch = "aarch64",
249+
// Arm64EC is Windows-only, but docs are always build as Linux, so re-use AArch64 for Arm64EC.
250+
all(doc, target_arch = "arm64ec")
251+
))]
248252
mod arch {
249253
use crate::os::raw::{c_int, c_long};
250254

Diff for: src/ci/github-actions/jobs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ auto:
428428
RUST_CONFIGURE_ARGS: >-
429429
--build=x86_64-pc-windows-msvc
430430
--host=aarch64-pc-windows-msvc
431+
--target=aarch64-pc-windows-msvc,arm64ec-pc-windows-msvc
431432
--enable-full-tools
432433
--enable-profiler
433434
SCRIPT: python x.py dist bootstrap --include-default-paths

Diff for: src/doc/rustc/src/platform-support.md

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

Diff for: src/doc/rustc/src/platform-support/arm64ec-pc-windows-msvc.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# `arm64ec-pc-windows-msvc`
22

3-
**Tier: 3**
3+
**Tier: 2**
44

55
Arm64EC ("Emulation Compatible") for mixed architecture (AArch64 and x86_64)
66
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:
2121
* 18.1.4 fixed linking issue for some intrinsics implemented in
2222
`compiler_builtins`.
2323

24+
Visual Studio 2022 (or above) with the "ARM64/ARM64EC built tools" component and
25+
the Windows 11 SDK are required.
26+
2427
### Reusing code from other architectures - x86_64 or AArch64?
2528

2629
Arm64EC uses `arm64ec` as its `target_arch`, but it is possible to reuse
@@ -62,10 +65,8 @@ target = [ "arm64ec-pc-windows-msvc" ]
6265

6366
## Building Rust programs
6467

65-
Rust does not yet ship pre-compiled artifacts for this target. To compile for
66-
this target, you will either need to build Rust with the target enabled (see
67-
"Building the target" above), or build your own copy using `build-std` or
68-
similar.
68+
These targets are distributed through `rustup`, and otherwise require no
69+
special configuration.
6970

7071
## Testing
7172

Diff for: src/tools/build-manifest/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ static TARGETS: &[&str] = &[
7171
"arm-unknown-linux-gnueabihf",
7272
"arm-unknown-linux-musleabi",
7373
"arm-unknown-linux-musleabihf",
74+
"arm64ec-pc-windows-msvc",
7475
"armv5te-unknown-linux-gnueabi",
7576
"armv5te-unknown-linux-musleabi",
7677
"armv7-linux-androideabi",

0 commit comments

Comments
 (0)