ci: implement debian-cross-riscv64

Revival of my old effort to get riscv64 testing in!
Now we're at Debian 13 (trixie), we can support RISC-V builds!

Disable llvmpipe suite because of lp_test_arit failure, see
https://gitlab.freedesktop.org/mesa/mesa/-/issues/14123

Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37445>
This commit is contained in:
David Heidelberg
2025-09-17 17:00:04 +02:00
parent 43f1ad308a
commit 9334b5659c
5 changed files with 63 additions and 1 deletions

View File

@@ -22,6 +22,8 @@ elif [[ "$arch" = "i386" ]]; then
rust_target=i686-unknown-linux-gnu
elif [[ "$arch" = "ppc64el" ]]; then
rust_target=powerpc64le-unknown-linux-gnu
elif [[ "$arch" = "riscv64" ]]; then
rust_target=riscv64gc-unknown-linux-gnu
elif [[ "$arch" = "s390x" ]]; then
rust_target=s390x-unknown-linux-gnu
else

View File

@@ -121,6 +121,30 @@ debian/ppc64el_build:
- job: debian/ppc64el_build
optional: true
# Debian based RISC-V 64 cross-build image
debian/riscv64_build:
extends:
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-riscv64_build ${DEBIAN_BUILD_TAG}
LLVM_VERSION: &debian-riscv64-llvm 19
.use-debian/riscv64_build:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
extends:
- .set-image-base-tag
variables:
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_IMAGE_PATH: "debian/riscv64_build"
MESA_IMAGE_TAG: *debian-riscv64_build
LLVM_VERSION: *debian-riscv64-llvm
needs:
- job: sanity
optional: true
- job: debian/riscv64_build
optional: true
# Debian based s390x cross-build image
debian/s390x_build:
extends:

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -e
. .gitlab-ci/setup-test-env.sh
arch=riscv64
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
libssl-dev
)
apt-get -y install "${EPHEMERAL[@]}"
. .gitlab-ci/container/build-mold.sh
apt-get purge -y "${EPHEMERAL[@]}"
. .gitlab-ci/container/cross_build.sh