-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Add aarch64_be-unknown-linux-musl target #144551
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
base: master
Are you sure you want to change the base?
Conversation
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.
also needs platform support documentation
compiler/rustc_target/src/spec/targets/aarch64_be_unknown_linux_musl.rs
Outdated
Show resolved
Hide resolved
compiler/rustc_target/src/spec/targets/aarch64_be_unknown_linux_musl.rs
Outdated
Show resolved
Hide resolved
This comment has been minimized.
This comment has been minimized.
r? @SparrowLii rustbot has assigned @SparrowLii. Use |
These commits modify compiler targets. Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb |
r? compiler_leads |
## Requirements | ||
|
||
The target requires a `aarch64_be-*-linux-musl` toolchain, which likely has to | ||
be built from source because this is a rare combination. [Buildroot] provides |
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.
I just noticed that musl.cc/musl-cross-make includes an aarch64_be toolchain, which necessitates some rephrasing in this paragraph.
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.
Could you also include the completed target tier policy compliance affirmations like in the description of #144962 (comment)?
let mut base = base::linux_musl::opts(); | ||
base.max_atomic_width = Some(128); | ||
base.supports_xray = true; | ||
base.features = "+v8a".into(); |
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.
Should outline-atomics be included here, as per #144429?
arch: "aarch64".into(), | ||
options: TargetOptions { | ||
mcount: "\u{1}_mcount".into(), | ||
endian: Endian::Big, |
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.
Is there a reason the frame_pointer
changes to the aarch64-unknown-linux-musl target wouldn't also apply to this target?
// the AAPCS64 expects use of non-leaf frame pointers per | |
// https://github.com/ARM-software/abi-aa/blob/4492d1570eb70c8fd146623e0db65b2d241f12e7/aapcs64/aapcs64.rst#the-frame-pointer | |
// and we tend to encounter interesting bugs in AArch64 unwinding code if we do not | |
frame_pointer: FramePointer::NonLeaf, |
☔ The latest upstream changes (presumably #145366) made this pull request unmergeable. Please resolve the merge conflicts. |
This PR adds a target definition for big-endian Aarch64 with musl-libc.
cc @Gelbpunkt