Skip to content

Commit 3c29741

Browse files
authored
Merge pull request #2493 from Gelbpunkt/aarch64-unknown-linux-musl
Add aarch64-unknown-linux-musl support
2 parents b552078 + 629b75c commit 3c29741

File tree

8 files changed

+20
-4
lines changed

8 files changed

+20
-4
lines changed

.github/workflows/linux-builds-on-stable.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
- armv7-unknown-linux-gnueabihf
2121
- aarch64-linux-android
2222
- aarch64-unknown-linux-gnu # skip-pr
23+
- aarch64-unknown-linux-musl # skip-pr skip-master
2324
- powerpc64-unknown-linux-gnu # skip-pr
2425
- x86_64-unknown-linux-musl # skip-pr
2526
- i686-unknown-linux-gnu # skip-pr skip-master

ci/actions-templates/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ system.
3838
| armv7-unknown-linux-gnueabihf | Yes | Two | Yes | Yes |
3939
| aarch64-linux-android | Yes | Two | Yes | Yes |
4040
| aarch64-unknown-linux-gnu | Yes | Two | No | Yes |
41+
| aarch64-unknown-linux-musl | Yes | Two | No | Yes |
4142
| powerpc64-unknown-linux-gnu | Yes | Two | No | Yes |
4243
| x86_64-unknown-linux-musl | Yes | Two | No | Yes |
4344
| i686-unknown-linux-gnu | Yes | One | No | No |

ci/actions-templates/linux-builds-template.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- armv7-unknown-linux-gnueabihf
2929
- aarch64-linux-android
3030
- aarch64-unknown-linux-gnu # skip-pr
31+
- aarch64-unknown-linux-musl # skip-pr skip-master
3132
- powerpc64-unknown-linux-gnu # skip-pr
3233
- x86_64-unknown-linux-musl # skip-pr
3334
- i686-unknown-linux-gnu # skip-pr skip-master

ci/cloudfront-invalidation.txt

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ rustup/dist/aarch64-linux-android/rustup-init
55
rustup/dist/aarch64-linux-android/rustup-init.sha256
66
rustup/dist/aarch64-unknown-linux-gnu/rustup-init
77
rustup/dist/aarch64-unknown-linux-gnu/rustup-init.sha256
8+
rustup/dist/aarch64-unknown-linux-musl/rustup-init
9+
rustup/dist/aarch64-unknown-linux-musl/rustup-init.sha256
810
rustup/dist/arm-linux-androideabi/rustup-init
911
rustup/dist/arm-linux-androideabi/rustup-init.sha256
1012
rustup/dist/arm-unknown-linux-gnueabi/rustup-init
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM rust-aarch64-unknown-linux-musl
2+
3+
ENV CC_aarch64_unknown_linux_musl=aarch64-linux-musl-gcc \
4+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc \
5+
RUSTFLAGS="-C target-feature=+crt-static -C link-arg=-lgcc"

ci/fetch-rust-docker.bash

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ LOCAL_DOCKER_TAG="rust-$TARGET"
1616
# Use images from rustc master
1717
case "$TARGET" in
1818
aarch64-unknown-linux-gnu) image=dist-aarch64-linux ;;
19+
aarch64-unknown-linux-musl) image=dist-arm-linux ;;
1920
arm-unknown-linux-gnueabi) image=dist-arm-linux ;;
2021
arm-unknown-linux-gnueabihf) image=dist-armhf-linux ;;
2122
armv7-unknown-linux-gnueabihf) image=dist-armv7-linux ;;

doc/src/installation/other.md

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ choice:
3434

3535
- [aarch64-linux-android](https://static.rust-lang.org/rustup/dist/aarch64-linux-android/rustup-init)
3636
- [aarch64-unknown-linux-gnu](https://static.rust-lang.org/rustup/dist/aarch64-unknown-linux-gnu/rustup-init)
37+
- [aarch64-unknown-linux-musl](https://static.rust-lang.org/rustup/dist/aarch64-unknown-linux-musl/rustup-init)
3738
- [arm-linux-androideabi](https://static.rust-lang.org/rustup/dist/arm-linux-androideabi/rustup-init)
3839
- [arm-unknown-linux-gnueabi](https://static.rust-lang.org/rustup/dist/arm-unknown-linux-gnueabi/rustup-init)
3940
- [arm-unknown-linux-gnueabihf](https://static.rust-lang.org/rustup/dist/arm-unknown-linux-gnueabihf/rustup-init)

src/dist/dist.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ static LIST_ENVS: &[&str] = &[
121121
const TRIPLE_X86_64_UNKNOWN_LINUX: &str = "x86_64-unknown-linux-gnu";
122122
#[cfg(all(not(windows), target_env = "musl"))]
123123
const TRIPLE_X86_64_UNKNOWN_LINUX: &str = "x86_64-unknown-linux-musl";
124+
#[cfg(all(not(windows), not(target_env = "musl")))]
125+
const TRIPLE_AARCH64_UNKNOWN_LINUX: &str = "aarch64-unknown-linux-gnu";
126+
#[cfg(all(not(windows), target_env = "musl"))]
127+
const TRIPLE_AARCH64_UNKNOWN_LINUX: &str = "aarch64-unknown-linux-musl";
124128

125129
// MIPS platforms don't indicate endianness in uname, however binaries only
126130
// run on boxes with the same endianness, as expected.
@@ -245,7 +249,7 @@ impl TargetTriple {
245249
(b"Linux", b"arm") => Some("arm-unknown-linux-gnueabi"),
246250
(b"Linux", b"armv7l") => Some("armv7-unknown-linux-gnueabihf"),
247251
(b"Linux", b"armv8l") => Some("armv7-unknown-linux-gnueabihf"),
248-
(b"Linux", b"aarch64") => Some("aarch64-unknown-linux-gnu"),
252+
(b"Linux", b"aarch64") => Some(TRIPLE_AARCH64_UNKNOWN_LINUX),
249253
(b"Darwin", b"x86_64") => Some("x86_64-apple-darwin"),
250254
(b"Darwin", b"i686") => Some("i686-apple-darwin"),
251255
(b"FreeBSD", b"x86_64") => Some("x86_64-unknown-freebsd"),
@@ -373,10 +377,10 @@ impl PartialToolchainDesc {
373377
let env = if self.target.os.is_some() {
374378
self.target.env
375379
} else {
376-
self.target.env.or_else(|| host_env)
380+
self.target.env.or(host_env)
377381
};
378-
let arch = self.target.arch.unwrap_or_else(|| host_arch);
379-
let os = self.target.os.unwrap_or_else(|| host_os);
382+
let arch = self.target.arch.unwrap_or(host_arch);
383+
let os = self.target.os.unwrap_or(host_os);
380384

381385
let trip = if let Some(env) = env {
382386
format!("{}-{}-{}", arch, os, env)

0 commit comments

Comments
 (0)