-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Initial version of AArch64 support (build system, sources, tests). #19790
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see CONTRIBUTING.md for more information. |
Awesome! Could you measure the before/after size of LLVM after enabling the AArch64 target? This will be included in basically all Rust compilers, so just want to make sure we're not tacking on a huge amount of data! |
Certainly. Below are some before/after file sizes. Before: After: |
8b24f55
to
c5ea616
Compare
It seems that because of the rebase, I've lost the r+. My bad. May I ask for it again? Sorry for the hassle. |
ping @brson, sorry I keep missing you on IRC, but I'm curious about your thoughts about adding AArch64 to the build. |
c5ea616
to
4fa0fa0
Compare
I'd also like to push it further as want to move forward with arm64 support for iOS - in February all apps are required to have a binary compiled for arm64. |
@akiss77 needs a rebase |
31543fe
to
70c423e
Compare
@vhbit did it - glad to see interest in aarch64/arm64 (although I'm not really familiar with iOS) |
mov x1, x3 | ||
mov x2, x4 | ||
br x5 | ||
endfunc rust_bootstrap_green_task |
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.
Context switching codes for other architectures were removed in #20135.
befc1fb
to
ae77605
Compare
@alexcrichton so what's status of this? |
Ok, I've chatted with @brson about this and we'd like to move forward with this, thanks for being patient and sorry about the delay! |
Ah yes I forgot! Could you also touch the |
let base = super::linux_base::opts(); | ||
Target { | ||
data_layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-\ | ||
f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-\ |
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.
correct format for aggregates data layout should be a:0:64
instead of a0:0:64
, see here
a9d2e48
to
24cb7a4
Compare
Thanks for the good news and sorry about the delay on my side (had some parties to survive...) Did all the requested updates. Happy New Year to all! |
24cb7a4
to
ac6fcdf
Compare
I've run into a syntax change (arrays) :/ Updated. |
Adds AArch64 knowledge to: * configure, * make files, * sources, * tests, and * documentation.
ac6fcdf
to
6e5fb8b
Compare
Preparing AArch64 support, starting work at the build system.
Oh, yes. Thanks for all the reviews, feedback & support! |
I also re-enabled the use of `#[thread_local]` on AArch64. It was originally disabled in the PR that introduced AArch64 (#19790), but the reasons for this were not explained. `#[thread_local]` seems to work fine in my tests on AArch64, so I don't think this should be an issue. cc @alexcrichton @akiss77
Preparing AArch64 support, starting work at the build system.