Add support for aarch64-unknown-linux-musl #782
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds support for aarch64-unknown-linux-musl as requested in rust-lang/rust#44779 by @alexcrichton
The new file
ci/docker/aarch64-unknown-linux-musl/Dockerfile
essentially merges the aarch64-unknown-linux-gnu and x86_64-unknown-linux-musl Dockerfiles.The bigger changes are under
src/unix/notbsd/linux/
, though they're fairly superficial:Previously, some constants could be shared between all 64-bit musl triples, but aarch64 differs, so a number of things were moved from
musl/b64/mod.rs
to specific arches:musl/b64/powerpc64.rs
andmusl/b64/x86_64.rs
, with the aarch64-specific differences being added tomusl/b64/aarch64.rs
.Similarly, some constants moved from
musl/mod.rs
to lower levels:musl/b32/mod.rs
,musl/b64/powerpc64.rs
, andmusl/b64/x86_64.rs
, with the aarch64-specific differences added tomusl/b64/aarch64.rs
.Finally, some things that were true of all Linux builds moved from
mod.rs
into lower levels:mips/mod.rs
,other/mod.rs
,musl/b32/mod.rs
,musl/b64/powerpc64.rs
, andmusl/b64/x86_64.rs
, with the aarch64-specific differences added tomusl/b64/aarch64.rs
.Testing:
All linux-based triples under
ci/docker
were run throughci/run-docker.sh
successfully, which checks that the size and alignment of definitions match for each triple, among other tests. (The local build of rust from rust-lang/rust#44779 was set for the aarch64-unknown-linux-musl build.)I also confirmed that it has "good style!" according to
ci/style.rs
.