From 4e93a9802d5aab56d900b3c615fdf56542d21079 Mon Sep 17 00:00:00 2001 From: Adrian Reber Date: Thu, 9 Jul 2026 08:35:09 +0000 Subject: [PATCH] scripts/build: reduce riscv64 cross-compilation template duplication Move the riscv64-specific APT repository setup (GPG keys, custom source lists) from the template into the header file. This allows the riscv64 template to be a symlink to the shared Dockerfile.stable-cross.tmpl, like all other cross-compilation targets. Skip amdgpu_plugin for riscv64 as it is not supported. Assisted-by: Claude Code (claude-opus-4-6) Signed-off-by: Adrian Reber --- .../build/Dockerfile.riscv64-stable-cross.hdr | 11 ++++++ .../Dockerfile.riscv64-stable-cross.tmpl | 34 +------------------ scripts/build/Dockerfile.stable-cross.tmpl | 4 +-- 3 files changed, 14 insertions(+), 35 deletions(-) mode change 100644 => 120000 scripts/build/Dockerfile.riscv64-stable-cross.tmpl diff --git a/scripts/build/Dockerfile.riscv64-stable-cross.hdr b/scripts/build/Dockerfile.riscv64-stable-cross.hdr index 349a07cbf..c4d694ec3 100644 --- a/scripts/build/Dockerfile.riscv64-stable-cross.hdr +++ b/scripts/build/Dockerfile.riscv64-stable-cross.hdr @@ -3,3 +3,14 @@ FROM docker.io/library/ubuntu:jammy ENV ARCH=riscv64 ENV DEBIAN_ARCH=riscv64 ENV CROSS_TRIPLET=riscv64-linux-gnu + +RUN apt-get clean -y && apt-get update -y && apt-get install -y --no-install-recommends gnupg2 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C 8D69674688B6CB36 B523E5F3FC4E5F2C + +COPY scripts/ci/riscv64-cross/amd64-sources.list /etc/apt/sources.list + +COPY scripts/ci/riscv64-cross/riscv64-sources.list /etc/apt/sources.list.d/ + +RUN dpkg --add-architecture ${DEBIAN_ARCH} && \ + apt-get update -y diff --git a/scripts/build/Dockerfile.riscv64-stable-cross.tmpl b/scripts/build/Dockerfile.riscv64-stable-cross.tmpl deleted file mode 100644 index ee1ea2fa5..000000000 --- a/scripts/build/Dockerfile.riscv64-stable-cross.tmpl +++ /dev/null @@ -1,33 +0,0 @@ -# Add the cross compiler sources -RUN apt-get clean -y && apt-get update -y && apt-get install -y --no-install-recommends gnupg2 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C 8D69674688B6CB36 B523E5F3FC4E5F2C - -COPY scripts/ci/riscv64-cross/amd64-sources.list /etc/apt/sources.list - -COPY scripts/ci/riscv64-cross/riscv64-sources.list /etc/apt/sources.list.d/ - -RUN dpkg --add-architecture ${DEBIAN_ARCH} && \ - apt-get update -y - -ENV CROSS_COMPILE=${CROSS_TRIPLET}- \ - CROSS_ROOT=/usr/${CROSS_TRIPLET} \ - AS=/usr/bin/${CROSS_TRIPLET}-as \ - AR=/usr/bin/${CROSS_TRIPLET}-ar \ - CC=/usr/bin/${CROSS_TRIPLET}-gcc \ - CPP=/usr/bin/${CROSS_TRIPLET}-cpp \ - CXX=/usr/bin/${CROSS_TRIPLET}-g++ \ - LD=/usr/bin/${CROSS_TRIPLET}-ld \ - FC=/usr/bin/${CROSS_TRIPLET}-gfortran - -ENV PATH="${PATH}:${CROSS_ROOT}/bin" \ - PKG_CONFIG_PATH=/usr/lib/${CROSS_TRIPLET}/pkgconfig - -COPY contrib/dependencies/apt-cross-packages.sh /criu/contrib/dependencies/apt-cross-packages.sh -COPY contrib/apt-install /criu/contrib/apt-install -WORKDIR /criu -RUN /criu/contrib/dependencies/apt-cross-packages.sh - -COPY . /criu - -RUN make mrproper && date && make -j $(nproc) zdtm && date diff --git a/scripts/build/Dockerfile.riscv64-stable-cross.tmpl b/scripts/build/Dockerfile.riscv64-stable-cross.tmpl new file mode 120000 index 000000000..81ef22980 --- /dev/null +++ b/scripts/build/Dockerfile.riscv64-stable-cross.tmpl @@ -0,0 +1 @@ +Dockerfile.stable-cross.tmpl \ No newline at end of file diff --git a/scripts/build/Dockerfile.stable-cross.tmpl b/scripts/build/Dockerfile.stable-cross.tmpl index feb551203..429b077b8 100644 --- a/scripts/build/Dockerfile.stable-cross.tmpl +++ b/scripts/build/Dockerfile.stable-cross.tmpl @@ -22,10 +22,10 @@ RUN /criu/contrib/dependencies/apt-cross-packages.sh COPY . /criu -# amdgpu_plugin with armv7 is not supported +# amdgpu_plugin is not supported on armv7 and riscv64 RUN make mrproper && date && \ make -j $(nproc) && \ - if [ "$SUBARCH" != "armv7" ]; then \ + if [ "$SUBARCH" != "armv7" ] && [ "$ARCH" != "riscv64" ]; then \ make -j $(nproc) amdgpu_plugin; \ fi && \ make -j $(nproc) zdtm && date