From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
qemu-arm@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"John Snow" <jsnow@redhat.com>, "Cleber Rosa" <crosa@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: Re: [PATCH-for-10.2 1/2] gitlab: Stop cross-testing for 32-bit ARM hosts
Date: Mon, 17 Nov 2025 16:54:15 +0000 [thread overview]
Message-ID: <87h5uslhvs.fsf@draig.linaro.org> (raw)
In-Reply-To: <20251117154154.79090-2-philmd@linaro.org> ("Philippe Mathieu-Daudé"'s message of "Mon, 17 Nov 2025 16:41:53 +0100")
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> 32-bit host support is deprecated since commit 6d701c9bac1
> ("meson: Deprecate 32-bit host support"). Next commits will
> remove support for 32-bit ARM hosts. Stop cross-building
> QEMU on our CI. Remove the CI jobs and related Docker files.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> configure | 9 -
> .gitlab-ci.d/container-cross.yml | 6 -
> .gitlab-ci.d/crossbuilds.yml | 7 -
> python/qemu/utils/accel.py | 1 -
> roms/edk2-build.py | 4 -
> .../dockerfiles/debian-armhf-cross.docker | 188 ------------------
> tests/docker/dockerfiles/debian-bootstrap.pre | 5 +-
> tests/lcitool/refresh | 5 -
> 8 files changed, 1 insertion(+), 224 deletions(-)
> delete mode 100644 tests/docker/dockerfiles/debian-armhf-cross.docker
>
> diff --git a/configure b/configure
> index a2f66f7ff9c..4b8f92e822b 100755
> --- a/configure
> +++ b/configure
> @@ -1334,8 +1334,6 @@ fi
> : ${cross_prefix_aarch64="aarch64-linux-gnu-"}
> : ${cross_prefix_aarch64_be="$cross_prefix_aarch64"}
> : ${cross_prefix_alpha="alpha-linux-gnu-"}
> -: ${cross_prefix_arm="arm-linux-gnueabihf-"}
> -: ${cross_prefix_armeb="$cross_prefix_arm"}
> : ${cross_prefix_hexagon="hexagon-unknown-linux-musl-"}
> : ${cross_prefix_loongarch64="loongarch64-unknown-linux-gnu-"}
> : ${cross_prefix_hppa="hppa-linux-gnu-"}
> @@ -1359,8 +1357,6 @@ fi
>
> : ${cross_cc_aarch64_be="$cross_cc_aarch64"}
> : ${cross_cc_cflags_aarch64_be="-mbig-endian"}
> -: ${cross_cc_armeb="$cross_cc_arm"}
> -: ${cross_cc_cflags_armeb="-mbig-endian"}
> : ${cross_cc_hexagon="hexagon-unknown-linux-musl-clang"}
> : ${cross_cc_cflags_hexagon="-mv73 -O2 -static"}
> : ${cross_cc_cflags_i386="-m32"}
> @@ -1481,11 +1477,6 @@ probe_target_compiler() {
> # We don't have any bigendian build tools so we only use this for AArch64
> container_image=debian-arm64-cross
> ;;
> - arm)
> - # We don't have any bigendian build tools so we only use this for ARM
> - container_image=debian-armhf-cross
> - container_cross_prefix=arm-linux-gnueabihf-
> - ;;
This isn't used for cross-builds but for building tests. So you need to
add a stanza above that passes:
container_image=debian-all-test-cross
> hexagon)
> container_cross_prefix=hexagon-unknown-linux-musl-
> container_cross_cc=${container_cross_prefix}clang
> diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml
> index 0fd7341afac..e7ce1392770 100644
> --- a/.gitlab-ci.d/container-cross.yml
> +++ b/.gitlab-ci.d/container-cross.yml
> @@ -22,12 +22,6 @@ arm64-debian-cross-container:
> variables:
> NAME: debian-arm64-cross
>
> -armhf-debian-cross-container:
> - extends: .container_job_template
> - stage: containers
> - variables:
> - NAME: debian-armhf-cross
> -
> hexagon-cross-container:
> extends: .container_job_template
> stage: containers
> diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
> index 99dfa7eea6f..e0a68c2023d 100644
> --- a/.gitlab-ci.d/crossbuilds.yml
> +++ b/.gitlab-ci.d/crossbuilds.yml
> @@ -1,13 +1,6 @@
> include:
> - local: '/.gitlab-ci.d/crossbuild-template.yml'
>
> -cross-armhf-user:
> - extends: .cross_user_build_job
> - needs:
> - - job: armhf-debian-cross-container
> - variables:
> - IMAGE: debian-armhf-cross
> -
> cross-arm64-system:
> extends: .cross_system_build_job
> needs:
> diff --git a/python/qemu/utils/accel.py b/python/qemu/utils/accel.py
> index f915b646692..e6fca304b33 100644
> --- a/python/qemu/utils/accel.py
> +++ b/python/qemu/utils/accel.py
> @@ -26,7 +26,6 @@
> # support which often includes its 32 bit cousin.
> ADDITIONAL_ARCHES = {
> "x86_64": "i386",
> - "aarch64": "armhf",
> "ppc64le": "ppc64",
> }
>
> diff --git a/roms/edk2-build.py b/roms/edk2-build.py
> index c7e9dc58ec0..683c622c3d6 100755
> --- a/roms/edk2-build.py
> +++ b/roms/edk2-build.py
> @@ -289,10 +289,6 @@ def prepare_env(cfg, silent = False):
> os.environ['PYTHONHASHSEED'] = '1'
>
> # for cross builds
> - if binary_exists('arm-linux-gnueabi-gcc'):
> - # ubuntu
> - os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnueabi-'
> - os.environ['GCC_ARM_PREFIX'] = 'arm-linux-gnueabi-'
Isn't this part of the firmware build? armhf guests aren't going away.
> if binary_exists('loongarch64-linux-gnu-gcc'):
> os.environ['GCC5_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
> os.environ['GCC_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
> diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
> deleted file mode 100644
> index 627d41c6dee..00000000000
> --- a/tests/docker/dockerfiles/debian-armhf-cross.docker
> +++ /dev/null
> @@ -1,188 +0,0 @@
> -# THIS FILE WAS AUTO-GENERATED
> -#
> -# $ lcitool dockerfile --layers all --cross-arch armv7l debian-13 qemu
> -#
> -# https://gitlab.com/libvirt/libvirt-ci
> -
> -FROM docker.io/library/debian:13-slim
> -
> -RUN export DEBIAN_FRONTEND=noninteractive && \
> - apt-get update && \
> - apt-get install -y eatmydata && \
> - eatmydata apt-get dist-upgrade -y && \
> - eatmydata apt-get install --no-install-recommends -y \
> - bash \
> - bc \
> - bindgen \
> - bison \
> - bsdextrautils \
> - bzip2 \
> - ca-certificates \
> - ccache \
> - dbus \
> - debianutils \
> - diffutils \
> - exuberant-ctags \
> - findutils \
> - flex \
> - gcc \
> - gcovr \
> - gettext \
> - git \
> - hostname \
> - libclang-rt-dev \
> - libglib2.0-dev \
> - llvm \
> - locales \
> - make \
> - mtools \
> - ncat \
> - ninja-build \
> - openssh-client \
> - pkgconf \
> - python3 \
> - python3-numpy \
> - python3-opencv \
> - python3-pillow \
> - python3-pip \
> - python3-setuptools \
> - python3-sphinx \
> - python3-sphinx-rtd-theme \
> - python3-tomli \
> - python3-venv \
> - python3-wheel \
> - python3-yaml \
> - rpm2cpio \
> - rustc \
> - sed \
> - socat \
> - sparse \
> - swtpm \
> - tar \
> - tesseract-ocr \
> - tesseract-ocr-eng \
> - vulkan-tools \
> - xorriso \
> - zstd && \
> - eatmydata apt-get autoremove -y && \
> - eatmydata apt-get autoclean -y && \
> - sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
> - dpkg-reconfigure locales && \
> - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
> -
> -RUN /usr/bin/pip3 install meson==1.8.1
> -
> -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
> -ENV LANG "en_US.UTF-8"
> -ENV MAKE "/usr/bin/make"
> -ENV NINJA "/usr/bin/ninja"
> -ENV PYTHON "/usr/bin/python3"
> -
> -RUN export DEBIAN_FRONTEND=noninteractive && \
> - dpkg --add-architecture armhf && \
> - eatmydata apt-get update && \
> - eatmydata apt-get dist-upgrade -y && \
> - eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
> - eatmydata apt-get install --no-install-recommends -y \
> - gcc-arm-linux-gnueabihf \
> - libaio-dev:armhf \
> - libasan8:armhf \
> - libasound2-dev:armhf \
> - libattr1-dev:armhf \
> - libbpf-dev:armhf \
> - libbrlapi-dev:armhf \
> - libbz2-dev:armhf \
> - libc6-dev:armhf \
> - libcacard-dev:armhf \
> - libcap-ng-dev:armhf \
> - libcapstone-dev:armhf \
> - libcbor-dev:armhf \
> - libcmocka-dev:armhf \
> - libcurl4-gnutls-dev:armhf \
> - libdaxctl-dev:armhf \
> - libdrm-dev:armhf \
> - libepoxy-dev:armhf \
> - libfdt-dev:armhf \
> - libffi-dev:armhf \
> - libfuse3-dev:armhf \
> - libgbm-dev:armhf \
> - libgcrypt20-dev:armhf \
> - libglib2.0-dev:armhf \
> - libgnutls28-dev:armhf \
> - libgtk-3-dev:armhf \
> - libgtk-vnc-2.0-dev:armhf \
> - libibverbs-dev:armhf \
> - libiscsi-dev:armhf \
> - libjemalloc-dev:armhf \
> - libjpeg62-turbo-dev:armhf \
> - libjson-c-dev:armhf \
> - liblttng-ust-dev:armhf \
> - liblzo2-dev:armhf \
> - libncursesw5-dev:armhf \
> - libnfs-dev:armhf \
> - libnuma-dev:armhf \
> - libpam0g-dev:armhf \
> - libpcre2-dev:armhf \
> - libpipewire-0.3-dev:armhf \
> - libpixman-1-dev:armhf \
> - libpng-dev:armhf \
> - libpulse-dev:armhf \
> - librdmacm-dev:armhf \
> - libsasl2-dev:armhf \
> - libsdl2-dev:armhf \
> - libsdl2-image-dev:armhf \
> - libseccomp-dev:armhf \
> - libselinux1-dev:armhf \
> - libslirp-dev:armhf \
> - libsnappy-dev:armhf \
> - libsndio-dev:armhf \
> - libspice-protocol-dev:armhf \
> - libspice-server-dev:armhf \
> - libssh-dev:armhf \
> - libstd-rust-dev:armhf \
> - libsystemd-dev:armhf \
> - libtasn1-6-dev:armhf \
> - libubsan1:armhf \
> - libudev-dev:armhf \
> - liburing-dev:armhf \
> - libusb-1.0-0-dev:armhf \
> - libusbredirhost-dev:armhf \
> - libvdeplug-dev:armhf \
> - libvirglrenderer-dev:armhf \
> - libvte-2.91-dev:armhf \
> - libxdp-dev:armhf \
> - libzstd-dev:armhf \
> - nettle-dev:armhf \
> - systemtap-sdt-dev:armhf \
> - zlib1g-dev:armhf && \
> - eatmydata apt-get autoremove -y && \
> - eatmydata apt-get autoclean -y && \
> - mkdir -p /usr/local/share/meson/cross && \
> - printf "[binaries]\n\
> -c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
> -ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
> -strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
> -pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
> -\n\
> -[host_machine]\n\
> -system = 'linux'\n\
> -cpu_family = 'arm'\n\
> -cpu = 'armhf'\n\
> -endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
> - dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
> - mkdir -p /usr/libexec/ccache-wrappers && \
> - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
> - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
> -
> -ENV ABI "arm-linux-gnueabihf"
> -ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
> -ENV RUST_TARGET "armv7-unknown-linux-gnueabihf"
> -ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
> -ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user
> -# As a final step configure the user (if env is defined)
> -ARG USER
> -ARG UID
> -RUN if [ "${USER}" ]; then \
> - id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
> -
> -ENV ENABLE_RUST 1
> diff --git a/tests/docker/dockerfiles/debian-bootstrap.pre b/tests/docker/dockerfiles/debian-bootstrap.pre
> index 35c85f7db8a..0a652754dfd 100755
> --- a/tests/docker/dockerfiles/debian-bootstrap.pre
> +++ b/tests/docker/dockerfiles/debian-bootstrap.pre
> @@ -21,7 +21,7 @@ if [ -z $FAKEROOT ]; then
> fi
>
> if [ -z "${DEB_ARCH}" ]; then
> - echo "Please set DEB_ARCH to choose an architecture (e.g. armhf)" >&2
> + echo "Please set DEB_ARCH to choose an architecture (e.g. arm64)" >&2
> exit_and_skip
>
> fi
> @@ -99,9 +99,6 @@ else
> amd64)
> QEMU=qemu-i386
> ;;
> - armel|armhf)
> - QEMU=qemu-arm
> - ;;
Again this is for testing and building rootfs's so shouldn't be dropped
here.
> arm64)
> QEMU=qemu-aarch64
> ;;
> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> index df186caffe6..d3743ba73e8 100755
> --- a/tests/lcitool/refresh
> +++ b/tests/lcitool/refresh
> @@ -208,11 +208,6 @@ try:
> trailer=cross_build("aarch64-linux-gnu-",
> "aarch64-softmmu,aarch64-linux-user"))
>
> - generate_dockerfile("debian-armhf-cross", "debian-13",
> - cross="armv7l",
> - trailer=cross_build("arm-linux-gnueabihf-",
> - "arm-softmmu,arm-linux-user"))
> -
> generate_dockerfile("debian-i686-cross", "debian-13",
> cross="i686",
> trailer=cross_build("i686-linux-gnu-",
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2025-11-17 16:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-17 15:41 [PATCH-for-10.2 0/2] tcg: Remove support for 32-bit arm hosts Philippe Mathieu-Daudé
2025-11-17 15:41 ` [PATCH-for-10.2 1/2] gitlab: Stop cross-testing for 32-bit ARM hosts Philippe Mathieu-Daudé
2025-11-17 16:54 ` Alex Bennée [this message]
2025-11-17 15:41 ` [PATCH-for-10.2 2/2] buildsys: Remove support " Philippe Mathieu-Daudé
2025-11-17 15:59 ` [PATCH-for-10.2 0/2] tcg: Remove support for 32-bit arm hosts Peter Maydell
2025-11-17 17:04 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h5uslhvs.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.