-
-
Notifications
You must be signed in to change notification settings - Fork 230
Add initial ARM64EC support #497
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
Conversation
build-compiler-rt.sh
Outdated
| cmake --build . ${CORES:+-j${CORES}} | ||
|
|
||
| # Skip install on arm64ec, we merge archives instead. | ||
| if [ $arch = arm64ec ]; then |
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.
For comparisons like these, my shell scripting style is to enclose both the variable and the value with quotes, i.e. if [ "$arch" = "arm64ec" ]; then. In case the variable would happen to expand to an empty string, it makes sure the test command doesn't misparse the arguments. Same below on line 157.
(Obviously it should be impossible for $arch to expand to an empty string here, as it's the result of a for arch in .., but I'd prefer that style for consistency.)
Clang expects the aarch64 compiler-rt name on ARM64EC. While this could be adjusted in Clang, the current approach mirrors MSVC, where the core CRT is provided as archives containing both EC and native support. Ideally, the LLVM build system would handle this automatically, but for now we can merge it here.
|
I think you'd want to have d358dd8 (from my arm64ec branch) included as well; without it, the |
|
Thanks! I cherry-picked your patch and fixed |
mstorsjo
left a comment
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.
LGTM; this works as an initial step for enabling arm64ec.
Both LLVM and mingw-w64 now have sufficient ARM64EC support to build a functional toolchain. This PR adds the necessary llvm-mingw tweaks. With these changes, it's possible to build the toolchain using: