@samitouri / QOSamiQemu / commits / af4b64eb94

tests/docker: migrate legacy-test-cross compilers to trixie

The bugs have evidently been fixed in the latest release so we can migrate the laggards into how all-test-cross container and remove the legacy hacks. They are also packaged for the main architectures so we don't need to jump through the amd64 hoops. Suggested-by: John Snow <jsnow@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20260226185303.1920021-3-alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Alex Bennée committed Feb 26, 2026 at 18:52 UTC af4b64eb945afe0f7fe031057c7a13f20a2510b8
7 files changed +13 -83
.gitlab-ci.d/buildtest.yml
-12
@@ -376,18 +376,6 @@ build-user-static:
376 variables:
377 IMAGE: debian-all-test-cross
378 CONFIGURE_ARGS: --disable-tools --disable-system --static
379 - --target-list-exclude=alpha-linux-user,sh4-linux-user
380 - MAKE_CHECK_ARGS: check-tcg
381 -
382 -# targets stuck on older compilers
383 -build-legacy:
384 - extends: .native_build_job_template
385 - needs:
386 - - job: amd64-debian-legacy-cross-container
387 - variables:
388 - IMAGE: debian-legacy-test-cross
389 - TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user
390 - CONFIGURE_ARGS: --disable-tools
379 MAKE_CHECK_ARGS: check-tcg
380
381 build-user-hexagon:
.gitlab-ci.d/container-cross.yml
-6
@@ -10,12 +10,6 @@ amd64-debian-user-cross-container:
10 variables:
11 NAME: debian-all-test-cross
12
13 -amd64-debian-legacy-cross-container:
14 - extends: .container_job_template
15 - stage: containers
16 - variables:
17 - NAME: debian-legacy-test-cross
18 -
13 arm64-debian-cross-container:
14 extends: .container_job_template
15 stage: containers
.gitlab-ci.d/containers.yml
-1
@@ -45,7 +45,6 @@ weekly-container-builds:
45 # cross
46 - amd64-debian-cross-container
47 - amd64-debian-user-cross-container
48 - - amd64-debian-legacy-cross-container
48 - arm64-debian-cross-container
49 - hexagon-cross-container
50 - loongarch-debian-cross-container
configure
+1 -9
@@ -1458,7 +1458,7 @@ probe_target_compiler() {
1458 container_image=debian-all-test-cross
1459 container_cross_prefix=aarch64-linux-gnu-
1460 ;;
1461 - hppa|m68k|mips|riscv64|sparc64)
1461 + alpha|hppa|m68k|mips|riscv64|sh4|sparc64)
1462 container_image=debian-all-test-cross
1463 ;;
1464 mips64)
@@ -1470,14 +1470,6 @@ probe_target_compiler() {
1470 container_cross_prefix=powerpc${target_arch#ppc}-linux-gnu-
1471 ;;
1472
1473 - # debian-legacy-test-cross architectures (need Debian 11)
1474 - # - libc6.1-dev-alpha-cross: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054412
1475 - # - sh4-linux-user: binaries don't run with bookworm compiler
1476 -
1477 - alpha|sh4)
1478 - container_image=debian-legacy-test-cross
1479 - ;;
1480 -
1473 # architectures with individual containers
1474
1475 aarch64)
tests/docker/dockerfiles/debian-all-test-cross.docker
+6 -2
@@ -64,6 +64,8 @@ ENV AVAILABLE_COMPILERS gcc-aarch64-linux-gnu \
64 libc6-dev-arm64-cross \
65 gcc-arm-linux-gnueabihf \
66 libc6-dev-armhf-cross \
67 + gcc-alpha-linux-gnu \
68 + libc6.1-dev-alpha-cross \
69 gcc-mips-linux-gnu \
70 libc6-dev-mips-cross \
71 gcc-mips64-linux-gnuabi64 \
@@ -77,7 +79,9 @@ ENV AVAILABLE_COMPILERS gcc-aarch64-linux-gnu \
79 gcc-riscv64-linux-gnu \
80 libc6-dev-riscv64-cross \
81 gcc-s390x-linux-gnu \
80 - libc6-dev-s390x-cross
82 + libc6-dev-s390x-cross\
83 + gcc-sh4-linux-gnu \
84 + libc6-dev-sh4-cross
85 RUN if dpkg-architecture -e amd64; then \
86 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
87 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
@@ -90,7 +94,7 @@ apt install -y --no-install-recommends \
94 ${AVAILABLE_COMPILERS} && \
95 dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
96 ENV QEMU_CONFIGURE_OPTS --disable-docs
93 -ENV DEF_TARGET_LIST aarch64-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sparc64-linux-user
97 +ENV DEF_TARGET_LIST aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
98 # As a final step configure the user (if env is defined)
99 ARG USER
100 ARG UID
tests/docker/dockerfiles/debian-legacy-test-cross.docker deleted
-51
@@ -1,51 +0,0 @@
1 -# Docker legacy cross-compiler target (tests and minimal qemu)
2 -#
3 -# Compilers for some of our older targets which we cant currently
4 -# upgrade. Currently:
5 -#
6 -# libc6.1-dev-alpha-cross: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054412
7 -# sh4-linux-user: binaries don't run with bookworm compiler
8 -#
9 -# As we are targeting check-tcg here we only need minimal qemu
10 -# dependencies and the relevant cross compilers.
11 -
12 -FROM docker.io/library/debian:11-slim
13 -
14 -# Duplicate deb line as deb-src
15 -RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
16 -
17 -RUN export DEBIAN_FRONTEND=noninteractive && \
18 - apt-get update && \
19 - apt-get install -y eatmydata && \
20 - eatmydata apt-get dist-upgrade -y && \
21 - apt build-dep -yy qemu
22 -
23 -# Add extra build tools and as many cross compilers as we can for testing
24 -RUN DEBIAN_FRONTEND=noninteractive eatmydata \
25 - apt install -y --no-install-recommends \
26 - bison \
27 - ccache \
28 - clang \
29 - flex \
30 - git \
31 - ninja-build \
32 - gcc-alpha-linux-gnu \
33 - libc6.1-dev-alpha-cross \
34 - gcc-sh4-linux-gnu \
35 - libc6-dev-sh4-cross \
36 - python3-pip \
37 - python3-setuptools \
38 - python3-venv \
39 - python3-wheel && \
40 - dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
41 -
42 -RUN /usr/bin/pip3 install tomli
43 -
44 -ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
45 -ENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
46 -ENV MAKE /usr/bin/make
47 -# As a final step configure the user (if env is defined)
48 -ARG USER
49 -ARG UID
50 -RUN if [ "${USER}" ]; then \
51 - id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
tests/lcitool/refresh
+6 -2
@@ -172,6 +172,8 @@ debian_all_test_cross_compilers = [
172 " libc6-dev-arm64-cross \\\n",
173 " gcc-arm-linux-gnueabihf \\\n",
174 " libc6-dev-armhf-cross \\\n",
175 + " gcc-alpha-linux-gnu \\\n"
176 + " libc6.1-dev-alpha-cross \\\n"
177 " gcc-mips-linux-gnu \\\n",
178 " libc6-dev-mips-cross \\\n",
179 " gcc-mips64-linux-gnuabi64 \\\n",
@@ -185,7 +187,9 @@ debian_all_test_cross_compilers = [
187 " gcc-riscv64-linux-gnu \\\n",
188 " libc6-dev-riscv64-cross \\\n",
189 " gcc-s390x-linux-gnu \\\n",
188 - " libc6-dev-s390x-cross\n",
190 + " libc6-dev-s390x-cross\\\n",
191 + " gcc-sh4-linux-gnu \\\n",
192 + " libc6-dev-sh4-cross\n",
193 "RUN if dpkg-architecture -e amd64; then \\\n",
194 " export AVAILABLE_COMPILERS=\"${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross\"; \\\n",
195 " export AVAILABLE_COMPILERS=\"${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross\"; \\\n",
@@ -198,7 +202,7 @@ debian_all_test_cross_compilers = [
202 "${AVAILABLE_COMPILERS} && \\\n",
203 "dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt\n",
204 "ENV QEMU_CONFIGURE_OPTS --disable-docs\n",
201 - "ENV DEF_TARGET_LIST aarch64-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sparc64-linux-user\n",
205 + "ENV DEF_TARGET_LIST aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user\n",
206 ]
207
208 def cross_build(prefix, targets):