diff options
| author | sayantn <sayantn05@gmail.com> | 2025-04-23 15:30:47 +0530 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-05-06 16:10:50 +0000 |
| commit | b1ad50f1e0d8f18968cc4ad15a43479838a528d7 (patch) | |
| tree | 8540140f88ba351ec3c4e0084c74b6917dd82507 | |
| parent | 206c35a3a287970c680d355aed039df53cfdc2c4 (diff) | |
| download | rust-b1ad50f1e0d8f18968cc4ad15a43479838a528d7.tar.gz rust-b1ad50f1e0d8f18968cc4ad15a43479838a528d7.zip | |
Add `riscv32` CI run
| -rw-r--r-- | library/stdarch/.github/workflows/main.yml | 9 | ||||
| -rw-r--r-- | library/stdarch/ci/docker/riscv32gc-unknown-linux-gnu/Dockerfile | 15 | ||||
| -rwxr-xr-x | library/stdarch/ci/run.sh | 3 | ||||
| -rw-r--r-- | library/stdarch/crates/stdarch-test/src/disassembly.rs | 2 |
4 files changed, 25 insertions, 4 deletions
diff --git a/library/stdarch/.github/workflows/main.yml b/library/stdarch/.github/workflows/main.yml index 88dc7b865a4..3c2b611394d 100644 --- a/library/stdarch/.github/workflows/main.yml +++ b/library/stdarch/.github/workflows/main.yml @@ -58,6 +58,8 @@ jobs: os: ubuntu-latest - tuple: aarch64_be-unknown-linux-gnu os: ubuntu-latest + - tuple: riscv32gc-unknown-linux-gnu + os: ubuntu-latest - tuple: riscv64gc-unknown-linux-gnu os: ubuntu-latest - tuple: powerpc-unknown-linux-gnu @@ -155,6 +157,11 @@ jobs: os: ubuntu-latest test_everything: true - target: + tuple: riscv32gc-unknown-linux-gnu + os: ubuntu-latest + test_everything: true + build_std: true + - target: tuple: riscv64gc-unknown-linux-gnu os: ubuntu-latest test_everything: true @@ -237,7 +244,7 @@ jobs: # ... while Linux goes to `run-docker.sh` - run: ./ci/run-docker.sh ${{ matrix.target.tuple }} shell: bash - if: "matrix.target.os == 'ubuntu-latest' && !startsWith(matrix.target.tuple, 'thumb')" + if: matrix.target.os == 'ubuntu-latest' && !startsWith(matrix.target.tuple, 'thumb') env: TARGET: ${{ matrix.target.tuple }} diff --git a/library/stdarch/ci/docker/riscv32gc-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/riscv32gc-unknown-linux-gnu/Dockerfile new file mode 100644 index 00000000000..81f7b6239af --- /dev/null +++ b/library/stdarch/ci/docker/riscv32gc-unknown-linux-gnu/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:25.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc libc6-dev qemu-user ca-certificates \ + wget xz-utils make file llvm + +ENV VERSION=2025.01.20 + +RUN wget "https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/${VERSION}/riscv32-glibc-ubuntu-24.04-gcc-nightly-${VERSION}-nightly.tar.xz" \ + -O riscv-toolchain.tar.xz +RUN tar -xJf riscv-toolchain.tar.xz + +ENV CARGO_TARGET_RISCV32GC_UNKNOWN_LINUX_GNU_LINKER=/riscv/bin/riscv32-unknown-linux-gnu-gcc \ + CARGO_TARGET_RISCV32GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv32 -cpu max -L /riscv/sysroot" \ + OBJDUMP=llvm-objdump diff --git a/library/stdarch/ci/run.sh b/library/stdarch/ci/run.sh index 522b2661769..fd7ec81d505 100755 --- a/library/stdarch/ci/run.sh +++ b/library/stdarch/ci/run.sh @@ -44,9 +44,8 @@ case ${TARGET} in ;; # Some of our test dependencies use the deprecated `gcc` crates which # doesn't detect RISC-V compilers automatically, so do it manually here. - riscv64*) + riscv*) export RUSTFLAGS="${RUSTFLAGS} -Ctarget-feature=+zk,+zks,+zbb,+zbc" - export TARGET_CC="riscv64-linux-gnu-gcc" ;; esac diff --git a/library/stdarch/crates/stdarch-test/src/disassembly.rs b/library/stdarch/crates/stdarch-test/src/disassembly.rs index 49043eea80b..f5167ea8d8e 100644 --- a/library/stdarch/crates/stdarch-test/src/disassembly.rs +++ b/library/stdarch/crates/stdarch-test/src/disassembly.rs @@ -77,7 +77,7 @@ pub(crate) fn disassemble_myself() -> HashSet<Function> { let add_args = if cfg!(target_vendor = "apple") && cfg!(target_arch = "aarch64") { // Target features need to be enabled for LLVM objdump on Darwin ARM64 vec!["--mattr=+v8.6a,+crypto,+tme"] - } else if cfg!(target_arch = "riscv64") { + } else if cfg!(any(target_arch = "riscv32", target_arch = "riscv64")) { vec!["--mattr=+zk,+zks,+zbc,+zbb"] } else { vec![] |
