diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f1cf427827..f57ca6d789 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1003,6 +1003,7 @@ jobs: - armv7-linux-androideabi # skip-pr skip-main - x86_64-linux-android # skip-pr skip-main - riscv64gc-unknown-linux-gnu # skip-pr skip-main + - riscv64gc-unknown-linux-musl # skip-pr skip-main - loongarch64-unknown-linux-gnu # skip-pr skip-main - loongarch64-unknown-linux-musl # skip-pr skip-main include: diff --git a/ci/actions-templates/linux-builds-template.yaml b/ci/actions-templates/linux-builds-template.yaml index ca7d87378d..cf6730e66a 100644 --- a/ci/actions-templates/linux-builds-template.yaml +++ b/ci/actions-templates/linux-builds-template.yaml @@ -44,6 +44,7 @@ jobs: # skip-main skip-pr skip-stable - armv7-linux-androideabi # skip-pr skip-main - x86_64-linux-android # skip-pr skip-main - riscv64gc-unknown-linux-gnu # skip-pr skip-main + - riscv64gc-unknown-linux-musl # skip-pr skip-main - loongarch64-unknown-linux-gnu # skip-pr skip-main - loongarch64-unknown-linux-musl # skip-pr skip-main include: diff --git a/ci/cloudfront-invalidation.txt b/ci/cloudfront-invalidation.txt index 9b86ac321c..ae1892448d 100644 --- a/ci/cloudfront-invalidation.txt +++ b/ci/cloudfront-invalidation.txt @@ -57,6 +57,10 @@ rustup/dist/powerpc64le-unknown-linux-gnu/rustup-init rustup/dist/powerpc64le-unknown-linux-gnu/rustup-init.sha256 rustup/dist/powerpc64le-unknown-linux-musl/rustup-init rustup/dist/powerpc64le-unknown-linux-musl/rustup-init.sha256 +rustup/dist/riscv64gc-unknown-linux-gnu/rustup-init +rustup/dist/riscv64gc-unknown-linux-gnu/rustup-init.sha256 +rustup/dist/riscv64gc-unknown-linux-musl/rustup-init +rustup/dist/riscv64gc-unknown-linux-musl/rustup-init.sha256 rustup/dist/s390x-unknown-linux-gnu/rustup-init rustup/dist/s390x-unknown-linux-gnu/rustup-init.sha256 rustup/dist/sparcv9-sun-solaris/rustup-init.exe diff --git a/ci/docker/riscv64gc-unknown-linux-musl/Dockerfile b/ci/docker/riscv64gc-unknown-linux-musl/Dockerfile new file mode 100644 index 0000000000..3219088f87 --- /dev/null +++ b/ci/docker/riscv64gc-unknown-linux-musl/Dockerfile @@ -0,0 +1,8 @@ +FROM rust-riscv64gc-unknown-linux-musl + +# Building `aws-lc-rs` for Linux depends on `gcc-multilib`, `libclang` and `bindgen`. +# See: https://aws.github.io/aws-lc-rs/requirements/linux +RUN apt-get update && apt-get install -qy gcc-multilib libclang-dev + +ENV CC_riscv64gc_unknown_linux_musl=riscv64-unknown-linux-musl-gcc \ + CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_LINKER=riscv64-unknown-linux-musl-gcc diff --git a/ci/fetch-rust-docker.bash b/ci/fetch-rust-docker.bash index eb2f69f8e4..3a1c022309 100644 --- a/ci/fetch-rust-docker.bash +++ b/ci/fetch-rust-docker.bash @@ -45,7 +45,8 @@ case "$TARGET" in x86_64-unknown-illumos) image=dist-x86_64-illumos ;; x86_64-unknown-linux-gnu) image=dist-x86_64-linux ;; x86_64-unknown-netbsd) image=dist-x86_64-netbsd ;; - riscv64gc-unknown-linux-gnu) image=dist-riscv64-linux ;; + riscv64gc-unknown-linux-gnu) image=dist-riscv64-linux-gnu ;; + riscv64gc-unknown-linux-musl) image=dist-riscv64-linux-musl ;; loongarch64-unknown-linux-gnu) image=dist-loongarch64-linux ;; loongarch64-unknown-linux-musl) image=dist-loongarch64-musl ;; *) exit ;; diff --git a/doc/user-guide/src/installation/other.md b/doc/user-guide/src/installation/other.md index 22ac13df73..fc9b918378 100644 --- a/doc/user-guide/src/installation/other.md +++ b/doc/user-guide/src/installation/other.md @@ -163,6 +163,10 @@ You can manually download `rustup-init` for a given target from - [sha256 file](https://static.rust-lang.org/rustup/dist/powerpc64le-unknown-linux-gnu/rustup-init.sha256) - [powerpc64le-unknown-linux-musl](https://static.rust-lang.org/rustup/dist/powerpc64le-unknown-linux-musl/rustup-init) - [sha256 file](https://static.rust-lang.org/rustup/dist/powerpc64le-unknown-linux-musl/rustup-init.sha256) +- [riscv64gc-unknown-linux-gnu](https://static.rust-lang.org/rustup/dist/riscv64gc-unknown-linux-gnu/rustup-init) + - [sha256 file](https://static.rust-lang.org/rustup/dist/riscv64gc-unknown-linux-gnu/rustup-init.sha256) +- [riscv64gc-unknown-linux-musl](https://static.rust-lang.org/rustup/dist/riscv64gc-unknown-linux-musl/rustup-init) + - [sha256 file](https://static.rust-lang.org/rustup/dist/riscv64gc-unknown-linux-musl/rustup-init.sha256) - [s390x-unknown-linux-gnu](https://static.rust-lang.org/rustup/dist/s390x-unknown-linux-gnu/rustup-init) - [sha256 file](https://static.rust-lang.org/rustup/dist/s390x-unknown-linux-gnu/rustup-init.sha256) - [sparcv9-sun-solaris](https://static.rust-lang.org/rustup/dist/sparcv9-sun-solaris/rustup-init) diff --git a/src/dist/mod.rs b/src/dist/mod.rs index 176f472c87..f348188943 100644 --- a/src/dist/mod.rs +++ b/src/dist/mod.rs @@ -608,6 +608,7 @@ impl TargetTuple { (b"Linux", b"loongarch64") => Some(TUPLE_LOONGARCH64_UNKNOWN_LINUX), (b"Linux", b"ppc64") => Some(TUPLE_POWERPC64_UNKNOWN_LINUX), (b"Linux", b"ppc64le") => Some(TUPLE_POWERPC64LE_UNKNOWN_LINUX), + (b"Linux", b"riscv64") => Some(TUPLE_RISCV64GC_UNKNOWN_LINUX), (b"Darwin", b"x86_64") => Some("x86_64-apple-darwin"), (b"Darwin", b"i686") => Some("i686-apple-darwin"), (b"FreeBSD", b"x86_64") => Some("x86_64-unknown-freebsd"), @@ -712,6 +713,10 @@ const TUPLE_POWERPC64_UNKNOWN_LINUX: &str = "powerpc64-unknown-linux-musl"; const TUPLE_POWERPC64LE_UNKNOWN_LINUX: &str = "powerpc64le-unknown-linux-gnu"; #[cfg(all(not(windows), target_env = "musl"))] const TUPLE_POWERPC64LE_UNKNOWN_LINUX: &str = "powerpc64le-unknown-linux-musl"; +#[cfg(all(not(windows), not(target_env = "musl")))] +const TUPLE_RISCV64GC_UNKNOWN_LINUX: &str = "riscv64gc-unknown-linux-gnu"; +#[cfg(all(not(windows), target_env = "musl"))] +const TUPLE_RISCV64GC_UNKNOWN_LINUX: &str = "riscv64gc-unknown-linux-musl"; // MIPS platforms don't indicate endianness in uname, however binaries only // run on boxes with the same endianness, as expected.