Commit eaba84a5e1 for qemu.org
commit eaba84a5e1c94f0f7276c747ab079810c4029a60
Author: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Date: Tue Sep 29 21:24:37 2026 +0000
tests/docker/debian-all-test: add mips32r5 toolchain
For our test, we need a compiler and libc that supports -mnan=2008.
Debian compilers support this option, but no libc is available for it.
One possibility is to use previous version (2019 or 2020) of official
MIPS toolchain from https://codescape.mips.com/. However, it's a huge
download (2G), and even bigger on disk (8GB).
Bootlin provides toolchains
(https://toolchains.bootlin.com/toolchains.html) for mips64r5el only,
which is small (80MB dl, and 500MB on disk). Since all mipsel* variant
binaries have the same name, we explicitly rename them to
mips64r5el-linux-gnu-*. Also, this toolchain is maintained, used, and
updated frequently, so it's an excellent choice for us.
mips32r5el is more widely used compared to mips32r5, so we can ignore
the latter.
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Link: https://lore.kernel.org/qemu-devel/20260929212439.110454-23-pierrick.bouvier@oss.qualcomm.com
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index 9452448088..eefc03c49a 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -113,6 +113,22 @@ RUN apt update && \
libc6-dev-sparc64-cross \
&& \
dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+
+RUN apt update && DEBIAN_FRONTEND=noninteractive eatmydata apt install -y rename
+
+# download mips32r5el toolchain from bootlin, and rename binaries who are simply
+# named mipsel-linux-gnu-*
+RUN apt update && \
+ mkdir -p /opt/mips32r5el/ && \
+ cd /opt/mips32r5el/ && \
+ wget -q https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--glibc--stable-2026.08-1.tar.xz && \
+ tar xvf *.tar.xz && \
+ rm *.tar.xz && \
+ mv mips32r5el--glibc--stable-2026.08-1/* . && \
+ cd bin && \
+ rename 's/mipsel/mips32r5el/' mipsel*
+ENV PATH="$PATH:/opt/mips32r5el/bin"
+
ENV QEMU_CONFIGURE_OPTS=--disable-docs
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
# As a final step configure the user (if env is defined)
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 662d8a79f3..94cab24bbd 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -224,6 +224,22 @@ RUN apt update && \
libc6-dev-sparc64-cross \
&& \
dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+
+RUN apt update && DEBIAN_FRONTEND=noninteractive eatmydata apt install -y rename
+
+# download mips32r5el toolchain from bootlin, and rename binaries who are simply
+# named mipsel-linux-gnu-*
+RUN apt update && \
+ mkdir -p /opt/mips32r5el/ && \
+ cd /opt/mips32r5el/ && \
+ wget -q https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--glibc--stable-2026.08-1.tar.xz && \
+ tar xvf *.tar.xz && \
+ rm *.tar.xz && \
+ mv mips32r5el--glibc--stable-2026.08-1/* . && \
+ cd bin && \
+ rename 's/mipsel/mips32r5el/' mipsel*
+ENV PATH="$PATH:/opt/mips32r5el/bin"
+
ENV QEMU_CONFIGURE_OPTS=--disable-docs
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
"""