Repository: cross-rs/cross (rust)

Issue:
Fix `riscv64gc-unknown-linux-gnu`
CI fails for this target:


[riscv64gc-unknown-linux-gnu](https://github.com/cross-rs/cross/actions/runs/7703230077/job/20993307017) - ❌

```
error: linking with `riscv64-linux-gnu-gcc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" VSLANG="1033" "riscv64-linux-gnu-gcc" "/tmp/rustcL5EYAM/symbols.o" "/target/riscv64gc-unknown-linux-gnu/debug/deps/hello-8b4240f02115318c.hello.4898b753e7bb93fe-cgu.0.rcgu.o" "/target/riscv64gc-unknown-linux-gnu/debug/deps/hello-8b4240f02115318c.3tghmwzgt5h6j3k.rcgu.o" "-Wl,--as-needed" "-L" "/target/riscv64gc-unknown-linux-gnu/debug/deps" "-L" "/target/debug/deps" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libstd-61f5b1021fe67be9.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libpanic_unwind-b7d64cf61360ba90.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libobject-5944d8c055f61b94.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libmemchr-911cfe7bb937393f.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libaddr2line-47c99826792c3442.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libgimli-d1395a1ebcdb89a9.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_demangle-c0b84cd4909ede05.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libstd_detect-94ffaeed1fd8f191.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libhashbrown-d7d27d49c4ab78d7.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_std_workspace_alloc-fbafa950c308ed6b.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libminiz_oxide-bd0474a7cc295b06.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libadler-b339f046f1fd4366.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libunwind-26adcace73305118.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcfg_if-e81f5ac9dda42ff6.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/liblibc-b16acf89b22a1706.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/liballoc-bae0c14b28b06671.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_std_workspace_core-3c106561728d9a61.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcore-ce7ae382ac0ff6ce.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-ac5d42bf3e358089.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" "-o" "/target/riscv64gc-unknown-linux-gnu/debug/deps/hello-8b4240f02115318c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
  = note: /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /target/riscv64gc-unknown-linux-gnu/debug/deps/hello-8b4240f02115318c.3tghmwzgt5h6j3k.rcgu.o
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libstd-61f5b1021fe67be9.rlib(std-61f5b1021fe67be9.std.bde20bb6bfa1c42-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libpanic_unwind-b7d64cf61360ba90.rlib(panic_unwind-b7d64cf61360ba90.panic_unwind.dc53addc679bf0ba-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libobject-5944d8c055f61b94.rlib(object-5944d8c055f61b94.object.9940abbe183ae2a0-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libmemchr-911cfe7bb937393f.rlib(memchr-911cfe7bb937393f.memchr.e9cc1d998c88d27d-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libaddr2line-47c99826792c3442.rlib(addr2line-47c99826792c3442.addr2line.afe00be04daafd1d-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libgimli-d1395a1ebcdb89a9.rlib(gimli-d1395a1ebcdb89a9.gimli.1b380625c2a4faf0-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_demangle-c0b84cd4909ede05.rlib(rustc_demangle-c0b84cd4909ede05.rustc_demangle.22b1241fcec5c3b9-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libminiz_oxide-bd0474a7cc295b06.rlib(miniz_oxide-bd0474a7cc295b06.miniz_oxide.3dd1cd58e6ed6f5a-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libadler-b339f046f1fd4366.rlib(adler-b339f046f1fd4366.adler.12789116cf2a7aeb-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/liballoc-bae0c14b28b06671.rlib(alloc-bae0c14b28b06671.alloc.7d144d07b4c17fea-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcore-ce7ae382ac0ff6ce.rlib(core-ce7ae382ac0ff6ce.core.a88923a368bb68cc-cgu.0.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-ac5d42bf3e358089.rlib(compiler_builtins-ac5d42bf3e358089.compiler_builtins.2dbade20c842dffe-cgu.083.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-ac5d42bf3e358089.rlib(compiler_builtins-ac5d42bf3e358089.compiler_builtins.2dbade20c842dffe-cgu.100.rcgu.o)
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
          /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-ac5d42bf3e358089.rlib(compiler_builtins-ac5d42bf3e358089.compiler_builtins.2dbade20c842dffe-cgu.004.rcgu.o)
          collect2: error: ld returned 1 exit status
```


Pull request description:
Fix riscv64gc-unknown-linux-gnu target
Fix #1423

Patch:
diff --git a/.changes/1525.json b/.changes/1525.json
new file mode 100644
index 0000000..c912f38
--- /dev/null
+++ b/.changes/1525.json
@@ -0,0 +1,5 @@
+{
+    "description": "Fix riscv64gc-unknown-linux-gnu target",
+    "issues": [1423],
+    "type": "fixed"
+}
diff --git a/README.md b/README.md
index edda51a..6d0bb72 100644
--- a/README.md
+++ b/README.md
@@ -236,7 +236,7 @@ terminate.
 | `powerpc-unknown-linux-gnu`            | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
 | `powerpc64-unknown-linux-gnu`          | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
 | `powerpc64le-unknown-linux-gnu`        | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
-| `riscv64gc-unknown-linux-gnu`          | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
+| `riscv64gc-unknown-linux-gnu`          | 2.35   | 11.4.0 | ✓   | 8.2.2 |   ✓    |
 | `s390x-unknown-linux-gnu`              | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
 | `sparc64-unknown-linux-gnu`            | 2.31   | 9.4.0  | ✓   | 6.1.0 |   ✓    |
 | `sparcv9-sun-solaris`                  | 1.22.7 | 8.4.0  | ✓   | N/A   |        |
diff --git a/docker/Dockerfile.riscv64gc-unknown-linux-gnu b/docker/Dockerfile.riscv64gc-unknown-linux-gnu
index 8695d91..d5ea70a 100644
--- a/docker/Dockerfile.riscv64gc-unknown-linux-gnu
+++ b/docker/Dockerfile.riscv64gc-unknown-linux-gnu
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04 as cross-base
+FROM ubuntu:22.04 as cross-base
 ENV DEBIAN_FRONTEND=noninteractive
 
 COPY common.sh lib.sh /
diff --git a/docker/lib.sh b/docker/lib.sh
index dbd225b..248374f 100644
--- a/docker/lib.sh
+++ b/docker/lib.sh
@@ -54,6 +54,18 @@ if_ubuntu() {
     fi
 }
 
+if_ubuntu_ge() {
+    if grep -q -i ubuntu /etc/os-release; then
+        local ver
+        ver="$(source /etc/os-release; echo $VERSION_ID)"
+        if dpkg --compare-versions "$ver" "ge" "$1"; then
+            shift
+            eval "${@}"
+        fi
+    fi
+}
+
+
 GNU_MIRRORS=(
     "https://ftp.gnu.org/gnu/"
     "https://ftpmirror.gnu.org/"
diff --git a/docker/linux-image.sh b/docker/linux-image.sh
index 58094f9..745ac2f 100755
--- a/docker/linux-image.sh
+++ b/docker/linux-image.sh
@@ -137,9 +137,7 @@ main() {
         ;;
     riscv64)
         kernel='6.*-riscv64'
-        debsource="deb http://ftp.ports.debian.org/debian-ports unstable main"
-        debsource="${debsource}\ndeb http://ftp.ports.debian.org/debian-ports unreleased main"
-        debsource="${debsource}\ndeb http://deb.debian.org/debian unstable main"
+        debsource="deb http://deb.debian.org/debian unstable main"
         deps=(libcrypt1:"${arch}")
         ;;
     s390x)
@@ -365,6 +363,7 @@ mkdir /dev/pts
 mount -t devpts none /dev/pts/
 
 # some archs does not have virtio modules
+# fscache is builtin on riscv64
 insmod /modules/failover.ko || insmod /modules/failover.ko.xz || true
 insmod /modules/net_failover.ko || insmod /modules/net_failover.ko.xz || true
 insmod /modules/virtio.ko || insmod /modules/virtio.ko.xz || true
@@ -375,7 +374,7 @@ insmod /modules/virtio_pci_modern_dev.ko || insmod /modules/virtio_pci_modern_de
 insmod /modules/virtio_pci.ko || insmod /modules/virtio_pci.ko.xz || true
 insmod /modules/virtio_net.ko || insmod /modules/virtio_net.ko.xz || true
 insmod /modules/netfs.ko || insmod /modules/netfs.ko.xz || true
-insmod /modules/fscache.ko || insmod /modules/fscache.ko.xz
+insmod /modules/fscache.ko || insmod /modules/fscache.ko.xz || true
 insmod /modules/9pnet.ko || insmod /modules/9pnet.ko.xz
 insmod /modules/9pnet_virtio.ko || insmod /modules/9pnet_virtio.ko.xz || true
 insmod /modules/9p.ko || insmod /modules/9p.ko.xz
@@ -390,6 +389,12 @@ mount -t 9p -o trans=virtio target /target -oversion=9p2000.u || true
 exec dropbear -F -E -B
 EOF
 
+    if [[ "${arch}" == "riscv64" ]]; then
+        # Symlink dynamic loader to /lib/ld-linux-riscv64-lp64d.so.1
+        mkdir -p "${root}/lib"
+        ln -s /usr/lib/riscv64-linux-gnu/ld-linux-riscv64-lp64d.so.1 "${root}/lib/ld-linux-riscv64-lp64d.so.1"
+    fi
+
     chmod +x "${root}/init"
     cd "${root}"
     find . | cpio --create --format='newc' --quiet | gzip >../initrd.gz
diff --git a/docker/qemu.sh b/docker/qemu.sh
index bef0613..f56dfc8 100755
--- a/docker/qemu.sh
+++ b/docker/qemu.sh
@@ -29,6 +29,10 @@ build_static_libffi () {
 build_static_libmount () {
     local version_spec=2.23.2
     local version=2.23
+
+    if_ubuntu_ge 22.04 version_spec=2.37.2
+    if_ubuntu_ge 22.04 version=2.37
+
     local td
     td="$(mktemp -d)"
 
@@ -191,6 +195,9 @@ main() {
         libselinux1-dev \
         zlib1g-dev
 
+    # ubuntu no longer provides statically linked libmount
+    if_ubuntu_ge 22.04 build_static_libmount
+
     # if we have python3.6+, we can install qemu 7.0.0, which needs ninja-build
     # ubuntu 16.04 only provides python3.5, so remove when we have a newer qemu.
     is_ge_python36=$(python3 -c "import sys; print(int(sys.version_info >= (3, 6)))")
diff --git a/xtask/src/target_info.sh b/xtask/src/target_info.sh
index 4be4497..1056d67 100755
--- a/xtask/src/target_info.sh
+++ b/xtask/src/target_info.sh
@@ -288,6 +288,9 @@ case "${target}" in
             libc=$(max_glibc_version "${libdir}")
         fi
         ;;
+    riscv64gc-unknown-linux-gnu)
+        libc="$(dpkg-query --showformat='${Version}' --show libc6-riscv64-cross | cut -d- -f1)"
+        ;;
     *-*-linux-gnu*)
         toolchain_prefix="${!cc_var//-gcc/}"
         libdir="/usr/${toolchain_prefix}/lib"


Test patch:
diff --git a/ci/test.sh b/ci/test.sh
index 6a164ae..147c6b0 100755
--- a/ci/test.sh
+++ b/ci/test.sh
@@ -48,10 +48,6 @@ main() {
         # don't use xargo: should have native support just from rustc
         rustup toolchain add nightly
         CROSS+=("+nightly")
-    elif [[ "${TARGET}" == "riscv64gc-unknown-linux-gnu" ]]; then
-        # FIXME: riscv64gc-unknown-linux-gnu is broken on rustc 1.75, see https://github.com/cross-rs/cross/issues/1423
-        rustup toolchain add 1.70
-        CROSS+=("+1.70")
     fi
 
     if (( ${STD:-0} )); then