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

@@ -751,6 +751,22 @@ debian-x86_32:
-D mesa-clc=enabled
-D install-mesa-clc=true
# In case of issues with this job, contact @frankbinns
debian-riscv64:
extends:
- .meson-cross
- .use-debian/riscv64_build
- .meson-build-only
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
variables:
BUILDTYPE: debug
CROSS: riscv64
GALLIUM_DRIVERS: "llvmpipe,zink"
VULKAN_DRIVERS: "swrast"
# See https://gitlab.freedesktop.org/mesa/mesa/-/issues/14123
MESON_TEST_ARGS: "--no-suite mesa:llvmpipe"
# While s390 is dead, s390x is very much alive, and one of the last major
# big-endian platforms, so it provides useful coverage.
# In case of issues with this job, contact @ajax

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

View File

@@ -19,7 +19,7 @@ include:
- .gitlab-ci/conditional-build-image-tags.yml
variables:
DEBIAN_BUILD_BASE_TAG: "20251014-testfix"
DEBIAN_BUILD_BASE_TAG: "20251016-riscv"
DEBIAN_BUILD_TAG: "20250926-D3D618"
DEBIAN_TEST_BASE_TAG: "20250926-gitlab"