-
Notifications
You must be signed in to change notification settings - Fork 511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Arm64EC #2957
Add support for Arm64EC #2957
Conversation
a6f5f80
to
a41c07f
Compare
This looks better! If only we could test ARM64 on GitHub. 🙄 |
Arm64ec binaries can link against x64 and Arm64ec libs, but not Arm64 libs. |
b393989
to
2e5cbd3
Compare
Ah, good point, looks like a bunch of the libs in the Windows SDK arm64 directory are actually ARM64X (x64 + Arm64EC). So, for simplicity, we can link against the x64 target crate. |
Until we can get ARM testing on GitHub, do either of you @dpaoliello / @riverar have hardware that you can manually |
/raf run nightly-aarch64-pc-windows-msvc 😂
Output rustc 1.79.0-nightly (c9f8f3438 2024-03-27)
|
We'd need to test it with |
@dpaoliello Ah right. If you'd like a hand, I'd be happy to stand up arm64ec testing here too. Just need to know what to pull down. |
@dpaoliello if you're stuck in a chicken-egg situation trying to update rust-lang via |
That's not the issue: your tests uncovered a gap in LLVM's support for Arm64EC, so I'm going to have to fix that first. |
Sweet! |
We can address gnu/gnulvvm targets later too if that helps. |
@kennykerr I've resolved the issues that I was seeing, and can confirm that the tests 1) pass when building as Arm64EC and run on an Arm64 device and 2) the test binaries are run as "Arm64 (x64 compatible)" (per Task Manager). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks - that's good enough for me.
Rust recently added support for Arm64EC (rust-lang/rust#119199), but adding support in the Standard Library (rust-lang/rust#123144) requires that windows-bindgen emit the correct
cfg
items for Arm64EC.This adds support for emitting the Arm64EC
cfg
attributes and reuses the existing AArch64 target crate (to match how MSVC links against the arm64 VC and Windows SDK libs).