From 71fe2905408c4b91842f0fa467aa65c79abbcd49 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 10 Jun 2026 12:22:18 -0700 Subject: [PATCH 1/5] net/af-xdp.c: maybe-uninitialized warning with gcov build on ubuntu2404 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a false positive, fixed by explicitly initializing variable to NULL. Variable is always initialized during the for loop above, which is guaranteed to run since queues >= 1. This is correctly detected for normal builds, but not for gcov builds. In function ‘af_xdp_read_poll’, inlined from ‘net_init_af_xdp’ at ../net/af-xdp.c:546:5: ../net/af-xdp.c:78:10: error: ‘s’ may be used uninitialized [-Werror=maybe-uninitialized] 78 | if (s->read_poll != enable) { | ~^~~~~~~~~~~ ../net/af-xdp.c: In function ‘net_init_af_xdp’: ../net/af-xdp.c:461:17: note: ‘s’ was declared here 461 | AFXDPState *s; | Reviewed-by: Pierrick Bouvier Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-2-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- net/af-xdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/af-xdp.c b/net/af-xdp.c index 1ffd6363a8..72d75748c6 100644 --- a/net/af-xdp.c +++ b/net/af-xdp.c @@ -458,7 +458,7 @@ int net_init_af_xdp(const Netdev *netdev, g_autofree int *sock_fds = NULL; int i, queues; Error *err = NULL; - AFXDPState *s; + AFXDPState *s = NULL; bool inhibit; ifindex = if_nametoindex(opts->ifname); From 8bccc09bfb9a345094ecc91b22995506d50e0421 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 10 Jun 2026 12:22:19 -0700 Subject: [PATCH 2/5] tests: add ubuntu 2404 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Philippe Mathieu-Daudé Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-3-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- tests/docker/dockerfiles/ubuntu2404.docker | 172 +++++++++++++++++++++ tests/lcitool/refresh | 6 +- 2 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 tests/docker/dockerfiles/ubuntu2404.docker diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker new file mode 100644 index 0000000000..26bc2dd94f --- /dev/null +++ b/tests/docker/dockerfiles/ubuntu2404.docker @@ -0,0 +1,172 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --layers all ubuntu-2404 qemu +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM docker.io/library/ubuntu:24.04 + +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 \ + clang \ + coreutils \ + dbus \ + debianutils \ + diffutils \ + exuberant-ctags \ + findutils \ + flex \ + gcc \ + gcovr \ + gettext \ + git \ + hostname \ + libaio-dev \ + libasan8 \ + libasound2-dev \ + libattr1-dev \ + libbpf-dev \ + libbrlapi-dev \ + libbz2-dev \ + libc6-dev \ + libcacard-dev \ + libcap-ng-dev \ + libcapstone-dev \ + libcbor-dev \ + libclang-rt-dev \ + libcmocka-dev \ + libcurl4-gnutls-dev \ + libdaxctl-dev \ + libdrm-dev \ + libepoxy-dev \ + libfdt-dev \ + libffi-dev \ + libfuse3-dev \ + libgbm-dev \ + libgcrypt20-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libgtk-3-dev \ + libgtk-vnc-2.0-dev \ + libibverbs-dev \ + libiscsi-dev \ + libjemalloc-dev \ + libjpeg-turbo8-dev \ + libjson-c-dev \ + liblttng-ust-dev \ + liblzo2-dev \ + libncursesw5-dev \ + libnfs-dev \ + libnuma-dev \ + libpam0g-dev \ + libpcre2-dev \ + libpipewire-0.3-dev \ + libpixman-1-dev \ + libpmem-dev \ + libpng-dev \ + libpulse-dev \ + librbd-dev \ + librdmacm-dev \ + libsasl2-dev \ + libsdl2-dev \ + libsdl2-image-dev \ + libseccomp-dev \ + libselinux1-dev \ + libslirp-dev \ + libsnappy-dev \ + libsndio-dev \ + libspice-protocol-dev \ + libspice-server-dev \ + libssh-dev \ + libstd-rust-dev \ + libsystemd-dev \ + libtasn1-6-dev \ + libubsan1 \ + libudev-dev \ + liburing-dev \ + libusb-1.0-0-dev \ + libusbredirhost-dev \ + libvdeplug-dev \ + libvirglrenderer-dev \ + libvte-2.91-dev \ + libxdp-dev \ + libxen-dev \ + libzstd-dev \ + llvm \ + locales \ + make \ + mtools \ + multipath-tools \ + nettle-dev \ + 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-1.83 \ + sed \ + socat \ + sparse \ + swtpm \ + systemtap-sdt-dev \ + tar \ + tesseract-ocr \ + tesseract-ocr-eng \ + vulkan-tools \ + xorriso \ + zlib1g-dev \ + 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 && \ + 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/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + +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" +ENV RUSTC=/usr/bin/rustc-1.83 +ENV RUSTDOC=/usr/bin/rustdoc-1.83 +ENV CARGO_HOME=/usr/local/cargo +ENV PATH=$CARGO_HOME/bin:$PATH +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt install -y --no-install-recommends cargo +RUN cargo install --locked bindgen-cli +# 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/lcitool/refresh b/tests/lcitool/refresh index fa545cf1f4..26abc69573 100755 --- a/tests/lcitool/refresh +++ b/tests/lcitool/refresh @@ -151,7 +151,7 @@ fedora_rustup_nightly_extras = [ 'RUN $CARGO --list\n', ] -ubuntu2204_rust_extras = [ +ubuntu2404_rust_extras = [ "ENV RUSTC=/usr/bin/rustc-1.83\n", "ENV RUSTDOC=/usr/bin/rustdoc-1.83\n", "ENV CARGO_HOME=/usr/local/cargo\n", @@ -229,8 +229,10 @@ try: trailer="".join(debian13_extras)) generate_dockerfile("fedora", "fedora-43") generate_dockerfile("opensuse-leap", "opensuse-leap-16") + generate_dockerfile("ubuntu2404", "ubuntu-2404", + trailer="".join(ubuntu2404_rust_extras)) generate_dockerfile("ubuntu2204", "ubuntu-2204", - trailer="".join(ubuntu2204_rust_extras), + trailer="".join(ubuntu2404_rust_extras), # https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318 enable_rust=False) From f011b0d5d16a43804ce6d31bd868bc9b9deef349 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 10 Jun 2026 12:22:20 -0700 Subject: [PATCH 3/5] docs: update mention to ubuntu2204 Reviewed-by: Pierrick Bouvier Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-4-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- docs/devel/testing/main.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/devel/testing/main.rst b/docs/devel/testing/main.rst index 3408b5836d..c6821a36d9 100644 --- a/docs/devel/testing/main.rst +++ b/docs/devel/testing/main.rst @@ -711,13 +711,13 @@ https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual Thread Sanitizer in Docker ~~~~~~~~~~~~~~~~~~~~~~~~~~ -TSan is currently supported in the ubuntu2204 docker. +TSan is currently supported in all our host docker images (for instance, ubuntu2404). The test-tsan test will build using TSan and then run make check. .. code:: - make docker-test-tsan@ubuntu2204 + make docker-test-tsan@ubuntu2404 TSan warnings under docker are placed in files located at build/tsan/. From a921aabed56faa2210df4346c757ef73be170504 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 10 Jun 2026 12:22:21 -0700 Subject: [PATCH 4/5] ci: update to ubuntu2404 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Philippe Mathieu-Daudé Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-5-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- .gitlab-ci.d/buildtest.yml | 16 ++++++++-------- .gitlab-ci.d/containers.yml | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index d054349030..e2553e7326 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -36,9 +36,9 @@ build-system-ubuntu: - .native_build_job_template - .native_build_artifact_template needs: - - job: amd64-ubuntu2204-container + - job: amd64-ubuntu2404-container variables: - IMAGE: ubuntu2204 + IMAGE: ubuntu2404 CONFIGURE_ARGS: --enable-docs --enable-rust TARGETS: alpha-softmmu microblaze-softmmu mips64el-softmmu MAKE_CHECK_ARGS: check-build @@ -49,7 +49,7 @@ check-system-ubuntu: - job: build-system-ubuntu artifacts: true variables: - IMAGE: ubuntu2204 + IMAGE: ubuntu2404 MAKE_CHECK_ARGS: check functional-system-ubuntu: @@ -58,7 +58,7 @@ functional-system-ubuntu: - job: build-system-ubuntu artifacts: true variables: - IMAGE: ubuntu2204 + IMAGE: ubuntu2404 MAKE_CHECK_ARGS: check-functional build-system-debian: @@ -577,9 +577,9 @@ functional-cfi-x86_64: tsan-build: extends: .native_build_job_template needs: - - job: amd64-ubuntu2204-container + - job: amd64-ubuntu2404-container variables: - IMAGE: ubuntu2204 + IMAGE: ubuntu2404 CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++ --enable-trace-backends=ust --disable-slirp TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user @@ -591,10 +591,10 @@ tsan-build: gcov: extends: .native_build_job_template needs: - - job: amd64-ubuntu2204-container + - job: amd64-ubuntu2404-container timeout: 80m variables: - IMAGE: ubuntu2204 + IMAGE: ubuntu2404 CONFIGURE_ARGS: --enable-gcov TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu MAKE_CHECK_ARGS: check-unit check-softfloat diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml index 515e7382f2..87c20094d2 100644 --- a/.gitlab-ci.d/containers.yml +++ b/.gitlab-ci.d/containers.yml @@ -13,10 +13,10 @@ amd64-debian-container: variables: NAME: debian -amd64-ubuntu2204-container: +amd64-ubuntu2404-container: extends: .container_job_template variables: - NAME: ubuntu2204 + NAME: ubuntu2404 amd64-opensuse-leap-container: extends: .container_job_template @@ -58,7 +58,7 @@ weekly-container-builds: # containers - amd64-alpine-container - amd64-debian-container - - amd64-ubuntu2204-container + - amd64-ubuntu2404-container - amd64-opensuse-leap-container - python-container - amd64-fedora-rust-nightly-container From 2750ff8d21a8eda2ad872b5bf97810de737b5c01 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 10 Jun 2026 12:22:22 -0700 Subject: [PATCH 5/5] tests: remove ubuntu2204 container MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Philippe Mathieu-Daudé Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-6-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier --- tests/docker/dockerfiles/ubuntu2204.docker | 168 --------------------- tests/lcitool/refresh | 4 - 2 files changed, 172 deletions(-) delete mode 100644 tests/docker/dockerfiles/ubuntu2204.docker diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker deleted file mode 100644 index 4617bbe1f6..0000000000 --- a/tests/docker/dockerfiles/ubuntu2204.docker +++ /dev/null @@ -1,168 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool dockerfile --layers all ubuntu-2204 qemu -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM docker.io/library/ubuntu:22.04 - -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 \ - bison \ - bsdextrautils \ - bzip2 \ - ca-certificates \ - ccache \ - clang \ - coreutils \ - dbus \ - debianutils \ - diffutils \ - exuberant-ctags \ - findutils \ - flex \ - gcc \ - gcovr \ - gettext \ - git \ - hostname \ - libaio-dev \ - libasan6 \ - libasound2-dev \ - libattr1-dev \ - libbpf-dev \ - libbrlapi-dev \ - libbz2-dev \ - libc6-dev \ - libcacard-dev \ - libcap-ng-dev \ - libcapstone-dev \ - libcbor-dev \ - libclang-dev \ - libcmocka-dev \ - libcurl4-gnutls-dev \ - libdaxctl-dev \ - libdrm-dev \ - libepoxy-dev \ - libfdt-dev \ - libffi-dev \ - libfuse3-dev \ - libgbm-dev \ - libgcrypt20-dev \ - libglib2.0-dev \ - libgnutls28-dev \ - libgtk-3-dev \ - libgtk-vnc-2.0-dev \ - libibverbs-dev \ - libiscsi-dev \ - libjemalloc-dev \ - libjpeg-turbo8-dev \ - libjson-c-dev \ - liblttng-ust-dev \ - liblzo2-dev \ - libncursesw5-dev \ - libnfs-dev \ - libnuma-dev \ - libpam0g-dev \ - libpcre2-dev \ - libpipewire-0.3-dev \ - libpixman-1-dev \ - libpmem-dev \ - libpng-dev \ - libpulse-dev \ - librbd-dev \ - librdmacm-dev \ - libsasl2-dev \ - libsdl2-dev \ - libsdl2-image-dev \ - libseccomp-dev \ - libselinux1-dev \ - libslirp-dev \ - libsnappy-dev \ - libsndio-dev \ - libspice-protocol-dev \ - libspice-server-dev \ - libssh-dev \ - libstd-rust-dev \ - libsystemd-dev \ - libtasn1-6-dev \ - libubsan1 \ - libudev-dev \ - liburing-dev \ - libusb-1.0-0-dev \ - libusbredirhost-dev \ - libvdeplug-dev \ - libvirglrenderer-dev \ - libvte-2.91-dev \ - libxen-dev \ - libzstd-dev \ - llvm \ - locales \ - make \ - mtools \ - multipath-tools \ - nettle-dev \ - 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-1.83 \ - sed \ - socat \ - sparse \ - swtpm \ - systemtap-sdt-dev \ - tar \ - tesseract-ocr \ - tesseract-ocr-eng \ - vulkan-tools \ - xorriso \ - zlib1g-dev \ - 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 && \ - 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/cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - -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" -ENV RUSTC=/usr/bin/rustc-1.83 -ENV RUSTDOC=/usr/bin/rustdoc-1.83 -ENV CARGO_HOME=/usr/local/cargo -ENV PATH=$CARGO_HOME/bin:$PATH -RUN DEBIAN_FRONTEND=noninteractive eatmydata \ - apt install -y --no-install-recommends cargo -RUN cargo install --locked bindgen-cli -# 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 diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh index 26abc69573..e0da0d2de1 100755 --- a/tests/lcitool/refresh +++ b/tests/lcitool/refresh @@ -231,10 +231,6 @@ try: generate_dockerfile("opensuse-leap", "opensuse-leap-16") generate_dockerfile("ubuntu2404", "ubuntu-2404", trailer="".join(ubuntu2404_rust_extras)) - generate_dockerfile("ubuntu2204", "ubuntu-2204", - trailer="".join(ubuntu2404_rust_extras), - # https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318 - enable_rust=False) # # Non-fatal Rust-enabled build