- * [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
@ 2025-09-24 12:03 ` marcandre.lureau
  2025-09-26 15:13   ` Alex Bennée
  2025-09-24 12:03 ` [PATCH v2 02/27] gitlab-ci: fix 'needs' property type must be array marcandre.lureau
                   ` (26 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Fail during configure time if the shm functions are missing, as required
by oslib-posix.c. Note, we could further check the presence of the
function in librt.
This is a minor cleanup/improvement.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 meson.build | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/meson.build b/meson.build
index 72da97829a..35d1f96180 100644
--- a/meson.build
+++ b/meson.build
@@ -1349,7 +1349,13 @@ if get_option('spice') \
 endif
 spice_headers = spice.partial_dependency(compile_args: true, includes: true)
 
-rt = cc.find_library('rt', required: false)
+rt = not_found
+if host_os != 'windows'
+  have_shm_open = cc.has_function('shm_open')
+  if not have_shm_open
+    rt = cc.find_library('rt', required: true)
+  endif
+endif
 
 libiscsi = not_found
 if not get_option('libiscsi').auto() or have_block
@@ -3811,14 +3817,10 @@ util_ss = util_ss.apply({})
 libqemuutil = static_library('qemuutil',
                              build_by_default: false,
                              sources: util_ss.sources() + stub_ss.sources() + genh,
-                             dependencies: [util_ss.dependencies(), libm, threads, glib, socket, malloc])
-qemuutil_deps = [event_loop_base]
-if host_os != 'windows'
-  qemuutil_deps += [rt]
-endif
+                             dependencies: [util_ss.dependencies(), libm, threads, glib, socket, malloc, rt])
 qemuutil = declare_dependency(link_with: libqemuutil,
                               sources: genh + version_res,
-                              dependencies: qemuutil_deps)
+                              dependencies: [event_loop_base])
 
 if have_system or have_user
   decodetree = generator(find_program('scripts/decodetree.py'),
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs
  2025-09-24 12:03 ` [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs marcandre.lureau
@ 2025-09-26 15:13   ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 15:13 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Fail during configure time if the shm functions are missing, as required
> by oslib-posix.c. Note, we could further check the presence of the
> function in librt.
>
> This is a minor cleanup/improvement.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 02/27] gitlab-ci: fix 'needs' property type must be array
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
  2025-09-24 12:03 ` [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs marcandre.lureau
@ 2025-09-24 12:03 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 03/27] scripts/archive-source: speed up downloading subprojects marcandre.lureau
                   ` (25 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The gitlab "Pipeline editor" has some warnings, and gitlab-ci-local
fails.
Read also from the docs
   https://docs.gitlab.com/ci/yaml/#needs
"Supported values:
    An array of jobs (maximum of 50 jobs).
    An empty array ([]), to set the job to start as soon as the pipeline
    is created."
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .gitlab-ci.d/buildtest.yml     | 56 +++++++++++++++++-----------------
 .gitlab-ci.d/crossbuilds.yml   | 46 ++++++++++++++--------------
 .gitlab-ci.d/static_checks.yml |  6 ++--
 3 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index f01978fb40..f8d7b6c3ac 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -36,7 +36,7 @@ build-system-ubuntu:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-ubuntu2204-container
+    - job: amd64-ubuntu2204-container
   variables:
     IMAGE: ubuntu2204
     CONFIGURE_ARGS: --enable-docs
@@ -66,7 +66,7 @@ build-system-debian:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-debian-container
+    - job: amd64-debian-container
   variables:
     IMAGE: debian
     CONFIGURE_ARGS: --with-coroutine=sigaltstack --enable-rust
@@ -109,7 +109,7 @@ build-system-fedora:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-fedora-container
+    - job: amd64-fedora-container
   variables:
     IMAGE: fedora
     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-crypto-afalg --enable-rust
@@ -122,7 +122,7 @@ build-system-fedora-rust-nightly:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-fedora-rust-nightly-container
+    - job: amd64-fedora-rust-nightly-container
   variables:
     IMAGE: fedora-rust-nightly
     CONFIGURE_ARGS: --disable-docs --enable-rust --enable-strict-rust-lints
@@ -167,7 +167,7 @@ build-system-centos:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-centos9-container
+    - job: amd64-centos9-container
   variables:
     IMAGE: centos9
     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server
@@ -189,7 +189,7 @@ build-previous-qemu:
       - build-previous/tests/qtest/migration-test
       - build-previous/scripts
   needs:
-    job: amd64-opensuse-leap-container
+    - job: amd64-opensuse-leap-container
   variables:
     IMAGE: opensuse-leap
     TARGETS: x86_64-softmmu aarch64-softmmu
@@ -274,7 +274,7 @@ build-system-opensuse:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-opensuse-leap-container
+    - job: amd64-opensuse-leap-container
   variables:
     IMAGE: opensuse-leap
     TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
@@ -308,7 +308,7 @@ build-system-flaky:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-debian-container
+    - job: amd64-debian-container
   variables:
     IMAGE: debian
     QEMU_JOB_OPTIONAL: 1
@@ -338,7 +338,7 @@ functional-system-flaky:
 build-tcg-disabled:
   extends: .native_build_job_template
   needs:
-    job: amd64-centos9-container
+    - job: amd64-centos9-container
   variables:
     IMAGE: centos9
   script:
@@ -364,7 +364,7 @@ build-tcg-disabled:
 build-user:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-user-cross-container
+    - job: amd64-debian-user-cross-container
   variables:
     IMAGE: debian-all-test-cross
     CONFIGURE_ARGS: --disable-tools --disable-system
@@ -374,7 +374,7 @@ build-user:
 build-user-static:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-user-cross-container
+    - job: amd64-debian-user-cross-container
   variables:
     IMAGE: debian-all-test-cross
     CONFIGURE_ARGS: --disable-tools --disable-system --static
@@ -385,7 +385,7 @@ build-user-static:
 build-legacy:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-legacy-cross-container
+    - job: amd64-debian-legacy-cross-container
   variables:
     IMAGE: debian-legacy-test-cross
     TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user
@@ -395,7 +395,7 @@ build-legacy:
 build-user-hexagon:
   extends: .native_build_job_template
   needs:
-    job: hexagon-cross-container
+    - job: hexagon-cross-container
   variables:
     IMAGE: debian-hexagon-cross
     TARGETS: hexagon-linux-user
@@ -408,7 +408,7 @@ build-user-hexagon:
 build-some-softmmu:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-user-cross-container
+    - job: amd64-debian-user-cross-container
   variables:
     IMAGE: debian-all-test-cross
     CONFIGURE_ARGS: --disable-tools --enable-debug
@@ -419,7 +419,7 @@ build-some-softmmu:
 build-loongarch64:
   extends: .native_build_job_template
   needs:
-    job: loongarch-debian-cross-container
+    - job: loongarch-debian-cross-container
   variables:
     IMAGE: debian-loongarch-cross
     CONFIGURE_ARGS: --disable-tools --enable-debug
@@ -430,7 +430,7 @@ build-loongarch64:
 build-tricore-softmmu:
   extends: .native_build_job_template
   needs:
-    job: tricore-debian-cross-container
+    - job: tricore-debian-cross-container
   variables:
     IMAGE: debian-tricore-cross
     CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug
@@ -440,7 +440,7 @@ build-tricore-softmmu:
 clang-system:
   extends: .native_build_job_template
   needs:
-    job: amd64-fedora-container
+    - job: amd64-fedora-container
   variables:
     IMAGE: fedora
     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan
@@ -451,7 +451,7 @@ clang-system:
 clang-user:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-user-cross-container
+    - job: amd64-debian-user-cross-container
   timeout: 70m
   variables:
     IMAGE: debian-all-test-cross
@@ -582,7 +582,7 @@ functional-cfi-x86_64:
 tsan-build:
   extends: .native_build_job_template
   needs:
-    job: amd64-ubuntu2204-container
+    - job: amd64-ubuntu2204-container
   variables:
     IMAGE: ubuntu2204
     CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++
@@ -596,7 +596,7 @@ tsan-build:
 gcov:
   extends: .native_build_job_template
   needs:
-    job: amd64-ubuntu2204-container
+    - job: amd64-ubuntu2204-container
   timeout: 80m
   variables:
     IMAGE: ubuntu2204
@@ -623,7 +623,7 @@ gcov:
 build-oss-fuzz:
   extends: .native_build_job_template
   needs:
-    job: amd64-fedora-container
+    - job: amd64-fedora-container
   variables:
     IMAGE: fedora
   script:
@@ -645,7 +645,7 @@ build-oss-fuzz:
 build-tci:
   extends: .native_build_job_template
   needs:
-    job: amd64-debian-user-cross-container
+    - job: amd64-debian-user-cross-container
   variables:
     IMAGE: debian-all-test-cross
   script:
@@ -670,7 +670,7 @@ build-tci:
 build-without-defaults:
   extends: .native_build_job_template
   needs:
-    job: amd64-centos9-container
+    - job: amd64-centos9-container
   variables:
     IMAGE: centos9
     CONFIGURE_ARGS:
@@ -688,7 +688,7 @@ build-libvhost-user:
   stage: build
   image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG
   needs:
-    job: amd64-fedora-container
+    - job: amd64-fedora-container
   script:
     - mkdir subprojects/libvhost-user/build
     - cd subprojects/libvhost-user/build
@@ -702,9 +702,9 @@ build-tools-and-docs-debian:
     - .native_build_job_template
     - .native_build_artifact_template
   needs:
-    job: amd64-debian-container
-    # when running on 'master' we use pre-existing container
-    optional: true
+    - job: amd64-debian-container
+      # when running on 'master' we use pre-existing container
+      optional: true
   variables:
     IMAGE: debian
     MAKE_CHECK_ARGS: check-unit ctags TAGS cscope
@@ -791,7 +791,7 @@ build-wasm:
   extends: .wasm_build_job_template
   timeout: 2h
   needs:
-    job: wasm-emsdk-cross-container
+    - job: wasm-emsdk-cross-container
   variables:
     IMAGE: emsdk-wasm32-cross
     CONFIGURE_ARGS: --static --disable-tools --enable-debug --enable-tcg-interpreter
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 3f76c901ba..8ff0c27f74 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -4,28 +4,28 @@ include:
 cross-armhf-user:
   extends: .cross_user_build_job
   needs:
-    job: armhf-debian-cross-container
+    - job: armhf-debian-cross-container
   variables:
     IMAGE: debian-armhf-cross
 
 cross-arm64-system:
   extends: .cross_system_build_job
   needs:
-    job: arm64-debian-cross-container
+    - job: arm64-debian-cross-container
   variables:
     IMAGE: debian-arm64-cross
 
 cross-arm64-user:
   extends: .cross_user_build_job
   needs:
-    job: arm64-debian-cross-container
+    - job: arm64-debian-cross-container
   variables:
     IMAGE: debian-arm64-cross
 
 cross-arm64-kvm-only:
   extends: .cross_accel_build_job
   needs:
-    job: arm64-debian-cross-container
+    - job: arm64-debian-cross-container
   variables:
     IMAGE: debian-arm64-cross
     EXTRA_CONFIGURE_OPTS: --disable-tcg --without-default-features
@@ -35,7 +35,7 @@ cross-i686-system:
     - .cross_system_build_job
     - .cross_test_artifacts
   needs:
-    job: i686-debian-cross-container
+    - job: i686-debian-cross-container
   variables:
     IMAGE: debian-i686-cross
     EXTRA_CONFIGURE_OPTS: --disable-kvm
@@ -46,7 +46,7 @@ cross-i686-user:
     - .cross_user_build_job
     - .cross_test_artifacts
   needs:
-    job: i686-debian-cross-container
+    - job: i686-debian-cross-container
   variables:
     IMAGE: debian-i686-cross
     MAKE_CHECK_ARGS: check
@@ -57,7 +57,7 @@ cross-i686-tci:
     - .cross_test_artifacts
   timeout: 60m
   needs:
-    job: i686-debian-cross-container
+    - job: i686-debian-cross-container
   variables:
     IMAGE: debian-i686-cross
     ACCEL: tcg-interpreter
@@ -71,49 +71,49 @@ cross-i686-tci:
 cross-mipsel-system:
   extends: .cross_system_build_job
   needs:
-    job: mipsel-debian-cross-container
+    - job: mipsel-debian-cross-container
   variables:
     IMAGE: debian-mipsel-cross
 
 cross-mipsel-user:
   extends: .cross_user_build_job
   needs:
-    job: mipsel-debian-cross-container
+    - job: mipsel-debian-cross-container
   variables:
     IMAGE: debian-mipsel-cross
 
 cross-mips64el-system:
   extends: .cross_system_build_job
   needs:
-    job: mips64el-debian-cross-container
+    - job: mips64el-debian-cross-container
   variables:
     IMAGE: debian-mips64el-cross
 
 cross-mips64el-user:
   extends: .cross_user_build_job
   needs:
-    job: mips64el-debian-cross-container
+    - job: mips64el-debian-cross-container
   variables:
     IMAGE: debian-mips64el-cross
 
 cross-ppc64el-system:
   extends: .cross_system_build_job
   needs:
-    job: ppc64el-debian-cross-container
+    - job: ppc64el-debian-cross-container
   variables:
     IMAGE: debian-ppc64el-cross
 
 cross-ppc64el-user:
   extends: .cross_user_build_job
   needs:
-    job: ppc64el-debian-cross-container
+    - job: ppc64el-debian-cross-container
   variables:
     IMAGE: debian-ppc64el-cross
 
 cross-ppc64el-kvm-only:
   extends: .cross_accel_build_job
   needs:
-    job: ppc64el-debian-cross-container
+    - job: ppc64el-debian-cross-container
   variables:
     IMAGE: debian-ppc64el-cross
     EXTRA_CONFIGURE_OPTS: --disable-tcg --without-default-devices
@@ -121,35 +121,35 @@ cross-ppc64el-kvm-only:
 cross-riscv64-system:
   extends: .cross_system_build_job
   needs:
-    job: riscv64-debian-cross-container
+    - job: riscv64-debian-cross-container
   variables:
     IMAGE: debian-riscv64-cross
 
 cross-riscv64-user:
   extends: .cross_user_build_job
   needs:
-    job: riscv64-debian-cross-container
+    - job: riscv64-debian-cross-container
   variables:
     IMAGE: debian-riscv64-cross
 
 cross-s390x-system:
   extends: .cross_system_build_job
   needs:
-    job: s390x-debian-cross-container
+    - job: s390x-debian-cross-container
   variables:
     IMAGE: debian-s390x-cross
 
 cross-s390x-user:
   extends: .cross_user_build_job
   needs:
-    job: s390x-debian-cross-container
+    - job: s390x-debian-cross-container
   variables:
     IMAGE: debian-s390x-cross
 
 cross-s390x-kvm-only:
   extends: .cross_accel_build_job
   needs:
-    job: s390x-debian-cross-container
+    - job: s390x-debian-cross-container
   variables:
     IMAGE: debian-s390x-cross
     EXTRA_CONFIGURE_OPTS: --disable-tcg --enable-trace-backends=ftrace
@@ -157,7 +157,7 @@ cross-s390x-kvm-only:
 cross-mips64el-kvm-only:
   extends: .cross_accel_build_job
   needs:
-    job: mips64el-debian-cross-container
+    - job: mips64el-debian-cross-container
   variables:
     IMAGE: debian-mips64el-cross
     EXTRA_CONFIGURE_OPTS: --disable-tcg --target-list=mips64el-softmmu
@@ -165,7 +165,7 @@ cross-mips64el-kvm-only:
 cross-win64-system:
   extends: .cross_system_build_job
   needs:
-    job: win64-fedora-cross-container
+    - job: win64-fedora-cross-container
   variables:
     IMAGE: fedora-win64-cross
     EXTRA_CONFIGURE_OPTS: --enable-fdt=internal --disable-plugins
@@ -181,7 +181,7 @@ cross-win64-system:
 cross-amd64-xen-only:
   extends: .cross_accel_build_job
   needs:
-    job: amd64-debian-cross-container
+    - job: amd64-debian-cross-container
   variables:
     IMAGE: debian-amd64-cross
     ACCEL: xen
@@ -190,7 +190,7 @@ cross-amd64-xen-only:
 cross-arm64-xen-only:
   extends: .cross_accel_build_job
   needs:
-    job: arm64-debian-cross-container
+    - job: arm64-debian-cross-container
   variables:
     IMAGE: debian-arm64-cross
     ACCEL: xen
diff --git a/.gitlab-ci.d/static_checks.yml b/.gitlab-ci.d/static_checks.yml
index c3ed6de453..61fe2fa39a 100644
--- a/.gitlab-ci.d/static_checks.yml
+++ b/.gitlab-ci.d/static_checks.yml
@@ -32,7 +32,7 @@ check-python-minreqs:
   variables:
     GIT_DEPTH: 1
   needs:
-    job: python-container
+    - job: python-container
 
 check-python-tox:
   extends: .base_job_template
@@ -45,7 +45,7 @@ check-python-tox:
     QEMU_TOX_EXTRA_ARGS: --skip-missing-interpreters=false
     QEMU_JOB_OPTIONAL: 1
   needs:
-    job: python-container
+    - job: python-container
 
 check-rust-tools-nightly:
   extends: .base_job_template
@@ -76,7 +76,7 @@ check-build-units:
   stage: build
   image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG
   needs:
-    job: amd64-debian-container
+    - job: amd64-debian-container
   before_script:
     - source scripts/ci/gitlab-ci-section
     - section_start setup "Install Tools"
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 03/27] scripts/archive-source: speed up downloading subprojects
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
  2025-09-24 12:03 ` [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs marcandre.lureau
  2025-09-24 12:03 ` [PATCH v2 02/27] gitlab-ci: fix 'needs' property type must be array marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-26 15:22   ` Alex Bennée
  2025-09-24 12:04 ` [PATCH v2 04/27] scripts/archive-source: silence subprojects downloads marcandre.lureau
                   ` (24 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Running meson on each subproject is quite slow.
According to Paolo, meson will run download tasks in parallel.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 scripts/archive-source.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index 035828c532..85cd0a63a0 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -77,9 +77,10 @@ function subproject_dir() {
 git archive --format tar "$(tree_ish)" > "$tar_file"
 test $? -ne 0 && error "failed to archive qemu"
 
+meson subprojects download $subprojects
+test $? -ne 0 && error "failed to download subprojects $subprojects"
+
 for sp in $subprojects; do
-    meson subprojects download $sp
-    test $? -ne 0 && error "failed to download subproject $sp"
     tar --append --file "$tar_file" --exclude=.git subprojects/"$(subproject_dir $sp)"
     test $? -ne 0 && error "failed to append subproject $sp to $tar_file"
 done
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 03/27] scripts/archive-source: speed up downloading subprojects
  2025-09-24 12:04 ` [PATCH v2 03/27] scripts/archive-source: speed up downloading subprojects marcandre.lureau
@ 2025-09-26 15:22   ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 15:22 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Running meson on each subproject is quite slow.
>
> According to Paolo, meson will run download tasks in parallel.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 04/27] scripts/archive-source: silence subprojects downloads
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (2 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 03/27] scripts/archive-source: speed up downloading subprojects marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-26 15:41   ` Alex Bennée
  2025-09-24 12:04 ` [PATCH v2 05/27] scripts/archive-source: use a bash array marcandre.lureau
                   ` (23 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
It's too verbose.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 scripts/archive-source.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index 85cd0a63a0..68eb9672de 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -77,7 +77,7 @@ function subproject_dir() {
 git archive --format tar "$(tree_ish)" > "$tar_file"
 test $? -ne 0 && error "failed to archive qemu"
 
-meson subprojects download $subprojects
+meson subprojects download $subprojects >/dev/null
 test $? -ne 0 && error "failed to download subprojects $subprojects"
 
 for sp in $subprojects; do
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 04/27] scripts/archive-source: silence subprojects downloads
  2025-09-24 12:04 ` [PATCH v2 04/27] scripts/archive-source: silence subprojects downloads marcandre.lureau
@ 2025-09-26 15:41   ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 15:41 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> It's too verbose.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 05/27] scripts/archive-source: use a bash array
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (3 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 04/27] scripts/archive-source: silence subprojects downloads marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-26 15:44   ` Alex Bennée
  2025-09-24 12:04 ` [PATCH v2 06/27] configure: fix rust meson configuration marcandre.lureau
                   ` (22 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 scripts/archive-source.sh | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index 68eb9672de..f55130ec34 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -26,12 +26,26 @@ sub_file="${sub_tdir}/submodule.tar"
 # independent of what the developer currently has initialized
 # in their checkout, because the build environment is completely
 # different to the host OS.
-subprojects="keycodemapdb libvfio-user berkeley-softfloat-3
-  berkeley-testfloat-3 anyhow-1-rs arbitrary-int-1-rs bilge-0.2-rs
-  bilge-impl-0.2-rs either-1-rs foreign-0.3-rs itertools-0.11-rs
-  libc-0.2-rs proc-macro2-1-rs
-  proc-macro-error-1-rs proc-macro-error-attr-1-rs quote-1-rs
-  syn-2-rs unicode-ident-1-rs"
+subprojects=(
+  anyhow-1-rs
+  arbitrary-int-1-rs
+  berkeley-softfloat-3
+  berkeley-testfloat-3
+  bilge-0.2-rs
+  bilge-impl-0.2-rs
+  either-1-rs
+  foreign-0.3-rs
+  itertools-0.11-rs
+  keycodemapdb
+  libc-0.2-rs
+  libvfio-user
+  proc-macro-error-1-rs
+  proc-macro-error-attr-1-rs
+  proc-macro2-1-rs
+  quote-1-rs
+  syn-2-rs
+  unicode-ident-1-rs
+)
 sub_deinit=""
 
 function cleanup() {
@@ -77,10 +91,10 @@ function subproject_dir() {
 git archive --format tar "$(tree_ish)" > "$tar_file"
 test $? -ne 0 && error "failed to archive qemu"
 
-meson subprojects download $subprojects >/dev/null
+meson subprojects download ${subprojects[@]} >/dev/null
 test $? -ne 0 && error "failed to download subprojects $subprojects"
 
-for sp in $subprojects; do
+for sp in "${subprojects[@]}"; do
     tar --append --file "$tar_file" --exclude=.git subprojects/"$(subproject_dir $sp)"
     test $? -ne 0 && error "failed to append subproject $sp to $tar_file"
 done
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 05/27] scripts/archive-source: use a bash array
  2025-09-24 12:04 ` [PATCH v2 05/27] scripts/archive-source: use a bash array marcandre.lureau
@ 2025-09-26 15:44   ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 15:44 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 06/27] configure: fix rust meson configuration
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (4 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 05/27] scripts/archive-source: use a bash array marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 07/27] configure: set the bindgen cross target marcandre.lureau
                   ` (21 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
It was incorrectly set on the [host_machine] and caused error:
File "/tmp/qemu-test/build/pyvenv/lib/python3.11/site-packages/mesonbuild/envconfig.py", line 281, in from_literal
    assert all(isinstance(v, str) for v in raw.values()), 'for mypy'
AssertionError: for mypy
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index 0f7eb95586..66613f3f4c 100755
--- a/configure
+++ b/configure
@@ -1958,7 +1958,7 @@ if test "$skip_meson" = no; then
     echo "[binaries]" >> $native
     echo "c = [$(meson_quote $host_cc)]" >> $native
     if test "$rust" != disabled; then
-      echo "rust = [$(meson_quote $rustc)]" >> $cross
+      echo "rust = [$(meson_quote $rustc)]" >> $native
     fi
     mv $native config-meson.native
     meson_option_add --native-file
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 07/27] configure: set the bindgen cross target
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (5 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 06/27] configure: fix rust meson configuration marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-30 14:58   ` Paolo Bonzini
  2025-09-30 14:59   ` Paolo Bonzini
  2025-09-24 12:04 ` [PATCH v2 08/27] tests/docker/common: print errors to stderr marcandre.lureau
                   ` (20 subsequent siblings)
  27 siblings, 2 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Implement a bash version of rust-bindgen rust_to_clang_target() to
convert from rust target to clang target.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 configure                            |  7 ++++
 scripts/rust-to-clang-target-test.sh | 43 +++++++++++++++++++
 scripts/rust-to-clang-target.sh      | 62 ++++++++++++++++++++++++++++
 3 files changed, 112 insertions(+)
 create mode 100755 scripts/rust-to-clang-target-test.sh
 create mode 100644 scripts/rust-to-clang-target.sh
diff --git a/configure b/configure
index 66613f3f4c..bf964947b8 100755
--- a/configure
+++ b/configure
@@ -1878,6 +1878,13 @@ if test "$skip_meson" = no; then
       eval "c=\$devices_${a}"
       echo "${a}-softmmu = '$c'" >> $cross
   done
+  if test "$rust" != disabled; then
+      if test "$cross_compile" = "yes"; then
+          . "$source_path/scripts/rust-to-clang-target.sh"
+          clang_target=$(rust_to_clang_target "$rust_target_triple")
+          echo "bindgen_clang_arguments = [$(meson_quote --target="$clang_target")]" >> $cross
+      fi
+  fi
 
   echo "[built-in options]" >> $cross
   echo "c_args = [$(meson_quote $CFLAGS $EXTRA_CFLAGS)]" >> $cross
diff --git a/scripts/rust-to-clang-target-test.sh b/scripts/rust-to-clang-target-test.sh
new file mode 100755
index 0000000000..ff6f8fcdc5
--- /dev/null
+++ b/scripts/rust-to-clang-target-test.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env sh
+#
+# Copyright (C) 2025 Red Hat, Inc.
+#
+# Based on rust_to_clang_target() tests from rust-bindgen.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+scripts_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
+. "$scripts_dir/rust-to-clang-target.sh"
+
+test_case() {
+    input="$1"
+    expected="$2"
+    result=$(rust_to_clang_target "$input")
+
+    if [ "$result" = "$expected" ]; then
+        echo " OK: '$input' -> '$result'"
+    else
+        echo " FAILED: '$input'"
+        echo "  Expected: '$expected'"
+        echo "  Got:      '$result'"
+        exit 1
+    fi
+}
+
+echo "Running tests..."
+
+test_case "aarch64-apple-ios" "arm64-apple-ios"
+test_case "riscv64gc-unknown-linux-gnu" "riscv64-unknown-linux-gnu"
+test_case "riscv64imac-unknown-none-elf" "riscv64-unknown-none-elf"
+test_case "riscv32imc-unknown-none-elf" "riscv32-unknown-none-elf"
+test_case "riscv32imac-unknown-none-elf" "riscv32-unknown-none-elf"
+test_case "riscv32imafc-unknown-none-elf" "riscv32-unknown-none-elf"
+test_case "riscv32i-unknown-none-elf" "riscv32-unknown-none-elf"
+test_case "riscv32imc-esp-espidf" "riscv32-esp-elf"
+test_case "xtensa-esp32-espidf" "xtensa-esp32-elf"
+test_case "aarch64-apple-ios-sim" "arm64-apple-ios-simulator"
+test_case "aarch64-apple-tvos-sim" "arm64-apple-tvos-simulator"
+test_case "aarch64-apple-watchos-sim" "arm64-apple-watchos-simulator"
+
+echo ""
+echo "All tests passed!"
diff --git a/scripts/rust-to-clang-target.sh b/scripts/rust-to-clang-target.sh
new file mode 100644
index 0000000000..5451807888
--- /dev/null
+++ b/scripts/rust-to-clang-target.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env sh
+#
+# Copyright (C) 2025 Red Hat, Inc.
+#
+# Based on rust_to_clang_target() from rust-bindgen.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+rust_to_clang_target() {
+    rust_target="$1"
+
+    # Split the string by hyphens
+    triple_parts=""
+    old_IFS="$IFS"
+    IFS='-'
+    for part in $rust_target; do
+        triple_parts="$triple_parts $part"
+    done
+    IFS="$old_IFS"
+    set -- $triple_parts
+
+    # RISC-V
+    case "$1" in
+        riscv32*)
+            set -- "riscv32" "${2}" "${3}" "${4}"
+            ;;
+        riscv64*)
+            set -- "riscv64" "${2}" "${3}" "${4}"
+            ;;
+    esac
+
+    # Apple
+    if [ "$2" = "apple" ]; then
+        if [ "$1" = "aarch64" ]; then
+            set -- "arm64" "${2}" "${3}" "${4}"
+        fi
+        if [ "$4" = "sim" ]; then
+            set -- "${1}" "${2}" "${3}" "simulator"
+        fi
+    fi
+
+    # ESP-IDF
+    if [ "$3" = "espidf" ]; then
+        set -- "${1}" "${2}" "elf" "${4}"
+    fi
+
+    # Reassemble the string
+    new_triple=""
+    first=1
+    for part in "$@"; do
+        if [ -n "$part" ]; then
+            if [ "$first" -eq 1 ]; then
+                new_triple="$part"
+                first=0
+            else
+                new_triple="$new_triple-$part"
+            fi
+        fi
+    done
+
+    echo "$new_triple"
+}
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 07/27] configure: set the bindgen cross target
  2025-09-24 12:04 ` [PATCH v2 07/27] configure: set the bindgen cross target marcandre.lureau
@ 2025-09-30 14:58   ` Paolo Bonzini
  2025-09-30 14:59   ` Paolo Bonzini
  1 sibling, 0 replies; 52+ messages in thread
From: Paolo Bonzini @ 2025-09-30 14:58 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On 9/24/25 14:04, marcandre.lureau@redhat.com wrote:
> diff --git a/scripts/rust-to-clang-target.sh b/scripts/rust-to-clang-target.sh
> new file mode 100644
> index 0000000000..5451807888
> --- /dev/null
> +++ b/scripts/rust-to-clang-target.sh
> @@ -0,0 +1,62 @@
> +#!/usr/bin/env sh
No shebang is needed, since the file is sourced into the configure script.
Otherwise,
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo
> +#
> +# Copyright (C) 2025 Red Hat, Inc.
> +#
> +# Based on rust_to_clang_target() from rust-bindgen.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +rust_to_clang_target() {
> +    rust_target="$1"
> +
> +    # Split the string by hyphens
> +    triple_parts=""
> +    old_IFS="$IFS"
> +    IFS='-'
> +    for part in $rust_target; do
> +        triple_parts="$triple_parts $part"
> +    done
> +    IFS="$old_IFS"
> +    set -- $triple_parts
> +
> +    # RISC-V
> +    case "$1" in
> +        riscv32*)
> +            set -- "riscv32" "${2}" "${3}" "${4}"
> +            ;;
> +        riscv64*)
> +            set -- "riscv64" "${2}" "${3}" "${4}"
> +            ;;
> +    esac
> +
> +    # Apple
> +    if [ "$2" = "apple" ]; then
> +        if [ "$1" = "aarch64" ]; then
> +            set -- "arm64" "${2}" "${3}" "${4}"
> +        fi
> +        if [ "$4" = "sim" ]; then
> +            set -- "${1}" "${2}" "${3}" "simulator"
> +        fi
> +    fi
> +
> +    # ESP-IDF
> +    if [ "$3" = "espidf" ]; then
> +        set -- "${1}" "${2}" "elf" "${4}"
> +    fi
> +
> +    # Reassemble the string
> +    new_triple=""
> +    first=1
> +    for part in "$@"; do
> +        if [ -n "$part" ]; then
> +            if [ "$first" -eq 1 ]; then
> +                new_triple="$part"
> +                first=0
> +            else
> +                new_triple="$new_triple-$part"
> +            fi
> +        fi
> +    done
> +
> +    echo "$new_triple"
> +}
^ permalink raw reply	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 07/27] configure: set the bindgen cross target
  2025-09-24 12:04 ` [PATCH v2 07/27] configure: set the bindgen cross target marcandre.lureau
  2025-09-30 14:58   ` Paolo Bonzini
@ 2025-09-30 14:59   ` Paolo Bonzini
  1 sibling, 0 replies; 52+ messages in thread
From: Paolo Bonzini @ 2025-09-30 14:59 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On 9/24/25 14:04, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Implement a bash version of rust-bindgen rust_to_clang_target() to
> convert from rust target to clang target.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   configure                            |  7 ++++
>   scripts/rust-to-clang-target-test.sh | 43 +++++++++++++++++++
>   scripts/rust-to-clang-target.sh      | 62 ++++++++++++++++++++++++++++
>   3 files changed, 112 insertions(+)
>   create mode 100755 scripts/rust-to-clang-target-test.sh
>   create mode 100644 scripts/rust-to-clang-target.sh
> 
> diff --git a/configure b/configure
> index 66613f3f4c..bf964947b8 100755
> --- a/configure
> +++ b/configure
> @@ -1878,6 +1878,13 @@ if test "$skip_meson" = no; then
>         eval "c=\$devices_${a}"
>         echo "${a}-softmmu = '$c'" >> $cross
>     done
> +  if test "$rust" != disabled; then
> +      if test "$cross_compile" = "yes"; then
> +          . "$source_path/scripts/rust-to-clang-target.sh"
> +          clang_target=$(rust_to_clang_target "$rust_target_triple")
> +          echo "bindgen_clang_arguments = [$(meson_quote --target="$clang_target")]" >> $cross
> +      fi
> +  fi
>   
>     echo "[built-in options]" >> $cross
>     echo "c_args = [$(meson_quote $CFLAGS $EXTRA_CFLAGS)]" >> $cross
> diff --git a/scripts/rust-to-clang-target-test.sh b/scripts/rust-to-clang-target-test.sh
> new file mode 100755
> index 0000000000..ff6f8fcdc5
> --- /dev/null
> +++ b/scripts/rust-to-clang-target-test.sh
> @@ -0,0 +1,43 @@
> +#!/usr/bin/env sh
> +#
> +# Copyright (C) 2025 Red Hat, Inc.
> +#
> +# Based on rust_to_clang_target() tests from rust-bindgen.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +scripts_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
> +. "$scripts_dir/rust-to-clang-target.sh"
> +
> +test_case() {
> +    input="$1"
> +    expected="$2"
> +    result=$(rust_to_clang_target "$input")
> +
> +    if [ "$result" = "$expected" ]; then
> +        echo " OK: '$input' -> '$result'"
> +    else
> +        echo " FAILED: '$input'"
> +        echo "  Expected: '$expected'"
> +        echo "  Got:      '$result'"
> +        exit 1
> +    fi
> +}
> +
> +echo "Running tests..."
> +
> +test_case "aarch64-apple-ios" "arm64-apple-ios"
> +test_case "riscv64gc-unknown-linux-gnu" "riscv64-unknown-linux-gnu"
> +test_case "riscv64imac-unknown-none-elf" "riscv64-unknown-none-elf"
> +test_case "riscv32imc-unknown-none-elf" "riscv32-unknown-none-elf"
> +test_case "riscv32imac-unknown-none-elf" "riscv32-unknown-none-elf"
> +test_case "riscv32imafc-unknown-none-elf" "riscv32-unknown-none-elf"
> +test_case "riscv32i-unknown-none-elf" "riscv32-unknown-none-elf"
> +test_case "riscv32imc-esp-espidf" "riscv32-esp-elf"
> +test_case "xtensa-esp32-espidf" "xtensa-esp32-elf"
> +test_case "aarch64-apple-ios-sim" "arm64-apple-ios-simulator"
> +test_case "aarch64-apple-tvos-sim" "arm64-apple-tvos-simulator"
> +test_case "aarch64-apple-watchos-sim" "arm64-apple-watchos-simulator"
> +
> +echo ""
> +echo "All tests passed!"
> diff --git a/scripts/rust-to-clang-target.sh b/scripts/rust-to-clang-target.sh
> new file mode 100644
> index 0000000000..5451807888
> --- /dev/null
> +++ b/scripts/rust-to-clang-target.sh
> @@ -0,0 +1,62 @@
> +#!/usr/bin/env sh
> +#
> +# Copyright (C) 2025 Red Hat, Inc.
> +#
> +# Based on rust_to_clang_target() from rust-bindgen.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +rust_to_clang_target() {
> +    rust_target="$1"
> +
> +    # Split the string by hyphens
> +    triple_parts=""
> +    old_IFS="$IFS"
> +    IFS='-'
> +    for part in $rust_target; do
> +        triple_parts="$triple_parts $part"
> +    done
> +    IFS="$old_IFS"
> +    set -- $triple_parts
> +
> +    # RISC-V
> +    case "$1" in
> +        riscv32*)
> +            set -- "riscv32" "${2}" "${3}" "${4}"
> +            ;;
> +        riscv64*)
> +            set -- "riscv64" "${2}" "${3}" "${4}"
> +            ;;
> +    esac
> +
> +    # Apple
> +    if [ "$2" = "apple" ]; then
> +        if [ "$1" = "aarch64" ]; then
> +            set -- "arm64" "${2}" "${3}" "${4}"
> +        fi
> +        if [ "$4" = "sim" ]; then
> +            set -- "${1}" "${2}" "${3}" "simulator"
> +        fi
> +    fi
> +
> +    # ESP-IDF
> +    if [ "$3" = "espidf" ]; then
> +        set -- "${1}" "${2}" "elf" "${4}"
> +    fi
> +
> +    # Reassemble the string
> +    new_triple=""
> +    first=1
> +    for part in "$@"; do
> +        if [ -n "$part" ]; then
> +            if [ "$first" -eq 1 ]; then
> +                new_triple="$part"
> +                first=0
> +            else
> +                new_triple="$new_triple-$part"
> +            fi
> +        fi
> +    done
> +
> +    echo "$new_triple"
> +}
^ permalink raw reply	[flat|nested] 52+ messages in thread
 
- * [PATCH v2 08/27] tests/docker/common: print errors to stderr
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (6 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 07/27] configure: set the bindgen cross target marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 09/27] tests/docker: use fully qualified image name for emsdk marcandre.lureau
                   ` (19 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/docker/common.rc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index a611e6adf9..2ed2365a61 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -50,7 +50,7 @@ configure_qemu()
     echo "Configure options:"
     echo $config_opts
     $QEMU_SRC/configure $config_opts || \
-        { cat config.log && test_fail "Failed to run 'configure'"; }
+        { cat config.log >&2 && test_fail "Failed to run 'configure'"; }
 }
 
 build_qemu()
@@ -73,7 +73,7 @@ check_qemu()
 
 test_fail()
 {
-    echo "$@"
+    echo "$@" >&2
     exit 1
 }
 
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 09/27] tests/docker: use fully qualified image name for emsdk
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (7 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 08/27] tests/docker/common: print errors to stderr marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 10/27] tests/docker/common: print meson log on configure failure marcandre.lureau
                   ` (18 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Without it, at least it fails with podman on fc42:
[1/6] STEP 1/15: FROM emscripten/emsdk:3.1.50 AS build-base
Error: creating build container: short-name resolution enforced but cannot prompt without a TTY
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
---
 tests/docker/dockerfiles/emsdk-wasm32-cross.docker | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
index 60a7d02f56..6b1642a207 100644
--- a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
+++ b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
@@ -8,7 +8,7 @@ ARG PIXMAN_VERSION=0.44.2
 ARG FFI_VERSION=v3.4.7
 ARG MESON_VERSION=1.5.0
 
-FROM emscripten/emsdk:$EMSDK_VERSION_QEMU AS build-base
+FROM docker.io/emscripten/emsdk:$EMSDK_VERSION_QEMU AS build-base
 ARG MESON_VERSION
 ENV TARGET=/builddeps/target
 ENV CPATH="$TARGET/include"
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 10/27] tests/docker/common: print meson log on configure failure
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (8 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 09/27] tests/docker: use fully qualified image name for emsdk marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 11/27] build-sys: cfi_debug and safe_stack are not compatible marcandre.lureau
                   ` (17 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/docker/common.rc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 2ed2365a61..d202c0c666 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -50,7 +50,7 @@ configure_qemu()
     echo "Configure options:"
     echo $config_opts
     $QEMU_SRC/configure $config_opts || \
-        { cat config.log >&2 && test_fail "Failed to run 'configure'"; }
+        { cat config.log >&2 ; cat meson-logs/meson-log.txt >&2 ; test_fail "Failed to run 'configure'"; }
 }
 
 build_qemu()
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 11/27] build-sys: cfi_debug and safe_stack are not compatible
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (9 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 10/27] tests/docker/common: print meson log on configure failure marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 13:35   ` Daniel P. Berrangé
  2025-09-24 12:04 ` [PATCH v2 12/27] lcitool: update, switch to f41 marcandre.lureau
                   ` (16 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
It fails to link on fedora >= 41:
/usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memcpy':
(.text.__sanitizer_internal_memcpy+0x0): multiple definition of `__sanitizer_internal_memcpy'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memcpy+0x0): first defined here
/usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memmove':
(.text.__sanitizer_internal_memmove+0x0): multiple definition of `__sanitizer_internal_memmove'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memmove+0x0): first defined here
/usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memset':
(.text.__sanitizer_internal_memset+0x0): multiple definition of `__sanitizer_internal_memset'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memset+0x0): first defined here
cfi_debug seems to pull ubsan which has conflicting symbols with safe_stack.
See also: https://bugzilla.redhat.com/show_bug.cgi?id=2397265
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 meson.build                | 3 +++
 .gitlab-ci.d/buildtest.yml | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 35d1f96180..9663725529 100644
--- a/meson.build
+++ b/meson.build
@@ -681,6 +681,9 @@ if get_option('cfi')
     error('-fsanitize-cfi-icall-generalize-pointers is not supported by the compiler')
   endif
   if get_option('cfi_debug')
+    if get_option('safe_stack')
+      error('cfi_debug is not compatible with safe_stack')
+    endif
     if cc.compiles('int main () { return 0; }',
                    name: '-fno-sanitize-trap=cfi-icall',
                    args: ['-flto', '-fsanitize=cfi-icall',
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index f8d7b6c3ac..c3467200f4 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -479,7 +479,7 @@ build-cfi-aarch64:
     LD_JOBS: 1
     AR: llvm-ar
     IMAGE: fedora
-    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
+    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi
       --enable-safe-stack --disable-slirp
     TARGETS: aarch64-softmmu
     MAKE_CHECK_ARGS: check-build
@@ -517,7 +517,7 @@ build-cfi-ppc64-s390x:
     LD_JOBS: 1
     AR: llvm-ar
     IMAGE: fedora
-    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
+    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi
       --enable-safe-stack --disable-slirp
     TARGETS: ppc64-softmmu s390x-softmmu
     MAKE_CHECK_ARGS: check-build
@@ -555,7 +555,7 @@ build-cfi-x86_64:
     LD_JOBS: 1
     AR: llvm-ar
     IMAGE: fedora
-    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
+    CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi
       --enable-safe-stack --disable-slirp
     TARGETS: x86_64-softmmu
     MAKE_CHECK_ARGS: check-build
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 11/27] build-sys: cfi_debug and safe_stack are not compatible
  2025-09-24 12:04 ` [PATCH v2 11/27] build-sys: cfi_debug and safe_stack are not compatible marcandre.lureau
@ 2025-09-24 13:35   ` Daniel P. Berrangé
  0 siblings, 0 replies; 52+ messages in thread
From: Daniel P. Berrangé @ 2025-09-24 13:35 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On Wed, Sep 24, 2025 at 04:04:08PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> It fails to link on fedora >= 41:
> /usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memcpy':
> (.text.__sanitizer_internal_memcpy+0x0): multiple definition of `__sanitizer_internal_memcpy'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memcpy+0x0): first defined here
> /usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memmove':
> (.text.__sanitizer_internal_memmove+0x0): multiple definition of `__sanitizer_internal_memmove'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memmove+0x0): first defined here
> /usr/bin/ld: /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.safestack.a(safestack.cpp.o): in function `__sanitizer_internal_memset':
> (.text.__sanitizer_internal_memset+0x0): multiple definition of `__sanitizer_internal_memset'; /usr/bin/../lib/clang/20/lib/x86_64-redhat-linux-gnu/libclang_rt.ubsan_standalone.a(sanitizer_libc.cpp.o):(.text.__sanitizer_internal_memset+0x0): first defined here
> 
> cfi_debug seems to pull ubsan which has conflicting symbols with safe_stack.
> 
> See also: https://bugzilla.redhat.com/show_bug.cgi?id=2397265
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  meson.build                | 3 +++
>  .gitlab-ci.d/buildtest.yml | 6 +++---
>  2 files changed, 6 insertions(+), 3 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 12/27] lcitool: update, switch to f41
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (10 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 11/27] build-sys: cfi_debug and safe_stack are not compatible marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 13:44   ` Daniel P. Berrangé
  2025-09-24 12:04 ` [PATCH v2 13/27] lcitool/qemu: include libclang-rt for TSAN marcandre.lureau
                   ` (15 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Newer lcitool version has various fixes helping QEMU CI and this series.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml   |  3 ++-
 scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml     |  3 ++-
 tests/docker/dockerfiles/alpine.docker             |  2 +-
 tests/docker/dockerfiles/debian-amd64-cross.docker |  5 ++++-
 tests/docker/dockerfiles/debian-arm64-cross.docker |  5 ++++-
 tests/docker/dockerfiles/debian-armhf-cross.docker |  5 ++++-
 tests/docker/dockerfiles/debian-i686-cross.docker  |  5 ++++-
 .../dockerfiles/debian-mips64el-cross.docker       |  5 ++++-
 .../docker/dockerfiles/debian-mipsel-cross.docker  |  5 ++++-
 .../docker/dockerfiles/debian-ppc64el-cross.docker |  5 ++++-
 .../docker/dockerfiles/debian-riscv64-cross.docker |  8 ++++++--
 tests/docker/dockerfiles/debian-s390x-cross.docker |  5 ++++-
 tests/docker/dockerfiles/debian.docker             |  5 ++++-
 .../docker/dockerfiles/fedora-rust-nightly.docker  | 14 ++++++++------
 tests/docker/dockerfiles/fedora-win64-cross.docker | 11 +++++++----
 tests/docker/dockerfiles/fedora.docker             | 14 ++++++++------
 tests/docker/dockerfiles/opensuse-leap.docker      |  4 ++--
 tests/docker/dockerfiles/ubuntu2204.docker         |  5 ++++-
 tests/lcitool/libvirt-ci                           |  2 +-
 tests/lcitool/projects/qemu.yml                    |  1 -
 tests/lcitool/refresh                              |  6 +++---
 21 files changed, 80 insertions(+), 38 deletions(-)
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
index f11e980826..bbcb5dd4ac 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
@@ -95,7 +95,6 @@ packages:
   - llvm
   - locales
   - make
-  - meson
   - mtools
   - multipath-tools
   - ncat
@@ -108,10 +107,12 @@ packages:
   - 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.77
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
index 6559cb2934..00eb1b0f91 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
@@ -93,7 +93,6 @@ packages:
   - llvm
   - locales
   - make
-  - meson
   - mtools
   - multipath-tools
   - ncat
@@ -106,10 +105,12 @@ packages:
   - 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.77
diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index bf3bd5a30d..bd1ef5505d 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -78,7 +78,7 @@ RUN apk update && \
         nmap-ncat \
         numactl-dev \
         openssh-client \
-        pcre-dev \
+        pcre2-dev \
         pipewire-dev \
         pixman-dev \
         pkgconf \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index 081f3e00f7..bba6de4e2d 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 91c555a36e..8bbcd75157 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index f0e2efcda0..455b84424c 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index 025beb1ce2..8b8993ffe4 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index 4a941dd870..c89cb6c680 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 4d3e5d711b..4e10d9501f 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index 22b4457ba9..cf61cb7f4a 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker
index b0386cd3a1..79ec37616d 100644
--- a/tests/docker/dockerfiles/debian-riscv64-cross.docker
+++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker
@@ -4,7 +4,7 @@
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:trixie-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -23,11 +23,13 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libglib2.0-dev \
                       locales \
                       make \
-                      meson \
                       ninja-build \
                       pkgconf \
                       python3 \
+                      python3-pip \
+                      python3-setuptools \
                       python3-venv \
+                      python3-wheel \
                       sed \
                       tar && \
     eatmydata apt-get autoremove -y && \
@@ -36,6 +38,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 13ec52c8ad..1782e0e90f 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -34,7 +34,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       ncat \
                       ninja-build \
@@ -45,9 +44,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -67,6 +68,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 0a57c1a1d3..62f89e4d8c 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -104,7 +104,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       multipath-tools \
                       ncat \
@@ -117,9 +116,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-opencv \
                       python3-pillow \
                       python3-pip \
+                      python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
                       python3-venv \
+                      python3-wheel \
                       python3-yaml \
                       rpm2cpio \
                       rustc-web \
@@ -146,6 +147,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index 4a033309b3..fd71dd8790 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all fedora-40 qemu
+#  $ lcitool dockerfile --layers all fedora-41 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM registry.fedoraproject.org/fedora:40
+FROM registry.fedoraproject.org/fedora:41
 
 RUN dnf install -y nosync && \
     printf '#!/bin/sh\n\
@@ -91,7 +91,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                lzo-devel \
                make \
                mesa-libgbm-devel \
-               meson \
                mtools \
                ncurses-devel \
                nettle-devel \
@@ -100,7 +99,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                numactl-devel \
                openssh-clients \
                pam-devel \
-               pcre-static \
+               pcre2-static \
                pipewire-devel \
                pixman-devel \
                pkgconfig \
@@ -111,9 +110,10 @@ exec "$@"\n' > /usr/bin/nosync && \
                python3-opencv \
                python3-pillow \
                python3-pip \
+               python3-setuptools \
                python3-sphinx \
                python3-sphinx_rtd_theme \
-               python3-zombie-imp \
+               python3-wheel \
                rdma-core-devel \
                rust \
                sed \
@@ -124,7 +124,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                spice-server-devel \
                swtpm \
                systemd-devel \
-               systemtap-sdt-devel \
+               systemtap-sdt-dtrace \
                tar \
                tesseract \
                tesseract-langpack-eng \
@@ -148,6 +148,8 @@ exec "$@"\n' > /usr/bin/nosync && \
     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"
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
index a950344402..ed7d270984 100644
--- a/tests/docker/dockerfiles/fedora-win64-cross.docker
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch mingw64 fedora-40 qemu,qemu-win-installer
+#  $ lcitool dockerfile --layers all --cross-arch mingw64 fedora-41 qemu,qemu-win-installer
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM registry.fedoraproject.org/fedora:40
+FROM registry.fedoraproject.org/fedora:41
 
 RUN dnf install -y nosync && \
     printf '#!/bin/sh\n\
@@ -38,7 +38,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                hostname \
                llvm \
                make \
-               meson \
                mtools \
                ninja-build \
                nmap-ncat \
@@ -49,9 +48,10 @@ exec "$@"\n' > /usr/bin/nosync && \
                python3-opencv \
                python3-pillow \
                python3-pip \
+               python3-setuptools \
                python3-sphinx \
                python3-sphinx_rtd_theme \
-               python3-zombie-imp \
+               python3-wheel \
                rust \
                sed \
                socat \
@@ -69,6 +69,8 @@ exec "$@"\n' > /usr/bin/nosync && \
     nosync dnf clean all -y && \
     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"
@@ -90,6 +92,7 @@ RUN nosync dnf install -y \
                mingw64-gtk-vnc2 \
                mingw64-gtk3 \
                mingw64-libepoxy \
+               mingw64-libfdt \
                mingw64-libgcrypt \
                mingw64-libjpeg-turbo \
                mingw64-libpng \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 014e3ccf17..e367c53c09 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all fedora-40 qemu
+#  $ lcitool dockerfile --layers all fedora-41 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM registry.fedoraproject.org/fedora:40
+FROM registry.fedoraproject.org/fedora:41
 
 RUN dnf install -y nosync && \
     printf '#!/bin/sh\n\
@@ -91,7 +91,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                lzo-devel \
                make \
                mesa-libgbm-devel \
-               meson \
                mtools \
                ncurses-devel \
                nettle-devel \
@@ -100,7 +99,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                numactl-devel \
                openssh-clients \
                pam-devel \
-               pcre-static \
+               pcre2-static \
                pipewire-devel \
                pixman-devel \
                pkgconfig \
@@ -111,9 +110,10 @@ exec "$@"\n' > /usr/bin/nosync && \
                python3-opencv \
                python3-pillow \
                python3-pip \
+               python3-setuptools \
                python3-sphinx \
                python3-sphinx_rtd_theme \
-               python3-zombie-imp \
+               python3-wheel \
                rdma-core-devel \
                rust \
                sed \
@@ -124,7 +124,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                spice-server-devel \
                swtpm \
                systemd-devel \
-               systemtap-sdt-devel \
+               systemtap-sdt-dtrace \
                tar \
                tesseract \
                tesseract-langpack-eng \
@@ -148,6 +148,8 @@ exec "$@"\n' > /usr/bin/nosync && \
     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"
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index e90225dc23..60763857bb 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -89,7 +89,7 @@ RUN zypper update -y && \
            ninja \
            openssh \
            pam-devel \
-           pcre-devel-static \
+           pcre2-devel-static \
            pipewire-devel \
            pkgconfig \
            python311 \
@@ -132,7 +132,7 @@ RUN zypper update -y && \
 
 RUN /usr/bin/pip3.11 install \
                      PyYAML \
-                     meson==1.5.0 \
+                     meson==1.8.1 \
                      pillow \
                      sphinx \
                      sphinx-rtd-theme
diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker
index 28a6f93243..ea67c7602a 100644
--- a/tests/docker/dockerfiles/ubuntu2204.docker
+++ b/tests/docker/dockerfiles/ubuntu2204.docker
@@ -102,7 +102,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       llvm \
                       locales \
                       make \
-                      meson \
                       mtools \
                       multipath-tools \
                       ncat \
@@ -115,10 +114,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       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.77 \
@@ -145,6 +146,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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"
diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
index 18c4bfe02c..9da20ff7c3 160000
--- a/tests/lcitool/libvirt-ci
+++ b/tests/lcitool/libvirt-ci
@@ -1 +1 @@
-Subproject commit 18c4bfe02c467e5639bf9a687139735ccd7a3fff
+Subproject commit 9da20ff7c3bc9067804a7561c2ff87583b434853
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index c07242f272..f22fc46fdc 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -91,7 +91,6 @@ packages:
  - pkg-config
  - pulseaudio
  - python3
- - python3-imp
  - python3-numpy
  - python3-opencv
  - python3-pillow
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index d3488b2679..f49eb638f8 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -171,7 +171,7 @@ try:
     generate_dockerfile("centos9", "centos-stream-9")
     generate_dockerfile("debian", "debian-12",
                         trailer="".join(debian12_extras))
-    generate_dockerfile("fedora", "fedora-40")
+    generate_dockerfile("fedora", "fedora-41")
     generate_dockerfile("opensuse-leap", "opensuse-leap-15")
     generate_dockerfile("ubuntu2204", "ubuntu-2204",
                         trailer="".join(ubuntu2204_rust_extras))
@@ -179,7 +179,7 @@ try:
     #
     # Non-fatal Rust-enabled build
     #
-    generate_dockerfile("fedora-rust-nightly", "fedora-40",
+    generate_dockerfile("fedora-rust-nightly", "fedora-41",
                         trailer="".join(fedora_rustup_nightly_extras))
 
     #
@@ -237,7 +237,7 @@ try:
                         trailer=cross_build("s390x-linux-gnu-",
                                             "s390x-softmmu,s390x-linux-user"))
 
-    generate_dockerfile("fedora-win64-cross", "fedora-40",
+    generate_dockerfile("fedora-win64-cross", "fedora-41",
                         project='qemu,qemu-win-installer',
                         cross="mingw64",
                         trailer=cross_build("x86_64-w64-mingw32-",
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 12/27] lcitool: update, switch to f41
  2025-09-24 12:04 ` [PATCH v2 12/27] lcitool: update, switch to f41 marcandre.lureau
@ 2025-09-24 13:44   ` Daniel P. Berrangé
  0 siblings, 0 replies; 52+ messages in thread
From: Daniel P. Berrangé @ 2025-09-24 13:44 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On Wed, Sep 24, 2025 at 04:04:09PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Newer lcitool version has various fixes helping QEMU CI and this series.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml   |  3 ++-
>  scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml     |  3 ++-
>  tests/docker/dockerfiles/alpine.docker             |  2 +-
>  tests/docker/dockerfiles/debian-amd64-cross.docker |  5 ++++-
>  tests/docker/dockerfiles/debian-arm64-cross.docker |  5 ++++-
>  tests/docker/dockerfiles/debian-armhf-cross.docker |  5 ++++-
>  tests/docker/dockerfiles/debian-i686-cross.docker  |  5 ++++-
>  .../dockerfiles/debian-mips64el-cross.docker       |  5 ++++-
>  .../docker/dockerfiles/debian-mipsel-cross.docker  |  5 ++++-
>  .../docker/dockerfiles/debian-ppc64el-cross.docker |  5 ++++-
>  .../docker/dockerfiles/debian-riscv64-cross.docker |  8 ++++++--
>  tests/docker/dockerfiles/debian-s390x-cross.docker |  5 ++++-
>  tests/docker/dockerfiles/debian.docker             |  5 ++++-
>  .../docker/dockerfiles/fedora-rust-nightly.docker  | 14 ++++++++------
>  tests/docker/dockerfiles/fedora-win64-cross.docker | 11 +++++++----
>  tests/docker/dockerfiles/fedora.docker             | 14 ++++++++------
>  tests/docker/dockerfiles/opensuse-leap.docker      |  4 ++--
>  tests/docker/dockerfiles/ubuntu2204.docker         |  5 ++++-
>  tests/lcitool/libvirt-ci                           |  2 +-
>  tests/lcitool/projects/qemu.yml                    |  1 -
>  tests/lcitool/refresh                              |  6 +++---
>  21 files changed, 80 insertions(+), 38 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 13/27] lcitool/qemu: include libclang-rt for TSAN
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (11 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 12/27] lcitool: update, switch to f41 marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 14/27] lcitool/alpine: workaround bindgen issue marcandre.lureau
                   ` (14 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml      | 1 +
 scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml        | 1 +
 tests/docker/dockerfiles/centos9.docker               | 1 +
 tests/docker/dockerfiles/debian-amd64-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-arm64-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-armhf-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-i686-cross.docker     | 1 +
 tests/docker/dockerfiles/debian-mips64el-cross.docker | 1 +
 tests/docker/dockerfiles/debian-mipsel-cross.docker   | 1 +
 tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 1 +
 tests/docker/dockerfiles/debian-s390x-cross.docker    | 1 +
 tests/docker/dockerfiles/debian.docker                | 1 +
 tests/docker/dockerfiles/fedora-rust-nightly.docker   | 1 +
 tests/docker/dockerfiles/fedora-win64-cross.docker    | 1 +
 tests/docker/dockerfiles/fedora.docker                | 1 +
 tests/docker/dockerfiles/opensuse-leap.docker         | 1 +
 tests/docker/dockerfiles/ubuntu2204.docker            | 1 +
 tests/lcitool/projects/qemu.yml                       | 1 +
 18 files changed, 18 insertions(+)
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
index bbcb5dd4ac..f446217f2c 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
@@ -36,6 +36,7 @@ packages:
   - libcap-ng-dev
   - libcapstone-dev
   - libcbor-dev
+  - libclang-dev
   - libcmocka-dev
   - libcurl4-gnutls-dev
   - libdaxctl-dev
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
index 00eb1b0f91..25c3368c54 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
@@ -36,6 +36,7 @@ packages:
   - libcap-ng-dev
   - libcapstone-dev
   - libcbor-dev
+  - libclang-dev
   - libcmocka-dev
   - libcurl4-gnutls-dev
   - libdaxctl-dev
diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker
index a942835a1d..33c62033ce 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -25,6 +25,7 @@ RUN dnf distro-sync -y && \
         capstone-devel \
         ccache \
         clang \
+        compiler-rt \
         ctags \
         cyrus-sasl-devel \
         daxctl-devel \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index bba6de4e2d..d4d3cebfdc 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 8bbcd75157..cd9c9a0def 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 455b84424c..21a5bbc81d 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index 8b8993ffe4..c41a4805fe 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index c89cb6c680..77d5d43f4b 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 4e10d9501f..9e60fe0eb4 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index cf61cb7f4a..dc683bd498 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 1782e0e90f..ef6e961460 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -30,6 +30,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       gettext \
                       git \
                       hostname \
+                      libclang-rt-dev \
                       libglib2.0-dev \
                       llvm \
                       locales \
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 62f89e4d8c..ef9ba62f2a 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -43,6 +43,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libcap-ng-dev \
                       libcapstone-dev \
                       libcbor-dev \
+                      libclang-rt-dev \
                       libcmocka-dev \
                       libcurl4-gnutls-dev \
                       libdaxctl-dev \
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index fd71dd8790..bdbcebda8d 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -32,6 +32,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                capstone-devel \
                ccache \
                clang \
+               compiler-rt \
                ctags \
                cyrus-sasl-devel \
                daxctl-devel \
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
index ed7d270984..3c54486d2f 100644
--- a/tests/docker/dockerfiles/fedora-win64-cross.docker
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -25,6 +25,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                bzip2 \
                ca-certificates \
                ccache \
+               compiler-rt \
                ctags \
                dbus-daemon \
                diffutils \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index e367c53c09..f758efd2b7 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -32,6 +32,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                capstone-devel \
                ccache \
                clang \
+               compiler-rt \
                ctags \
                cyrus-sasl-devel \
                daxctl-devel \
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index 60763857bb..d71dbc30c7 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -19,6 +19,7 @@ RUN zypper update -y && \
            ca-certificates \
            ccache \
            clang \
+           clang-devel \
            ctags \
            cyrus-sasl-devel \
            dbus-1 \
diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker
index ea67c7602a..146ad7fce2 100644
--- a/tests/docker/dockerfiles/ubuntu2204.docker
+++ b/tests/docker/dockerfiles/ubuntu2204.docker
@@ -42,6 +42,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libcap-ng-dev \
                       libcapstone-dev \
                       libcbor-dev \
+                      libclang-dev \
                       libcmocka-dev \
                       libcurl4-gnutls-dev \
                       libdaxctl-dev \
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index f22fc46fdc..301d0e1ea0 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -44,6 +44,7 @@ packages:
  - libcacard
  - libcap-ng
  - libcbor
+ - libclang-rt
  - libcurl
  - libdrm
  - libepoxy
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 14/27] lcitool/alpine: workaround bindgen issue
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (12 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 13/27] lcitool/qemu: include libclang-rt for TSAN marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 15/27] tests/lcitool: add missing rust-std dep marcandre.lureau
                   ` (13 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/docker/dockerfiles/alpine.docker | 2 ++
 tests/lcitool/refresh                  | 8 +++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index bd1ef5505d..b50fbc3dba 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -131,6 +131,8 @@ ENV LANG "en_US.UTF-8"
 ENV MAKE "/usr/bin/make"
 ENV NINJA "/usr/bin/ninja"
 ENV PYTHON "/usr/bin/python3"
+# https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463
+RUN apk add clang19-libclang
 # As a final step configure the user (if env is defined)
 ARG USER
 ARG UID
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index f49eb638f8..6f98a91277 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -97,6 +97,11 @@ def generate_yaml(os, target, arch, trailer=None):
     generate(filename, cmd, trailer)
 
 
+alpine_extras = [
+    "# https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463\n",
+    "RUN apk add clang19-libclang\n",
+]
+
 # Netmap still needs to be manually built as it is yet to be packaged
 # into a distro. We also add cscope and gtags which are used in the CI
 # test
@@ -167,7 +172,8 @@ try:
     #
     # Standard native builds
     #
-    generate_dockerfile("alpine", "alpine-321")
+    generate_dockerfile("alpine", "alpine-321",
+                        trailer="".join(alpine_extras))
     generate_dockerfile("centos9", "centos-stream-9")
     generate_dockerfile("debian", "debian-12",
                         trailer="".join(debian12_extras))
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 15/27] tests/lcitool: add missing rust-std dep
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (13 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 14/27] lcitool/alpine: workaround bindgen issue marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 16/27] tests/lcitool: update to debian13 marcandre.lureau
                   ` (12 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Some distros/targets may pull it by default, but some don't.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml      | 1 +
 scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml        | 1 +
 tests/docker/dockerfiles/centos9.docker               | 1 +
 tests/docker/dockerfiles/debian-amd64-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-arm64-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-armhf-cross.docker    | 1 +
 tests/docker/dockerfiles/debian-i686-cross.docker     | 1 +
 tests/docker/dockerfiles/debian-mips64el-cross.docker | 1 +
 tests/docker/dockerfiles/debian-mipsel-cross.docker   | 1 +
 tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 1 +
 tests/docker/dockerfiles/debian-s390x-cross.docker    | 1 +
 tests/docker/dockerfiles/debian.docker                | 1 +
 tests/docker/dockerfiles/fedora-rust-nightly.docker   | 1 +
 tests/docker/dockerfiles/fedora-win64-cross.docker    | 3 ++-
 tests/docker/dockerfiles/fedora.docker                | 1 +
 tests/docker/dockerfiles/ubuntu2204.docker            | 1 +
 tests/lcitool/projects/qemu.yml                       | 1 +
 17 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
index f446217f2c..2ca4a5392f 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
@@ -81,6 +81,7 @@ packages:
   - libspice-protocol-dev
   - libspice-server-dev
   - libssh-dev
+  - libstd-rust-dev
   - libsystemd-dev
   - libtasn1-6-dev
   - libubsan1
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
index 25c3368c54..7198fbbcbb 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
@@ -80,6 +80,7 @@ packages:
   - libsndio-dev
   - libspice-protocol-dev
   - libssh-dev
+  - libstd-rust-dev
   - libsystemd-dev
   - libtasn1-6-dev
   - libubsan1
diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker
index 33c62033ce..e7fc688ee9 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -105,6 +105,7 @@ RUN dnf distro-sync -y && \
         python3-tomli \
         rdma-core-devel \
         rust \
+        rust-std-static \
         sed \
         snappy-devel \
         socat \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index d4d3cebfdc..f3ad2205a7 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -141,6 +141,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:amd64 \
                       libspice-server-dev:amd64 \
                       libssh-dev:amd64 \
+                      libstd-rust-dev:amd64 \
                       libsystemd-dev:amd64 \
                       libtasn1-6-dev:amd64 \
                       libubsan1:amd64 \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index cd9c9a0def..7d42227fa1 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -140,6 +140,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:arm64 \
                       libspice-server-dev:arm64 \
                       libssh-dev:arm64 \
+                      libstd-rust-dev:arm64 \
                       libsystemd-dev:arm64 \
                       libtasn1-6-dev:arm64 \
                       libubsan1:arm64 \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 21a5bbc81d..8ad4d2bebf 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -140,6 +140,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:armhf \
                       libspice-server-dev:armhf \
                       libssh-dev:armhf \
+                      libstd-rust-dev:armhf \
                       libsystemd-dev:armhf \
                       libtasn1-6-dev:armhf \
                       libubsan1:armhf \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index c41a4805fe..e7e8d8e0f1 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -140,6 +140,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:i386 \
                       libspice-server-dev:i386 \
                       libssh-dev:i386 \
+                      libstd-rust-dev:i386 \
                       libsystemd-dev:i386 \
                       libtasn1-6-dev:i386 \
                       libubsan1:i386 \
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index 77d5d43f4b..cca04a4594 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -139,6 +139,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:mips64el \
                       libspice-server-dev:mips64el \
                       libssh-dev:mips64el \
+                      libstd-rust-dev:mips64el \
                       libsystemd-dev:mips64el \
                       libtasn1-6-dev:mips64el \
                       libudev-dev:mips64el \
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 9e60fe0eb4..59c6f92248 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -139,6 +139,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:mipsel \
                       libspice-server-dev:mipsel \
                       libssh-dev:mipsel \
+                      libstd-rust-dev:mipsel \
                       libsystemd-dev:mipsel \
                       libtasn1-6-dev:mipsel \
                       libudev-dev:mipsel \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index dc683bd498..97ef64d934 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -140,6 +140,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev:ppc64el \
                       libspice-server-dev:ppc64el \
                       libssh-dev:ppc64el \
+                      libstd-rust-dev:ppc64el \
                       libsystemd-dev:ppc64el \
                       libtasn1-6-dev:ppc64el \
                       libubsan1:ppc64el \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index ef6e961460..3afe91494d 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -139,6 +139,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libsndio-dev:s390x \
                       libspice-protocol-dev:s390x \
                       libssh-dev:s390x \
+                      libstd-rust-dev:s390x \
                       libsystemd-dev:s390x \
                       libtasn1-6-dev:s390x \
                       libubsan1:s390x \
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index ef9ba62f2a..f68fcc83a9 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -89,6 +89,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev \
                       libspice-server-dev \
                       libssh-dev \
+                      libstd-rust-dev \
                       libsystemd-dev \
                       libtasn1-6-dev \
                       libubsan1 \
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index bdbcebda8d..167246f0f5 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -117,6 +117,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                python3-wheel \
                rdma-core-devel \
                rust \
+               rust-std-static \
                sed \
                snappy-devel \
                socat \
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
index 3c54486d2f..c76a70c368 100644
--- a/tests/docker/dockerfiles/fedora-win64-cross.docker
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -100,7 +100,8 @@ RUN nosync dnf install -y \
                mingw64-libtasn1 \
                mingw64-nettle \
                mingw64-pixman \
-               mingw64-pkg-config && \
+               mingw64-pkg-config \
+               rust-std-static-x86_64-pc-windows-gnu && \
     nosync dnf clean all -y && \
     rpm -qa | sort > /packages.txt && \
     mkdir -p /usr/libexec/ccache-wrappers && \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index f758efd2b7..56a1ad8a18 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -117,6 +117,7 @@ exec "$@"\n' > /usr/bin/nosync && \
                python3-wheel \
                rdma-core-devel \
                rust \
+               rust-std-static \
                sed \
                snappy-devel \
                socat \
diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker
index 146ad7fce2..b393db55a8 100644
--- a/tests/docker/dockerfiles/ubuntu2204.docker
+++ b/tests/docker/dockerfiles/ubuntu2204.docker
@@ -88,6 +88,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libspice-protocol-dev \
                       libspice-server-dev \
                       libssh-dev \
+                      libstd-rust-dev \
                       libsystemd-dev \
                       libtasn1-6-dev \
                       libubsan1 \
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index 301d0e1ea0..82812e7736 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -104,6 +104,7 @@ packages:
  - python3-venv
  - rpm2cpio
  - rust
+ - rust-std
  - sdl2
  - sdl2-image
  - sed
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 16/27] tests/lcitool: update to debian13
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (14 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 15/27] tests/lcitool: add missing rust-std dep marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:19   ` Philippe Mathieu-Daudé
  2025-09-26 16:41   ` Alex Bennée
  2025-09-24 12:04 ` [PATCH v2 17/27] tests/docker: add ENABLE_RUST environment marcandre.lureau
                   ` (11 subsequent siblings)
  27 siblings, 2 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .../dockerfiles/debian-amd64-cross.docker     |  9 +++++----
 .../dockerfiles/debian-arm64-cross.docker     |  9 +++++----
 .../dockerfiles/debian-armhf-cross.docker     | 12 +++++------
 .../dockerfiles/debian-i686-cross.docker      | 11 +++++-----
 .../dockerfiles/debian-ppc64el-cross.docker   |  9 +++++----
 .../dockerfiles/debian-s390x-cross.docker     |  9 +++++----
 tests/docker/dockerfiles/debian.docker        |  9 +++++----
 tests/lcitool/refresh                         | 20 ++++++++++---------
 8 files changed, 46 insertions(+), 42 deletions(-)
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index f3ad2205a7..08621879dd 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch x86_64 debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch x86_64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-x86-64-linux-gnu \
                       libaio-dev:amd64 \
-                      libasan6:amd64 \
+                      libasan8:amd64 \
                       libasound2-dev:amd64 \
                       libattr1-dev:amd64 \
                       libbpf-dev:amd64 \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 7d42227fa1..725cccbee1 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-aarch64-linux-gnu \
                       libaio-dev:arm64 \
-                      libasan6:arm64 \
+                      libasan8:arm64 \
                       libasound2-dev:arm64 \
                       libattr1-dev:arm64 \
                       libbpf-dev:arm64 \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 8ad4d2bebf..50f7e0e986 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch armv7l debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch armv7l debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-arm-linux-gnueabihf \
                       libaio-dev:armhf \
-                      libasan6:armhf \
+                      libasan8:armhf \
                       libasound2-dev:armhf \
                       libattr1-dev:armhf \
                       libbpf-dev:armhf \
@@ -107,7 +108,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libgbm-dev:armhf \
                       libgcrypt20-dev:armhf \
                       libglib2.0-dev:armhf \
-                      libglusterfs-dev:armhf \
                       libgnutls28-dev:armhf \
                       libgtk-3-dev:armhf \
                       libgtk-vnc-2.0-dev:armhf \
@@ -127,7 +127,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libpixman-1-dev:armhf \
                       libpng-dev:armhf \
                       libpulse-dev:armhf \
-                      librbd-dev:armhf \
                       librdmacm-dev:armhf \
                       libsasl2-dev:armhf \
                       libsdl2-dev:armhf \
@@ -152,7 +151,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libvirglrenderer-dev:armhf \
                       libvte-2.91-dev:armhf \
                       libxdp-dev:armhf \
-                      libxen-dev:armhf \
                       libzstd-dev:armhf \
                       nettle-dev:armhf \
                       systemtap-sdt-dev:armhf \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index e7e8d8e0f1..f53b77cb62 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch i686 debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch i686 debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-i686-linux-gnu \
                       libaio-dev:i386 \
-                      libasan6:i386 \
+                      libasan8:i386 \
                       libasound2-dev:i386 \
                       libattr1-dev:i386 \
                       libbpf-dev:i386 \
@@ -107,7 +108,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libgbm-dev:i386 \
                       libgcrypt20-dev:i386 \
                       libglib2.0-dev:i386 \
-                      libglusterfs-dev:i386 \
                       libgnutls28-dev:i386 \
                       libgtk-3-dev:i386 \
                       libgtk-vnc-2.0-dev:i386 \
@@ -127,7 +127,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libpixman-1-dev:i386 \
                       libpng-dev:i386 \
                       libpulse-dev:i386 \
-                      librbd-dev:i386 \
                       librdmacm-dev:i386 \
                       libsasl2-dev:i386 \
                       libsdl2-dev:i386 \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index 97ef64d934..09de265c26 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch ppc64le debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch ppc64le debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-powerpc64le-linux-gnu \
                       libaio-dev:ppc64el \
-                      libasan6:ppc64el \
+                      libasan8:ppc64el \
                       libasound2-dev:ppc64el \
                       libattr1-dev:ppc64el \
                       libbpf-dev:ppc64el \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index 3afe91494d..d7b2ca99ce 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all --cross-arch s390x debian-12 qemu
+#  $ lcitool dockerfile --layers all --cross-arch s390x debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
@@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     eatmydata apt-get install --no-install-recommends -y \
                       gcc-s390x-linux-gnu \
                       libaio-dev:s390x \
-                      libasan6:s390x \
+                      libasan8:s390x \
                       libasound2-dev:s390x \
                       libattr1-dev:s390x \
                       libbpf-dev:s390x \
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index f68fcc83a9..2696cf2167 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -1,10 +1,10 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all debian-12 qemu
+#  $ lcitool dockerfile --layers all debian-13 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:12-slim
+FROM docker.io/library/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
@@ -32,7 +32,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       git \
                       hostname \
                       libaio-dev \
-                      libasan6 \
+                      libasan8 \
                       libasound2-dev \
                       libattr1-dev \
                       libbpf-dev \
@@ -121,11 +121,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       python3-setuptools \
                       python3-sphinx \
                       python3-sphinx-rtd-theme \
+                      python3-tomli \
                       python3-venv \
                       python3-wheel \
                       python3-yaml \
                       rpm2cpio \
-                      rustc-web \
+                      rustc \
                       sed \
                       socat \
                       sparse \
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 6f98a91277..f4d2721178 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -105,7 +105,7 @@ alpine_extras = [
 # Netmap still needs to be manually built as it is yet to be packaged
 # into a distro. We also add cscope and gtags which are used in the CI
 # test
-debian12_extras = [
+debian13_extras = [
     "# netmap/cscope/global\n",
     "RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
     "  apt install -y --no-install-recommends \\\n",
@@ -175,8 +175,8 @@ try:
     generate_dockerfile("alpine", "alpine-321",
                         trailer="".join(alpine_extras))
     generate_dockerfile("centos9", "centos-stream-9")
-    generate_dockerfile("debian", "debian-12",
-                        trailer="".join(debian12_extras))
+    generate_dockerfile("debian", "debian-13",
+                        trailer="".join(debian13_extras))
     generate_dockerfile("fedora", "fedora-41")
     generate_dockerfile("opensuse-leap", "opensuse-leap-15")
     generate_dockerfile("ubuntu2204", "ubuntu-2204",
@@ -191,30 +191,32 @@ try:
     #
     # Cross compiling builds
     #
-    generate_dockerfile("debian-amd64-cross", "debian-12",
+    generate_dockerfile("debian-amd64-cross", "debian-13",
                         cross="x86_64",
                         trailer=cross_build("x86_64-linux-gnu-",
                                             "x86_64-softmmu,"
                                             "x86_64-linux-user,"
                                             "i386-softmmu,i386-linux-user"))
 
-    generate_dockerfile("debian-arm64-cross", "debian-12",
+    generate_dockerfile("debian-arm64-cross", "debian-13",
                         cross="aarch64",
                         trailer=cross_build("aarch64-linux-gnu-",
                                             "aarch64-softmmu,aarch64-linux-user"))
 
-    generate_dockerfile("debian-armhf-cross", "debian-12",
+    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-12",
+    generate_dockerfile("debian-i686-cross", "debian-13",
                         cross="i686",
                         trailer=cross_build("i686-linux-gnu-",
                                             "x86_64-softmmu,"
                                             "x86_64-linux-user,"
                                             "i386-softmmu,i386-linux-user"))
 
+    # mips no longer supported in debian-13
+    # https://www.debian.org/releases/trixie/release-notes/issues.html#mips-architectures-removed
     generate_dockerfile("debian-mips64el-cross", "debian-12",
                         cross="mips64el",
                         trailer=cross_build("mips64el-linux-gnuabi64-",
@@ -225,7 +227,7 @@ try:
                         trailer=cross_build("mipsel-linux-gnu-",
                                             "mipsel-softmmu,mipsel-linux-user"))
 
-    generate_dockerfile("debian-ppc64el-cross", "debian-12",
+    generate_dockerfile("debian-ppc64el-cross", "debian-13",
                         cross="ppc64le",
                         trailer=cross_build("powerpc64le-linux-gnu-",
                                             "ppc64-softmmu,ppc64-linux-user"))
@@ -238,7 +240,7 @@ try:
                         trailer=cross_build("riscv64-linux-gnu-",
                                             "riscv64-softmmu,riscv64-linux-user"))
 
-    generate_dockerfile("debian-s390x-cross", "debian-12",
+    generate_dockerfile("debian-s390x-cross", "debian-13",
                         cross="s390x",
                         trailer=cross_build("s390x-linux-gnu-",
                                             "s390x-softmmu,s390x-linux-user"))
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 16/27] tests/lcitool: update to debian13
  2025-09-24 12:04 ` [PATCH v2 16/27] tests/lcitool: update to debian13 marcandre.lureau
@ 2025-09-24 12:19   ` Philippe Mathieu-Daudé
  2025-09-26 16:41   ` Alex Bennée
  1 sibling, 0 replies; 52+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-09-24 12:19 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
On 24/9/25 14:04, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   .../dockerfiles/debian-amd64-cross.docker     |  9 +++++----
>   .../dockerfiles/debian-arm64-cross.docker     |  9 +++++----
>   .../dockerfiles/debian-armhf-cross.docker     | 12 +++++------
>   .../dockerfiles/debian-i686-cross.docker      | 11 +++++-----
>   .../dockerfiles/debian-ppc64el-cross.docker   |  9 +++++----
>   .../dockerfiles/debian-s390x-cross.docker     |  9 +++++----
>   tests/docker/dockerfiles/debian.docker        |  9 +++++----
>   tests/lcitool/refresh                         | 20 ++++++++++---------
>   8 files changed, 46 insertions(+), 42 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 16/27] tests/lcitool: update to debian13
  2025-09-24 12:04 ` [PATCH v2 16/27] tests/lcitool: update to debian13 marcandre.lureau
  2025-09-24 12:19   ` Philippe Mathieu-Daudé
@ 2025-09-26 16:41   ` Alex Bennée
  1 sibling, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 16:41 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  .../dockerfiles/debian-amd64-cross.docker     |  9 +++++----
>  .../dockerfiles/debian-arm64-cross.docker     |  9 +++++----
>  .../dockerfiles/debian-armhf-cross.docker     | 12 +++++------
>  .../dockerfiles/debian-i686-cross.docker      | 11 +++++-----
>  .../dockerfiles/debian-ppc64el-cross.docker   |  9 +++++----
>  .../dockerfiles/debian-s390x-cross.docker     |  9 +++++----
>  tests/docker/dockerfiles/debian.docker        |  9 +++++----
>  tests/lcitool/refresh                         | 20 ++++++++++---------
>  8 files changed, 46 insertions(+), 42 deletions(-)
>
> diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
> index f3ad2205a7..08621879dd 100644
> --- a/tests/docker/dockerfiles/debian-amd64-cross.docker
> +++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch x86_64 debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch x86_64 debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-x86-64-linux-gnu \
>                        libaio-dev:amd64 \
> -                      libasan6:amd64 \
> +                      libasan8:amd64 \
>                        libasound2-dev:amd64 \
>                        libattr1-dev:amd64 \
>                        libbpf-dev:amd64 \
> diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
> index 7d42227fa1..725cccbee1 100644
> --- a/tests/docker/dockerfiles/debian-arm64-cross.docker
> +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-aarch64-linux-gnu \
>                        libaio-dev:arm64 \
> -                      libasan6:arm64 \
> +                      libasan8:arm64 \
>                        libasound2-dev:arm64 \
>                        libattr1-dev:arm64 \
>                        libbpf-dev:arm64 \
> diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
> index 8ad4d2bebf..50f7e0e986 100644
> --- a/tests/docker/dockerfiles/debian-armhf-cross.docker
> +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch armv7l debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch armv7l debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-arm-linux-gnueabihf \
>                        libaio-dev:armhf \
> -                      libasan6:armhf \
> +                      libasan8:armhf \
>                        libasound2-dev:armhf \
>                        libattr1-dev:armhf \
>                        libbpf-dev:armhf \
> @@ -107,7 +108,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libgbm-dev:armhf \
>                        libgcrypt20-dev:armhf \
>                        libglib2.0-dev:armhf \
> -                      libglusterfs-dev:armhf \
>                        libgnutls28-dev:armhf \
>                        libgtk-3-dev:armhf \
>                        libgtk-vnc-2.0-dev:armhf \
> @@ -127,7 +127,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libpixman-1-dev:armhf \
>                        libpng-dev:armhf \
>                        libpulse-dev:armhf \
> -                      librbd-dev:armhf \
>                        librdmacm-dev:armhf \
>                        libsasl2-dev:armhf \
>                        libsdl2-dev:armhf \
> @@ -152,7 +151,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libvirglrenderer-dev:armhf \
>                        libvte-2.91-dev:armhf \
>                        libxdp-dev:armhf \
> -                      libxen-dev:armhf \
>                        libzstd-dev:armhf \
>                        nettle-dev:armhf \
>                        systemtap-sdt-dev:armhf \
This fails to build:
Build started at 2025-09-26T16:02:34.986501
Main binary: /tmp/qemu-test/build/pyvenv/bin/python3
Build Options: -Dwerror=true -Dprefix=/tmp/qemu-test/install -Drust=enabled -Ddocs=enabled -Dplugins=true --cross-file=config-meson.cross --native-file=config-meson.native
Python system: Linux
The Meson build system
Version: 1.9.0
Source dir: /tmp/qemu-test/src
Build dir: /tmp/qemu-test/build
Build type: cross build
Project name: qemu
Project version: 10.1.50
-----------
Detecting compiler via: `arm-linux-gnueabihf-gcc --version` -> 0
stdout:
arm-linux-gnueabihf-gcc (Debian 14.2.0-19) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: -cpp -x c -E -dM -
-----
-----------
Detecting linker via: `arm-linux-gnueabihf-gcc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils for Debian) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 14.2.0
/usr/lib/gcc-cross/arm-linux-gnueabihf/14/../../../../arm-linux-gnueabihf/bin/ld -plugin /usr/libexec/gcc-cross/arm-linux-gnueabihf/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc-cross/arm-linux-gnueabihf/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSBX4gO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu --as-needed -m armelf_linux_eabi -pie /lib/arm-linux-gnueabihf/Scrt1.o /lib/arm-linux-gnueabihf/crti.o /usr/lib/gcc-cross/arm-linux-gnueabihf/14/crtbeginS.o -L/usr/lib/gcc-cross/arm-linux-gnueabihf/14 -L/usr/lib/gcc-cross/arm-linux-gnueabihf/14/../../../../arm-linux-gnueabihf/lib -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc-cross/arm-linux-gnueabihf/14/crtendS.o /lib/arm-linux-gnueabihf/crtn.o
-----------
Sanity testing C compiler: arm-linux-gnueabihf-gcc
Is cross compiler: True.
Sanity check compiler command line: arm-linux-gnueabihf-gcc sanitycheckc.c -o sanitycheckc_cross.exe -D_FILE_OFFSET_BITS=64 -c
Sanity check compile stdout:
-----
Sanity check compile stderr:
-----
C compiler for the host machine: arm-linux-gnueabihf-gcc (gcc 14.2.0 "arm-linux-gnueabihf-gcc (Debian 14.2.0-19) 14.2.0")
C linker for the host machine: arm-linux-gnueabihf-gcc ld.bfd 2.44
-----------
Detecting archiver via: `arm-linux-gnueabihf-ar --version` -> 0
stdout:
GNU ar (GNU Binutils for Debian) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
-----------
Detecting compiler via: `cc --version` -> 0
stdout:
cc (Debian 14.2.0-19) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: -cpp -x c -E -dM -
-----
-----------
Detecting linker via: `cc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils for Debian) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 14.2.0
/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccm2bSZj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/14/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/14 -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/14/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/14/../../.. --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/14/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/crtn.o
-----------
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:
-----
Sanity check compile stderr:
-----
Running test binary command:  /tmp/qemu-test/build/meson-private/sanitycheckc.exe
-----------
Sanity check: `/tmp/qemu-test/build/meson-private/sanitycheckc.exe` -> 0
C compiler for the build machine: cc (gcc 14.2.0 "cc (Debian 14.2.0-19) 14.2.0")
C linker for the build machine: cc ld.bfd 2.44
-----------
Detecting archiver via: `gcc-ar --version` -> 0
stdout:
GNU ar (GNU Binutils for Debian) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
-----------
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: arm
Host machine cpu: arm
Target machine cpu family: arm
Target machine cpu: arm
Program scripts/symlink-install-tree.py found: YES (/tmp/qemu-test/build/pyvenv/bin/python3 /tmp/qemu-test/src/scripts/symlink-install-tree.py)
Program sh found: YES (/usr/bin/sh)
Program python3 found: YES (/tmp/qemu-test/build/pyvenv/bin/python3)
-----------
Detecting compiler via: `arm-linux-gnueabihf-gcc --version` -> 0
stdout:
arm-linux-gnueabihf-gcc (Debian 14.2.0-19) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------
Running command: -cpp -x c -E -dM -
-----
-----------
Detecting linker via: `arm-linux-gnueabihf-gcc -Wl,--version` -> 0
stdout:
GNU ld (GNU Binutils for Debian) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
-----------
stderr:
collect2 version 14.2.0
/usr/lib/gcc-cross/arm-linux-gnueabihf/14/../../../../arm-linux-gnueabihf/bin/ld -plugin /usr/libexec/gcc-cross/arm-linux-gnueabihf/14/liblto_plugin.so -plugin-opt=/usr/libexec/gcc-cross/arm-linux-gnueabihf/14/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDS7TeO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu --as-needed -m armelf_linux_eabi -pie /lib/arm-linux-gnueabihf/Scrt1.o /lib/arm-linux-gnueabihf/crti.o /usr/lib/gcc-cross/arm-linux-gnueabihf/14/crtbeginS.o -L/usr/lib/gcc-cross/arm-linux-gnueabihf/14 -L/usr/lib/gcc-cross/arm-linux-gnueabihf/14/../../../../arm-linux-gnueabihf/lib -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf --version -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc-cross/arm-linux-gnueabihf/14/crtendS.o /lib/arm-linux-gnueabihf/crtn.o
-----------
-----------
Detecting compiler via: `rustc --target arm-unknown-linux-gnueabi --version` -> 0
stdout:
rustc 1.85.0 (4d91de4e4 2025-02-17) (built from a source tarball)
-----------
-----------
Called: `rustc --target arm-unknown-linux-gnueabi -C linker=arm-linux-gnueabihf-gcc -o /tmp/qemu-test/build/meson-private/rusttest.exe /tmp/qemu-test/build/meson-private/sanity.rs` -> 1
stderr:
error[E0463]: can't find crate for `std`
  |
  = note: the `arm-unknown-linux-gnueabi` target may not be installed
  = help: consider downloading the target with `rustup target add arm-unknown-linux-gnueabi`
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0463`.
-----------
../src/meson.build:91:12: ERROR: Rust compiler rustc --target arm-unknown-linux-gnueabi -C linker=arm-linux-gnueabihf-gcc cannot compile programs.
Failed to run 'configure'
make[1]: *** [tests/docker/Makefile.include:203: docker-run] Error 1
make[1]: Leaving directory '/home/alex/lsrc/qemu.git'
make: *** [tests/docker/Makefile.include:131: docker-test-build@debian-armhf-cross] Error 2
🕙17:02:35 alex@draig:qemu.git  on  testing/next:master [$!?⇡] took 12m1s [🔴 USAGE]
> diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
> index e7e8d8e0f1..f53b77cb62 100644
> --- a/tests/docker/dockerfiles/debian-i686-cross.docker
> +++ b/tests/docker/dockerfiles/debian-i686-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch i686 debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch i686 debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-i686-linux-gnu \
>                        libaio-dev:i386 \
> -                      libasan6:i386 \
> +                      libasan8:i386 \
>                        libasound2-dev:i386 \
>                        libattr1-dev:i386 \
>                        libbpf-dev:i386 \
> @@ -107,7 +108,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libgbm-dev:i386 \
>                        libgcrypt20-dev:i386 \
>                        libglib2.0-dev:i386 \
> -                      libglusterfs-dev:i386 \
>                        libgnutls28-dev:i386 \
>                        libgtk-3-dev:i386 \
>                        libgtk-vnc-2.0-dev:i386 \
> @@ -127,7 +127,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libpixman-1-dev:i386 \
>                        libpng-dev:i386 \
>                        libpulse-dev:i386 \
> -                      librbd-dev:i386 \
>                        librdmacm-dev:i386 \
>                        libsasl2-dev:i386 \
>                        libsdl2-dev:i386 \
> diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
> index 97ef64d934..09de265c26 100644
> --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
> +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch ppc64le debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch ppc64le debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-powerpc64le-linux-gnu \
>                        libaio-dev:ppc64el \
> -                      libasan6:ppc64el \
> +                      libasan8:ppc64el \
>                        libasound2-dev:ppc64el \
>                        libattr1-dev:ppc64el \
>                        libbpf-dev:ppc64el \
> diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
> index 3afe91494d..d7b2ca99ce 100644
> --- a/tests/docker/dockerfiles/debian-s390x-cross.docker
> +++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all --cross-arch s390x debian-12 qemu
> +#  $ lcitool dockerfile --layers all --cross-arch s390x debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -48,11 +48,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> @@ -85,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>      eatmydata apt-get install --no-install-recommends -y \
>                        gcc-s390x-linux-gnu \
>                        libaio-dev:s390x \
> -                      libasan6:s390x \
> +                      libasan8:s390x \
>                        libasound2-dev:s390x \
>                        libattr1-dev:s390x \
>                        libbpf-dev:s390x \
> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> index f68fcc83a9..2696cf2167 100644
> --- a/tests/docker/dockerfiles/debian.docker
> +++ b/tests/docker/dockerfiles/debian.docker
> @@ -1,10 +1,10 @@
>  # THIS FILE WAS AUTO-GENERATED
>  #
> -#  $ lcitool dockerfile --layers all debian-12 qemu
> +#  $ lcitool dockerfile --layers all debian-13 qemu
>  #
>  # https://gitlab.com/libvirt/libvirt-ci
>  
> -FROM docker.io/library/debian:12-slim
> +FROM docker.io/library/debian:13-slim
>  
>  RUN export DEBIAN_FRONTEND=noninteractive && \
>      apt-get update && \
> @@ -32,7 +32,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        git \
>                        hostname \
>                        libaio-dev \
> -                      libasan6 \
> +                      libasan8 \
>                        libasound2-dev \
>                        libattr1-dev \
>                        libbpf-dev \
> @@ -121,11 +121,12 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        python3-setuptools \
>                        python3-sphinx \
>                        python3-sphinx-rtd-theme \
> +                      python3-tomli \
>                        python3-venv \
>                        python3-wheel \
>                        python3-yaml \
>                        rpm2cpio \
> -                      rustc-web \
> +                      rustc \
>                        sed \
>                        socat \
>                        sparse \
> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> index 6f98a91277..f4d2721178 100755
> --- a/tests/lcitool/refresh
> +++ b/tests/lcitool/refresh
> @@ -105,7 +105,7 @@ alpine_extras = [
>  # Netmap still needs to be manually built as it is yet to be packaged
>  # into a distro. We also add cscope and gtags which are used in the CI
>  # test
> -debian12_extras = [
> +debian13_extras = [
>      "# netmap/cscope/global\n",
>      "RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
>      "  apt install -y --no-install-recommends \\\n",
> @@ -175,8 +175,8 @@ try:
>      generate_dockerfile("alpine", "alpine-321",
>                          trailer="".join(alpine_extras))
>      generate_dockerfile("centos9", "centos-stream-9")
> -    generate_dockerfile("debian", "debian-12",
> -                        trailer="".join(debian12_extras))
> +    generate_dockerfile("debian", "debian-13",
> +                        trailer="".join(debian13_extras))
>      generate_dockerfile("fedora", "fedora-41")
>      generate_dockerfile("opensuse-leap", "opensuse-leap-15")
>      generate_dockerfile("ubuntu2204", "ubuntu-2204",
> @@ -191,30 +191,32 @@ try:
>      #
>      # Cross compiling builds
>      #
> -    generate_dockerfile("debian-amd64-cross", "debian-12",
> +    generate_dockerfile("debian-amd64-cross", "debian-13",
>                          cross="x86_64",
>                          trailer=cross_build("x86_64-linux-gnu-",
>                                              "x86_64-softmmu,"
>                                              "x86_64-linux-user,"
>                                              "i386-softmmu,i386-linux-user"))
>  
> -    generate_dockerfile("debian-arm64-cross", "debian-12",
> +    generate_dockerfile("debian-arm64-cross", "debian-13",
>                          cross="aarch64",
>                          trailer=cross_build("aarch64-linux-gnu-",
>                                              "aarch64-softmmu,aarch64-linux-user"))
>  
> -    generate_dockerfile("debian-armhf-cross", "debian-12",
> +    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-12",
> +    generate_dockerfile("debian-i686-cross", "debian-13",
>                          cross="i686",
>                          trailer=cross_build("i686-linux-gnu-",
>                                              "x86_64-softmmu,"
>                                              "x86_64-linux-user,"
>                                              "i386-softmmu,i386-linux-user"))
>  
> +    # mips no longer supported in debian-13
> +    # https://www.debian.org/releases/trixie/release-notes/issues.html#mips-architectures-removed
>      generate_dockerfile("debian-mips64el-cross", "debian-12",
>                          cross="mips64el",
>                          trailer=cross_build("mips64el-linux-gnuabi64-",
> @@ -225,7 +227,7 @@ try:
>                          trailer=cross_build("mipsel-linux-gnu-",
>                                              "mipsel-softmmu,mipsel-linux-user"))
>  
> -    generate_dockerfile("debian-ppc64el-cross", "debian-12",
> +    generate_dockerfile("debian-ppc64el-cross", "debian-13",
>                          cross="ppc64le",
>                          trailer=cross_build("powerpc64le-linux-gnu-",
>                                              "ppc64-softmmu,ppc64-linux-user"))
> @@ -238,7 +240,7 @@ try:
>                          trailer=cross_build("riscv64-linux-gnu-",
>                                              "riscv64-softmmu,riscv64-linux-user"))
>  
> -    generate_dockerfile("debian-s390x-cross", "debian-12",
> +    generate_dockerfile("debian-s390x-cross", "debian-13",
>                          cross="s390x",
>                          trailer=cross_build("s390x-linux-gnu-",
>                                              "s390x-softmmu,s390x-linux-user"))
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread
 
- * [PATCH v2 17/27] tests/docker: add ENABLE_RUST environment
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (15 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 16/27] tests/lcitool: update to debian13 marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 18/27] tests/lcitool: enable rust & refresh marcandre.lureau
                   ` (10 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 tests/docker/common.rc | 7 +++++++
 1 file changed, 7 insertions(+)
diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index d202c0c666..52f01848a3 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -21,6 +21,12 @@ else
     DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"}
 fi
 
+if [ "$ENABLE_RUST" = "1" ]; then
+  enable_rust="--enable-rust"
+else
+  enable_rust=""
+fi
+
 requires_binary()
 {
     found=0
@@ -46,6 +52,7 @@ configure_qemu()
                  ${TARGET_LIST:+--target-list=${TARGET_LIST}} \
                  --prefix=$INSTALL_DIR \
                  $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
+                 $enable_rust \
                  $@"
     echo "Configure options:"
     echo $config_opts
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 18/27] tests/lcitool: enable rust & refresh
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (16 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 17/27] tests/docker: add ENABLE_RUST environment marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 14:38   ` Thomas Huth
  2025-09-24 12:04 ` [PATCH v2 19/27] configure: set the meson executable suffix/ext marcandre.lureau
                   ` (9 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Enable Rust on various distro images: alpine, centos, debian, fedora,
opensuse.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 tests/docker/dockerfiles/alpine.docker             |  2 ++
 tests/docker/dockerfiles/centos9.docker            |  2 ++
 tests/docker/dockerfiles/debian-amd64-cross.docker |  2 ++
 tests/docker/dockerfiles/debian-arm64-cross.docker |  2 ++
 tests/docker/dockerfiles/debian-armhf-cross.docker |  2 ++
 tests/docker/dockerfiles/debian-i686-cross.docker  |  2 ++
 .../dockerfiles/debian-mips64el-cross.docker       |  2 ++
 .../docker/dockerfiles/debian-mipsel-cross.docker  |  2 ++
 .../docker/dockerfiles/debian-ppc64el-cross.docker |  2 ++
 .../docker/dockerfiles/debian-riscv64-cross.docker |  2 ++
 tests/docker/dockerfiles/debian-s390x-cross.docker |  2 ++
 tests/docker/dockerfiles/debian.docker             |  2 ++
 .../docker/dockerfiles/fedora-rust-nightly.docker  |  2 ++
 tests/docker/dockerfiles/fedora.docker             |  2 ++
 tests/docker/dockerfiles/opensuse-leap.docker      |  2 ++
 tests/lcitool/refresh                              | 14 +++++++++++---
 16 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index b50fbc3dba..52adf9ccbb 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -138,3 +138,5 @@ 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/centos9.docker b/tests/docker/dockerfiles/centos9.docker
index e7fc688ee9..0674d77826 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -142,3 +142,5 @@ 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-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index 08621879dd..7f4674400d 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -188,3 +188,5 @@ 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-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 725cccbee1..c7cd54ee5c 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -187,3 +187,5 @@ 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-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index 50f7e0e986..627d41c6de 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -184,3 +184,5 @@ 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-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index f53b77cb62..4e8b3a8293 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -184,3 +184,5 @@ 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-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index cca04a4594..6e88777f76 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -183,3 +183,5 @@ 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-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index 59c6f92248..5f4e3fa963 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -183,3 +183,5 @@ 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-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index 09de265c26..dfa690616d 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -186,3 +186,5 @@ 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-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker
index 79ec37616d..1c3f597340 100644
--- a/tests/docker/dockerfiles/debian-riscv64-cross.docker
+++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker
@@ -89,3 +89,5 @@ 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-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index d7b2ca99ce..09a78c15ba 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -185,3 +185,5 @@ 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.docker b/tests/docker/dockerfiles/debian.docker
index 2696cf2167..8dd893be4b 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -175,3 +175,5 @@ 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/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index 167246f0f5..7d31c9f406 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -185,3 +185,5 @@ 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/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 56a1ad8a18..891a740fcb 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -162,3 +162,5 @@ 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/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index d71dbc30c7..75e1747780 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -148,3 +148,5 @@ 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 f4d2721178..34381dac8f 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -63,7 +63,8 @@ add_user_mapping = [
     "  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi\n"
 ]
 
-def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None):
+def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
+                        enable_rust=True):
     filename = Path(src_dir, "tests", "docker", "dockerfiles", host + ".docker")
     cmd = lcitool_cmd + ["dockerfile"]
     if cross is not None:
@@ -75,6 +76,8 @@ def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None):
     else:
         trailer = "\n".join(add_user_mapping)
 
+    if enable_rust:
+        trailer += "\nENV ENABLE_RUST 1\n"
     generate(filename, cmd, trailer)
 
 
@@ -180,7 +183,9 @@ try:
     generate_dockerfile("fedora", "fedora-41")
     generate_dockerfile("opensuse-leap", "opensuse-leap-15")
     generate_dockerfile("ubuntu2204", "ubuntu-2204",
-                        trailer="".join(ubuntu2204_rust_extras))
+                        trailer="".join(ubuntu2204_rust_extras),
+                        # https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318
+                        enable_rust=False)
 
     #
     # Non-fatal Rust-enabled build
@@ -249,7 +254,10 @@ try:
                         project='qemu,qemu-win-installer',
                         cross="mingw64",
                         trailer=cross_build("x86_64-w64-mingw32-",
-                                            "x86_64-softmmu"))
+                                            "x86_64-softmmu"),
+                        # linking with rust is buggy:
+                        # https://github.com/mesonbuild/meson/pull/14991
+                        enable_rust=False)
 
     #
     # Cirrus packages lists for GitLab
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 18/27] tests/lcitool: enable rust & refresh
  2025-09-24 12:04 ` [PATCH v2 18/27] tests/lcitool: enable rust & refresh marcandre.lureau
@ 2025-09-24 14:38   ` Thomas Huth
  0 siblings, 0 replies; 52+ messages in thread
From: Thomas Huth @ 2025-09-24 14:38 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On 24/09/2025 14.04, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Enable Rust on various distro images: alpine, centos, debian, fedora,
> opensuse.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>   tests/docker/dockerfiles/alpine.docker             |  2 ++
>   tests/docker/dockerfiles/centos9.docker            |  2 ++
>   tests/docker/dockerfiles/debian-amd64-cross.docker |  2 ++
>   tests/docker/dockerfiles/debian-arm64-cross.docker |  2 ++
>   tests/docker/dockerfiles/debian-armhf-cross.docker |  2 ++
>   tests/docker/dockerfiles/debian-i686-cross.docker  |  2 ++
>   .../dockerfiles/debian-mips64el-cross.docker       |  2 ++
>   .../docker/dockerfiles/debian-mipsel-cross.docker  |  2 ++
>   .../docker/dockerfiles/debian-ppc64el-cross.docker |  2 ++
>   .../docker/dockerfiles/debian-riscv64-cross.docker |  2 ++
>   tests/docker/dockerfiles/debian-s390x-cross.docker |  2 ++
>   tests/docker/dockerfiles/debian.docker             |  2 ++
>   .../docker/dockerfiles/fedora-rust-nightly.docker  |  2 ++
>   tests/docker/dockerfiles/fedora.docker             |  2 ++
>   tests/docker/dockerfiles/opensuse-leap.docker      |  2 ++
>   tests/lcitool/refresh                              | 14 +++++++++++---
>   16 files changed, 41 insertions(+), 3 deletions(-)
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 19/27] configure: set the meson executable suffix/ext
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (17 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 18/27] tests/lcitool: enable rust & refresh marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 13:45   ` Daniel P. Berrangé
  2025-09-24 12:04 ` [PATCH v2 20/27] tests/freebsd: enable Rust marcandre.lureau
                   ` (8 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
The 'rustfmt' target runs meson: it needs the correct path with
extension on Windows.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 configure | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index bf964947b8..78445cbb4b 100755
--- a/configure
+++ b/configure
@@ -1000,7 +1000,19 @@ $mkvenv ensuregroup --dir "${source_path}/python/wheels" \
 # We ignore PATH completely here: we want to use the venv's Meson
 # *exclusively*.
 
-meson="$(cd pyvenv/bin; pwd)/meson"
+# for msys2
+get_pwd() {
+    if pwd -W >/dev/null 2>&1; then
+        pwd -W
+    else
+        pwd
+    fi
+}
+
+meson="$(cd pyvenv/bin; get_pwd)/meson"
+if [ -f "$meson$EXESUF" ]; then
+  meson="$meson$EXESUF"
+fi
 
 # Conditionally ensure Sphinx is installed.
 
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 19/27] configure: set the meson executable suffix/ext
  2025-09-24 12:04 ` [PATCH v2 19/27] configure: set the meson executable suffix/ext marcandre.lureau
@ 2025-09-24 13:45   ` Daniel P. Berrangé
  0 siblings, 0 replies; 52+ messages in thread
From: Daniel P. Berrangé @ 2025-09-24 13:45 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée, Kohei Tokunaga
On Wed, Sep 24, 2025 at 04:04:16PM +0400, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> The 'rustfmt' target runs meson: it needs the correct path with
> extension on Windows.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  configure | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 20/27] tests/freebsd: enable Rust
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (18 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 19/27] configure: set the meson executable suffix/ext marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 21/27] meson: rust-bindgen limit allowlist-file to srcdir/include marcandre.lureau
                   ` (7 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .gitlab-ci.d/cirrus.yml | 2 +-
 tests/vm/freebsd        | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index 75b611418e..13a0bf5bb9 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -42,7 +42,7 @@ x64-freebsd-14-build:
     CIRRUS_VM_RAM: 8G
     UPDATE_COMMAND: pkg update; pkg upgrade -y
     INSTALL_COMMAND: pkg install -y
-    CONFIGURE_ARGS: --target-list-exclude=arm-softmmu,i386-softmmu,microblaze-softmmu,mips64el-softmmu,mipsel-softmmu,mips-softmmu,ppc-softmmu,sh4eb-softmmu,xtensa-softmmu
+    CONFIGURE_ARGS: --target-list-exclude=arm-softmmu,i386-softmmu,microblaze-softmmu,mips64el-softmmu,mipsel-softmmu,mips-softmmu,ppc-softmmu,sh4eb-softmmu,xtensa-softmmu --enable-rust
     TEST_TARGETS: check
 
 aarch64-macos-build:
diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index 2e96c9eba5..ea09b21fbc 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -40,7 +40,9 @@ class FreeBSDVM(basevm.BaseVM):
         tar -xf /dev/vtbd1;
         cd ../build;
         ../src/configure --extra-ldflags=-L/usr/local/lib \
-                         --extra-cflags=-I/usr/local/include {configure_opts};
+                         --extra-cflags=-I/usr/local/include \
+                         --enable-rust \
+                         {configure_opts};
         gmake --output-sync -j{jobs} {target} {verbose};
     """
 
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 21/27] meson: rust-bindgen limit allowlist-file to srcdir/include
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (19 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 20/27] tests/freebsd: enable Rust marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross marcandre.lureau
                   ` (6 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
gitlab CI restricts usage of directories for the build environment and
cache. Msys64 is installed under project root ($srcdir/msys64). This
confuses rust-bindgen allowlist-file which will generate bindings for
all the system include headers under msys64/.
blocklist-file is also too strict, as it prevents generating all the
recursively dependent types coming from system includes.
Instead, let's not use allowlist-file from the project root,
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 meson.build | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 9663725529..cf154fe67e 100644
--- a/meson.build
+++ b/meson.build
@@ -4237,8 +4237,7 @@ if have_rust
     '--no-layout-tests',
     '--no-prepend-enum-name',
     '--allowlist-file', meson.project_source_root() + '/include/.*',
-    '--allowlist-file', meson.project_source_root() + '/.*',
-    '--allowlist-file', meson.project_build_root() + '/.*'
+    '--allowlist-file', meson.project_build_root() + '/.*',
     ]
   if not rustfmt.found()
     if bindgen.version().version_compare('<0.65.0')
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (20 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 21/27] meson: rust-bindgen limit allowlist-file to srcdir/include marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-26 15:46   ` Alex Bennée
  2025-09-24 12:04 ` [PATCH v2 23/27] WIP: gitlab-ci: enable rust for msys2-64bit marcandre.lureau
                   ` (5 subsequent siblings)
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Unfortunately, debian 11 has bindgen version 0.55...
Should we install it with cargo install bindgen-cli?
Linking is still failing with -lrt, despite it being present in the link arguments...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 .gitlab-ci.d/buildtest.yml                               | 2 +-
 tests/docker/dockerfiles/debian-legacy-test-cross.docker | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index c3467200f4..34d8c1a496 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -389,7 +389,7 @@ build-legacy:
   variables:
     IMAGE: debian-legacy-test-cross
     TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user
-    CONFIGURE_ARGS: --disable-tools
+    CONFIGURE_ARGS: --disable-tools --enable-rust
     MAKE_CHECK_ARGS: check-tcg
 
 build-user-hexagon:
diff --git a/tests/docker/dockerfiles/debian-legacy-test-cross.docker b/tests/docker/dockerfiles/debian-legacy-test-cross.docker
index 5a6616b7d3..f9b31b0eab 100644
--- a/tests/docker/dockerfiles/debian-legacy-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-legacy-test-cross.docker
@@ -24,6 +24,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         apt install -y --no-install-recommends \
         bison \
+        cargo-web \
         ccache \
         clang  \
         flex \
@@ -36,14 +37,20 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         python3-pip \
         python3-setuptools \
         python3-venv \
-        python3-wheel && \
+        python3-wheel \
+        rustc-web \
+        && \
         dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
 
+ENV CARGO_HOME=/usr/local/cargo
+RUN cargo install bindgen-cli
+
 RUN /usr/bin/pip3 install tomli
 
 ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
 ENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
 ENV MAKE /usr/bin/make
+ENV PATH=$CARGO_HOME/bin:$PATH
 # As a final step configure the user (if env is defined)
 ARG USER
 ARG UID
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross
  2025-09-24 12:04 ` [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross marcandre.lureau
@ 2025-09-26 15:46   ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-26 15:46 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Unfortunately, debian 11 has bindgen version 0.55...
> Should we install it with cargo install bindgen-cli?
I wouldn't bother. This only exists for older targets that are either
linux-user or unlikely to get a rust version of any of their device
backends.
>
> Linking is still failing with -lrt, despite it being present in the link arguments...
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  .gitlab-ci.d/buildtest.yml                               | 2 +-
>  tests/docker/dockerfiles/debian-legacy-test-cross.docker | 9 ++++++++-
>  2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index c3467200f4..34d8c1a496 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -389,7 +389,7 @@ build-legacy:
>    variables:
>      IMAGE: debian-legacy-test-cross
>      TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user
> -    CONFIGURE_ARGS: --disable-tools
> +    CONFIGURE_ARGS: --disable-tools --enable-rust
>      MAKE_CHECK_ARGS: check-tcg
>  
>  build-user-hexagon:
> diff --git a/tests/docker/dockerfiles/debian-legacy-test-cross.docker b/tests/docker/dockerfiles/debian-legacy-test-cross.docker
> index 5a6616b7d3..f9b31b0eab 100644
> --- a/tests/docker/dockerfiles/debian-legacy-test-cross.docker
> +++ b/tests/docker/dockerfiles/debian-legacy-test-cross.docker
> @@ -24,6 +24,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>  RUN DEBIAN_FRONTEND=noninteractive eatmydata \
>          apt install -y --no-install-recommends \
>          bison \
> +        cargo-web \
>          ccache \
>          clang  \
>          flex \
> @@ -36,14 +37,20 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
>          python3-pip \
>          python3-setuptools \
>          python3-venv \
> -        python3-wheel && \
> +        python3-wheel \
> +        rustc-web \
> +        && \
>          dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
>  
> +ENV CARGO_HOME=/usr/local/cargo
> +RUN cargo install bindgen-cli
> +
>  RUN /usr/bin/pip3 install tomli
>  
>  ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
>  ENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
>  ENV MAKE /usr/bin/make
> +ENV PATH=$CARGO_HOME/bin:$PATH
>  # As a final step configure the user (if env is defined)
>  ARG USER
>  ARG UID
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread
 
- * [PATCH v2 23/27] WIP: gitlab-ci: enable rust for msys2-64bit
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (21 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 24/27] WIP: cirrus/macos: enable Rust marcandre.lureau
                   ` (4 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Currently fails with meson issue:
https://github.com/mesonbuild/meson/pull/14991
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 .gitlab-ci.d/windows.yml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index 1e6a01bd9a..51297d3647 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -17,7 +17,7 @@ msys2-64bit:
     # This feature doesn't (currently) work with PowerShell, it stops
     # the echo'ing of commands being run and doesn't show any timing
     FF_SCRIPT_SECTIONS: 0
-    CONFIGURE_ARGS: --disable-system --enable-tools -Ddebug=false -Doptimization=0
+    CONFIGURE_ARGS: --disable-system --enable-tools -Ddebug=false -Doptimization=0 --enable-rust
     # The Windows git is a bit older so override the default
     GIT_FETCH_EXTRA_FLAGS: --no-tags --prune --quiet
   artifacts:
@@ -76,6 +76,7 @@ msys2-64bit:
       bison diffutils flex
       git grep make sed
       mingw-w64-x86_64-binutils
+      mingw-w64-x86_64-ca-certificates
       mingw-w64-x86_64-ccache
       mingw-w64-x86_64-curl-winssl
       mingw-w64-x86_64-gcc
@@ -86,6 +87,9 @@ msys2-64bit:
       mingw-w64-x86_64-pixman
       mingw-w64-x86_64-pkgconf
       mingw-w64-x86_64-python
+      mingw-w64-x86_64-python-certifi
+      mingw-w64-x86_64-rust
+      mingw-w64-x86_64-rust-bindgen
       mingw-w64-x86_64-zstd"
   - Write-Output "Running build at $(Get-Date -Format u)"
   - $env:JOBS = $(.\msys64\usr\bin\bash -lc nproc)
@@ -96,10 +100,12 @@ msys2-64bit:
   - $env:CCACHE_MAXSIZE = "500M"
   - $env:CCACHE_DEPEND = 1 # cache misses are too expensive with preprocessor mode
   - $env:CC = "ccache gcc"
+  - $env:LIBCLANG_PATH = Join-Path -Path $PWD.Path -ChildPath "msys64/mingw64/bin"
   - mkdir build
   - cd build
   - ..\msys64\usr\bin\bash -lc "ccache --zero-stats"
   - ..\msys64\usr\bin\bash -lc "../configure $CONFIGURE_ARGS"
+  - ..\msys64\usr\bin\bash -lc "make V=1 rust/util/bindings.inc.rs"
   - ..\msys64\usr\bin\bash -lc "make -j$env:JOBS"
   - ..\msys64\usr\bin\bash -lc "make check MTESTARGS='$TEST_ARGS' || { cat meson-logs/testlog.txt; exit 1; } ;"
   - ..\msys64\usr\bin\bash -lc "ccache --show-stats"
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 24/27] WIP: cirrus/macos: enable Rust
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (22 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 23/27] WIP: gitlab-ci: enable rust for msys2-64bit marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:04 ` [PATCH v2 25/27] RFC: build-sys: deprecate mips host marcandre.lureau
                   ` (3 subsequent siblings)
  27 siblings, 0 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Currently fails with a linking issue:
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: ld: warning: ignoring duplicate libraries: '-lSystem', '-lc', '-llibgio-2.0.dylib', '-llibglib-2.0.dylib', '-llibgmodule-2.0.dylib', '-llibgnutls.dylib', '-llibgobject-2.0.dylib', '-llibintl.dylib', '-llibqemuutil.a', '-lm', 'libqemuutil.a'
          ld: library 'libqemuutil.a' not found
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: aborting due to 1 previous error
Fixed in upcoming meson:
https://github.com/mesonbuild/meson/pull/15024
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 .gitlab-ci.d/cirrus.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index 13a0bf5bb9..17d52e8db3 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -56,5 +56,5 @@ aarch64-macos-build:
     INSTALL_COMMAND: brew install
     PATH_EXTRA: /opt/homebrew/ccache/libexec:/opt/homebrew/gettext/bin
     PKG_CONFIG_PATH: /opt/homebrew/curl/lib/pkgconfig:/opt/homebrew/ncurses/lib/pkgconfig:/opt/homebrew/readline/lib/pkgconfig
-    CONFIGURE_ARGS: --target-list-exclude=arm-softmmu,i386-softmmu,microblazeel-softmmu,mips64-softmmu,mipsel-softmmu,mips-softmmu,ppc-softmmu,sh4-softmmu,xtensaeb-softmmu
+    CONFIGURE_ARGS: --target-list-exclude=arm-softmmu,i386-softmmu,microblazeel-softmmu,mips64-softmmu,mipsel-softmmu,mips-softmmu,ppc-softmmu,sh4-softmmu,xtensaeb-softmmu --enable-rust
     TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * [PATCH v2 25/27] RFC: build-sys: deprecate mips host
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (23 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 24/27] WIP: cirrus/macos: enable Rust marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-24 12:21   ` Philippe Mathieu-Daudé
  2025-09-24 12:24   ` Philippe Mathieu-Daudé
  2025-09-24 12:04 ` [PATCH v2 26/27] build-sys: pass -fvisibility=default for wasm bindgen marcandre.lureau
                   ` (2 subsequent siblings)
  27 siblings, 2 replies; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 docs/about/build-platforms.rst | 2 --
 docs/about/deprecated.rst      | 9 +++------
 meson.build                    | 8 ++++++++
 3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 0160d3adb8..798cb4631d 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -44,8 +44,6 @@ Those hosts are officially supported, with various accelerators:
      - Accelerators
    * - Arm
      - hvf (64 bit only), kvm (64 bit only), tcg, xen
-   * - MIPS (64 bit little endian only)
-     - kvm, tcg
    * - PPC
      - kvm, tcg
    * - RISC-V
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index aa300bbd50..285a8354f6 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -172,8 +172,8 @@ This argument has always been ignored.
 Host Architectures
 ------------------
 
-Big endian MIPS since 7.2; 32-bit little endian MIPS since 9.2
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+Big endian MIPS since 7.2; 32-bit little endian MIPS since 9.2, MIPS since 11.0
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 As Debian 10 ("Buster") moved into LTS the big endian 32 bit version of
 MIPS moved out of support making it hard to maintain our
@@ -181,10 +181,7 @@ cross-compilation CI tests of the architecture. As we no longer have
 CI coverage support may bitrot away before the deprecation process
 completes.
 
-Likewise, the little endian variant of 32 bit MIPS is not supported by
-Debian 13 ("Trixie") and newer.
-
-64 bit little endian MIPS is still a supported host architecture.
+Likewise, MIPS is not supported by Debian 13 ("Trixie") and newer.
 
 System emulation on 32-bit x86 hosts (since 8.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/meson.build b/meson.build
index cf154fe67e..2f134c9e75 100644
--- a/meson.build
+++ b/meson.build
@@ -5039,6 +5039,14 @@ elif host_long_bits < 64
   message()
   message('Support for 32-bit CPU host architecture ' + cpu + ' is going')
   message('to be dropped in a future QEMU release.')
+elif host_arch == 'mips'
+  message()
+  warning('DEPRECATED HOST CPU')
+  message()
+  message('Support for CPU host architecture ' + cpu + ' is going to be')
+  message('dropped as soon as the QEMU project stops supporting Debian 12')
+  message('("Bookworm"). Going forward, the QEMU project will not guarantee')
+  message('that QEMU will compile or work on this host CPU.')
 endif
 
 if not supported_oses.contains(host_os)
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 25/27] RFC: build-sys: deprecate mips host
  2025-09-24 12:04 ` [PATCH v2 25/27] RFC: build-sys: deprecate mips host marcandre.lureau
@ 2025-09-24 12:21   ` Philippe Mathieu-Daudé
  2025-09-24 12:24   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 52+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-09-24 12:21 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
On 24/9/25 14:04, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>   docs/about/build-platforms.rst | 2 --
>   docs/about/deprecated.rst      | 9 +++------
>   meson.build                    | 8 ++++++++
>   3 files changed, 11 insertions(+), 8 deletions(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 25/27] RFC: build-sys: deprecate mips host
  2025-09-24 12:04 ` [PATCH v2 25/27] RFC: build-sys: deprecate mips host marcandre.lureau
  2025-09-24 12:21   ` Philippe Mathieu-Daudé
@ 2025-09-24 12:24   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 52+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-09-24 12:24 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
On 24/9/25 14:04, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>   docs/about/build-platforms.rst | 2 --
>   docs/about/deprecated.rst      | 9 +++------
>   meson.build                    | 8 ++++++++
>   3 files changed, 11 insertions(+), 8 deletions(-)
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index aa300bbd50..285a8354f6 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -172,8 +172,8 @@ This argument has always been ignored.
>   Host Architectures
>   ------------------
>   
> -Big endian MIPS since 7.2; 32-bit little endian MIPS since 9.2
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +Big endian MIPS since 7.2; 32-bit little endian MIPS since 9.2, MIPS since 11.0
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Maybe just: "MIPS (since 11.0)".
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
- * [PATCH v2 26/27] build-sys: pass -fvisibility=default for wasm bindgen
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (24 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 25/27] RFC: build-sys: deprecate mips host marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-29  8:58   ` Kohei Tokunaga
  2025-09-24 12:04 ` [PATCH v2 27/27] WIP: enable rust for wasm/emscripten marcandre.lureau
  2025-09-27 17:17 ` [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely Alex Bennée
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Otherwise, no functions are generated:
https://github.com/rust-lang/rust-bindgen/issues/2989
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 meson.build                    | 4 ++++
 rust/bql/meson.build           | 1 +
 rust/chardev/meson.build       | 1 +
 rust/hw/char/pl011/meson.build | 1 +
 rust/hw/core/meson.build       | 1 +
 rust/migration/meson.build     | 3 ++-
 rust/qom/meson.build           | 1 +
 rust/system/meson.build        | 1 +
 rust/util/meson.build          | 1 +
 9 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 2f134c9e75..cd2b5fa863 100644
--- a/meson.build
+++ b/meson.build
@@ -4255,6 +4255,10 @@ if have_rust
   else
     bindgen_args_common += ['--merge-extern-blocks']
   endif
+  bindgen_c_args = []
+  if host_arch == 'wasm32'
+    bindgen_c_args += ['-fvisibility=default']
+  endif
   subdir('rust')
 endif
 
diff --git a/rust/bql/meson.build b/rust/bql/meson.build
index f369209dfd..d020a519bf 100644
--- a/rust/bql/meson.build
+++ b/rust/bql/meson.build
@@ -21,6 +21,7 @@ _bql_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common,
+  c_args: bindgen_c_args,
 )
 
 _bql_rs = static_library(
diff --git a/rust/chardev/meson.build b/rust/chardev/meson.build
index 370895c111..e7ce02b3bc 100644
--- a/rust/chardev/meson.build
+++ b/rust/chardev/meson.build
@@ -20,6 +20,7 @@ _chardev_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common + _chardev_bindgen_args,
+  c_args: bindgen_c_args,
 )
 
 _chardev_rs = static_library(
diff --git a/rust/hw/char/pl011/meson.build b/rust/hw/char/pl011/meson.build
index ffdc8af53f..a33f32906e 100644
--- a/rust/hw/char/pl011/meson.build
+++ b/rust/hw/char/pl011/meson.build
@@ -12,6 +12,7 @@ _libpl011_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common,
+  c_args: bindgen_c_args,
 )
 
 _libpl011_rs = static_library(
diff --git a/rust/hw/core/meson.build b/rust/hw/core/meson.build
index 81d8c77f9a..e1ae95ed61 100644
--- a/rust/hw/core/meson.build
+++ b/rust/hw/core/meson.build
@@ -41,6 +41,7 @@ _hwcore_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common + _hwcore_bindgen_args,
+  c_args: bindgen_c_args,
 )
 
 _hwcore_rs = static_library(
diff --git a/rust/migration/meson.build b/rust/migration/meson.build
index 5e820d43f5..4f8e4ec9d3 100644
--- a/rust/migration/meson.build
+++ b/rust/migration/meson.build
@@ -22,7 +22,8 @@ _migration_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common + _migration_bindgen_args,
-  )
+  c_args: bindgen_c_args,
+)
 
 _migration_rs = static_library(
   'migration',
diff --git a/rust/qom/meson.build b/rust/qom/meson.build
index 40c51b71b2..9df09f62b4 100644
--- a/rust/qom/meson.build
+++ b/rust/qom/meson.build
@@ -12,6 +12,7 @@ _qom_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common,
+  c_args: bindgen_c_args,
 )
 
 _qom_rs = static_library(
diff --git a/rust/system/meson.build b/rust/system/meson.build
index 3ec140de01..0859f39745 100644
--- a/rust/system/meson.build
+++ b/rust/system/meson.build
@@ -20,6 +20,7 @@ _system_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common + _system_bindgen_args,
+  c_args: bindgen_c_args,
 )
 
 _system_rs = static_library(
diff --git a/rust/util/meson.build b/rust/util/meson.build
index 87a893673d..9dcde4fae0 100644
--- a/rust/util/meson.build
+++ b/rust/util/meson.build
@@ -22,6 +22,7 @@ _util_bindings_inc_rs = rust.bindgen(
   include_directories: bindings_incdir,
   bindgen_version: ['>=0.60.0'],
   args: bindgen_args_common + _util_bindgen_args,
+  c_args: bindgen_c_args,
 )
 
 _util_rs = static_library(
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 26/27] build-sys: pass -fvisibility=default for wasm bindgen
  2025-09-24 12:04 ` [PATCH v2 26/27] build-sys: pass -fvisibility=default for wasm bindgen marcandre.lureau
@ 2025-09-29  8:58   ` Kohei Tokunaga
  0 siblings, 0 replies; 52+ messages in thread
From: Kohei Tokunaga @ 2025-09-29  8:58 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée
[-- Attachment #1: Type: text/plain, Size: 4650 bytes --]
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Otherwise, no functions are generated:
> https://github.com/rust-lang/rust-bindgen/issues/2989
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  meson.build                    | 4 ++++
>  rust/bql/meson.build           | 1 +
>  rust/chardev/meson.build       | 1 +
>  rust/hw/char/pl011/meson.build | 1 +
>  rust/hw/core/meson.build       | 1 +
>  rust/migration/meson.build     | 3 ++-
>  rust/qom/meson.build           | 1 +
>  rust/system/meson.build        | 1 +
>  rust/util/meson.build          | 1 +
>  9 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/meson.build b/meson.build
> index 2f134c9e75..cd2b5fa863 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -4255,6 +4255,10 @@ if have_rust
>    else
>      bindgen_args_common += ['--merge-extern-blocks']
>    endif
> +  bindgen_c_args = []
> +  if host_arch == 'wasm32'
> +    bindgen_c_args += ['-fvisibility=default']
> +  endif
>    subdir('rust')
>  endif
>
> diff --git a/rust/bql/meson.build b/rust/bql/meson.build
> index f369209dfd..d020a519bf 100644
> --- a/rust/bql/meson.build
> +++ b/rust/bql/meson.build
> @@ -21,6 +21,7 @@ _bql_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common,
> +  c_args: bindgen_c_args,
>  )
>
>  _bql_rs = static_library(
> diff --git a/rust/chardev/meson.build b/rust/chardev/meson.build
> index 370895c111..e7ce02b3bc 100644
> --- a/rust/chardev/meson.build
> +++ b/rust/chardev/meson.build
> @@ -20,6 +20,7 @@ _chardev_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common + _chardev_bindgen_args,
> +  c_args: bindgen_c_args,
>  )
>
>  _chardev_rs = static_library(
> diff --git a/rust/hw/char/pl011/meson.build
b/rust/hw/char/pl011/meson.build
> index ffdc8af53f..a33f32906e 100644
> --- a/rust/hw/char/pl011/meson.build
> +++ b/rust/hw/char/pl011/meson.build
> @@ -12,6 +12,7 @@ _libpl011_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common,
> +  c_args: bindgen_c_args,
>  )
>
>  _libpl011_rs = static_library(
> diff --git a/rust/hw/core/meson.build b/rust/hw/core/meson.build
> index 81d8c77f9a..e1ae95ed61 100644
> --- a/rust/hw/core/meson.build
> +++ b/rust/hw/core/meson.build
> @@ -41,6 +41,7 @@ _hwcore_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common + _hwcore_bindgen_args,
> +  c_args: bindgen_c_args,
>  )
>
>  _hwcore_rs = static_library(
> diff --git a/rust/migration/meson.build b/rust/migration/meson.build
> index 5e820d43f5..4f8e4ec9d3 100644
> --- a/rust/migration/meson.build
> +++ b/rust/migration/meson.build
> @@ -22,7 +22,8 @@ _migration_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common + _migration_bindgen_args,
> -  )
> +  c_args: bindgen_c_args,
> +)
>
>  _migration_rs = static_library(
>    'migration',
> diff --git a/rust/qom/meson.build b/rust/qom/meson.build
> index 40c51b71b2..9df09f62b4 100644
> --- a/rust/qom/meson.build
> +++ b/rust/qom/meson.build
> @@ -12,6 +12,7 @@ _qom_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common,
> +  c_args: bindgen_c_args,
>  )
>
>  _qom_rs = static_library(
> diff --git a/rust/system/meson.build b/rust/system/meson.build
> index 3ec140de01..0859f39745 100644
> --- a/rust/system/meson.build
> +++ b/rust/system/meson.build
> @@ -20,6 +20,7 @@ _system_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common + _system_bindgen_args,
> +  c_args: bindgen_c_args,
>  )
>
>  _system_rs = static_library(
> diff --git a/rust/util/meson.build b/rust/util/meson.build
> index 87a893673d..9dcde4fae0 100644
> --- a/rust/util/meson.build
> +++ b/rust/util/meson.build
> @@ -22,6 +22,7 @@ _util_bindings_inc_rs = rust.bindgen(
>    include_directories: bindings_incdir,
>    bindgen_version: ['>=0.60.0'],
>    args: bindgen_args_common + _util_bindgen_args,
> +  c_args: bindgen_c_args,
>  )
>
>  _util_rs = static_library(
Reviewed-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
Regards,
Kohei Tokunaga
[-- Attachment #2: Type: text/html, Size: 5868 bytes --]
^ permalink raw reply	[flat|nested] 52+ messages in thread
 
- * [PATCH v2 27/27] WIP: enable rust for wasm/emscripten
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (25 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 26/27] build-sys: pass -fvisibility=default for wasm bindgen marcandre.lureau
@ 2025-09-24 12:04 ` marcandre.lureau
  2025-09-29  8:52   ` Kohei Tokunaga
  2025-09-27 17:17 ` [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely Alex Bennée
  27 siblings, 1 reply; 52+ messages in thread
From: marcandre.lureau @ 2025-09-24 12:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Marc-André Lureau,
	Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Alex Bennée,
	Kohei Tokunaga
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Note that Debian packaging & testing is currently lacking:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=979665 Furthermore,
emsdk is based on Ubuntu Jammy. So we use rustup for now.
bindgen doesn't use clang & libclang from /emsdk, it probably should but
libclang is missing https://github.com/emscripten-core/emsdk/issues/1605
Finally, there is a linking issue I don't understand and I can't solve yet:
wasm-ld: error: unable to find library -llibqemuutil.a
...
A manual test like this work:
emmake rustc -v --target wasm32-unknown-emscripten -C
linker=/emsdk/upstream/emscripten/emcc --crate-type bin --edition=2021
-C link-arg=-m32 test.rs -Clink-arg=libfoo.a
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 configure                                     |  4 +++
 .gitlab-ci.d/buildtest-template.yml           |  2 +-
 .gitlab-ci.d/buildtest.yml                    |  2 +-
 .../dockerfiles/emsdk-wasm32-cross.docker     | 27 ++++++++++++++++++-
 tests/docker/test-wasm                        | 12 +++++++++
 5 files changed, 44 insertions(+), 3 deletions(-)
 create mode 100755 tests/docker/test-wasm
diff --git a/configure b/configure
index 78445cbb4b..fdae1b4133 100755
--- a/configure
+++ b/configure
@@ -1228,6 +1228,10 @@ if test "$rust" != disabled && test -z "$rust_target_triple"; then
     rust_machine=apple
     ;;
 
+  emscripten)
+    rust_arch=wasm32
+    ;;
+
   linux)
     # detect android/glibc/musl
     if check_define __ANDROID__; then
diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
index d866cb12bb..307b927927 100644
--- a/.gitlab-ci.d/buildtest-template.yml
+++ b/.gitlab-ci.d/buildtest-template.yml
@@ -148,5 +148,5 @@
       fi || exit 1;
     - section_end configure
     - section_start build "Building QEMU"
-    - emmake make -j"$JOBS"
+    - CPATH="$CPATH:/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl:/emsdk/upstream/emscripten/cache/sysroot/include/compat:/emsdk/upstream/lib/clang/18/include:/emsdk/upstream/emscripten/cache/sysroot/include" emmake make -j"$JOBS"
     - section_end build
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 34d8c1a496..dc0a0282b2 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -794,4 +794,4 @@ build-wasm:
     - job: wasm-emsdk-cross-container
   variables:
     IMAGE: emsdk-wasm32-cross
-    CONFIGURE_ARGS: --static --disable-tools --enable-debug --enable-tcg-interpreter
+    CONFIGURE_ARGS: --static --disable-tools --enable-debug --enable-tcg-interpreter --enable-rust
diff --git a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
index 6b1642a207..85d0a0fd8d 100644
--- a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
+++ b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker
@@ -17,10 +17,11 @@ ENV EM_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
 ENV CFLAGS="-O3 -pthread -DWASM_BIGINT"
 ENV CXXFLAGS="$CFLAGS"
 ENV LDFLAGS="-sWASM_BIGINT -sASYNCIFY=1 -L$TARGET/lib"
-RUN apt-get update && apt-get install -y \
+RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \
     autoconf \
     build-essential \
     libglib2.0-dev \
+    libfdt-dev \
     libtool \
     pkgconf \
     ninja-build \
@@ -46,6 +47,30 @@ pkgconfig = ['pkg-config', '--static']
 EOT
 EOF
 
+RUN apt-get update && apt-get install -y wget clang libclang-dev
+ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
+ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
+ENV RUSTDOC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustdoc
+ENV CARGO=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo
+RUN set -eux && \
+  rustArch='x86_64-unknown-linux-gnu' && \
+  rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
+  url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
+  wget "$url" && \
+  echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
+  chmod +x rustup-init && \
+  ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
+  /usr/local/cargo/bin/rustup target add wasm32-unknown-emscripten && \
+  chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
+  /usr/local/cargo/bin/rustup --version && \
+  /usr/local/cargo/bin/rustup run nightly cargo --version && \
+  /usr/local/cargo/bin/rustup run nightly rustc --version && \
+  test "$CARGO" = "$(/usr/local/cargo/bin/rustup +nightly which cargo)" && \
+  test "$RUSTDOC" = "$(/usr/local/cargo/bin/rustup +nightly which rustdoc)" && \
+  test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
+ENV PATH=$CARGO_HOME/bin:$PATH
+RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
+
 FROM build-base AS zlib-dev
 ARG ZLIB_VERSION
 RUN mkdir -p /zlib
diff --git a/tests/docker/test-wasm b/tests/docker/test-wasm
new file mode 100755
index 0000000000..5f3e4c401c
--- /dev/null
+++ b/tests/docker/test-wasm
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. common.rc
+
+cd "$BUILD_DIR"
+
+export CPATH="$CPATH:/emsdk/upstream/emscripten/cache/sysroot/include/fakesdl:/emsdk/upstream/emscripten/cache/sysroot/include/compat:/emsdk/upstream/lib/clang/18/include:/emsdk/upstream/emscripten/cache/sysroot/include"
+
+emconfigure $QEMU_SRC/configure --disable-docs --static --disable-tools --enable-debug --enable-tcg-interpreter --disable-sdl --enable-rust
+emmake make $MAKEFLAGS
-- 
2.51.0
^ permalink raw reply related	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 27/27] WIP: enable rust for wasm/emscripten
  2025-09-24 12:04 ` [PATCH v2 27/27] WIP: enable rust for wasm/emscripten marcandre.lureau
@ 2025-09-29  8:52   ` Kohei Tokunaga
  2025-10-01 11:30     ` Paolo Bonzini
  0 siblings, 1 reply; 52+ messages in thread
From: Kohei Tokunaga @ 2025-09-29  8:52 UTC (permalink / raw)
  To: marcandre.lureau, qemu-devel
  Cc: Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée
[-- Attachment #1: Type: text/plain, Size: 1483 bytes --]
Hi Marc-André,
Thank you for working on this patch.
> wasm-ld: error: unable to find library -llibqemuutil.a
This issue looks similar to the one in "[PATCH v2 24/27] WIP: cirrus/macos:
enable Rust" so I tried the upcoming meson change[1] mentioned in that
patch for the wasm build. By also applying a patch for disabling the
"verbatim" modifier for the Emscripten build[2], I was able to avoid the
error.
However the test build still fails with the following error[3] which I'm
currently investigating. It seems that meson invokes rustc with duplicated
linker flags (e.g. I saw three "-lstatic:-bundle=glib-2.0" flags in a single
rustc invocation) and rustc doesn't seem capable of handling them.
> error: overriding linking modifiers from command line is not supported
Aside from the test build, I also tried building the qemu binary. The build
succeeded after rebuilding the Rust standard library as suggested in the
documentation[4]. If you're interested, I've stored the patch to [5].
[1] https://github.com/mesonbuild/meson/pull/15024
[2]
https://github.com/ktock/meson/commit/afd0366d1fafe0cee2915d4b60bc2b523e3c1c02
[3] https://gitlab.com/ktock/qemu/-/jobs/11529682431#L3287
[4]
https://github.com/rust-lang/rust/blob/5b9007bfc358817cf066ee27c6b440440727d3a7/src/doc/rustc/src/platform-support/wasm32-unknown-emscripten.md#emscripten-abi-compatibility
[5] https://gitlab.com/ktock/qemu/-/commits/test-rust-emscripten-c
Regards,
Kohei
[-- Attachment #2: Type: text/html, Size: 2165 bytes --]
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 27/27] WIP: enable rust for wasm/emscripten
  2025-09-29  8:52   ` Kohei Tokunaga
@ 2025-10-01 11:30     ` Paolo Bonzini
  2025-10-02  0:00       ` Kohei Tokunaga
  0 siblings, 1 reply; 52+ messages in thread
From: Paolo Bonzini @ 2025-10-01 11:30 UTC (permalink / raw)
  To: Kohei Tokunaga, marcandre.lureau, qemu-devel
  Cc: Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Alex Bennée
On 9/29/25 10:52, Kohei Tokunaga wrote:
> Hi Marc-André,
> 
> Thank you for working on this patch.
> 
>  > wasm-ld: error: unable to find library -llibqemuutil.a
> 
> This issue looks similar to the one in "[PATCH v2 24/27] WIP: cirrus/macos:
> enable Rust" so I tried the upcoming meson change[1] mentioned in that
> patch for the wasm build. By also applying a patch for disabling the
> "verbatim" modifier for the Emscripten build[2], I was able to avoid the
> error.
Hi Kohei,
can you please open a PR for this patch?
Thanks,
Paolo
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 27/27] WIP: enable rust for wasm/emscripten
  2025-10-01 11:30     ` Paolo Bonzini
@ 2025-10-02  0:00       ` Kohei Tokunaga
  0 siblings, 0 replies; 52+ messages in thread
From: Kohei Tokunaga @ 2025-10-02  0:00 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel
  Cc: marcandre.lureau, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Alex Bennée
[-- Attachment #1: Type: text/plain, Size: 142 bytes --]
Hi Paolo,
> can you please open a PR for this patch?
Sure, I've opened a PR:
https://github.com/mesonbuild/meson/pull/15074
Regards,
Kohei
[-- Attachment #2: Type: text/html, Size: 277 bytes --]
^ permalink raw reply	[flat|nested] 52+ messages in thread 
 
 
 
- * Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
  2025-09-24 12:03 [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely marcandre.lureau
                   ` (26 preceding siblings ...)
  2025-09-24 12:04 ` [PATCH v2 27/27] WIP: enable rust for wasm/emscripten marcandre.lureau
@ 2025-09-27 17:17 ` Alex Bennée
  2025-09-30  9:08   ` Paolo Bonzini
  2025-09-30 12:05   ` Marc-André Lureau
  27 siblings, 2 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-27 17:17 UTC (permalink / raw)
  To: marcandre.lureau
  Cc: qemu-devel, Paolo Bonzini, Kyle Evans, Yonggang Luo, Li-Wen Hsu,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Warner Losh, Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel,
	qemu-rust, Kohei Tokunaga
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Hi,
>
> This patch series fixes a number of issues with the build system and CI and
> enable Rust for many of our jobs, getting us closer to enable Rust by default.
>
> emscripten is difficult to enable, help welcome.
Also I think:
  https://gitlab.com/stsquad/qemu/-/pipelines/2065603411
And the:
  debian-armhf-cross
  debian-i686-cross
  debian-mipsel-cross
  debian-mips64el-cross
  debian-ppc64el-cross
  debian-riscv64-cross
cross builds fail.
>
> v2:
> - add a rust-to-clang-target-test.sh configure script
> - drop "RFC: configure: use the same machine as the host triple"
> - replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
> - start tackling emscripten
> - fix mis-placed submodule update
> - other minor changes, commit message tweaks, bz links
> - add r-b tags
>
> Marc-André Lureau (27):
>   build-sys: require -lrt when no shm_open() in std libs
>   gitlab-ci: fix 'needs' property type must be array
>   scripts/archive-source: speed up downloading subprojects
>   scripts/archive-source: silence subprojects downloads
>   scripts/archive-source: use a bash array
>   configure: fix rust meson configuration
>   configure: set the bindgen cross target
>   tests/docker/common: print errors to stderr
>   tests/docker: use fully qualified image name for emsdk
>   tests/docker/common: print meson log on configure failure
>   build-sys: cfi_debug and safe_stack are not compatible
>   lcitool: update, switch to f41
>   lcitool/qemu: include libclang-rt for TSAN
>   lcitool/alpine: workaround bindgen issue
>   tests/lcitool: add missing rust-std dep
>   tests/lcitool: update to debian13
>   tests/docker: add ENABLE_RUST environment
>   tests/lcitool: enable rust & refresh
>   configure: set the meson executable suffix/ext
>   tests/freebsd: enable Rust
>   meson: rust-bindgen limit allowlist-file to srcdir/include
>   RFC: tests/docker: add rust to debian-legacy-test-cross
>   WIP: gitlab-ci: enable rust for msys2-64bit
>   WIP: cirrus/macos: enable Rust
>   RFC: build-sys: deprecate mips host
>   build-sys: pass -fvisibility=default for wasm bindgen
>   WIP: enable rust for wasm/emscripten
>
>  docs/about/build-platforms.rst                |  2 -
>  docs/about/deprecated.rst                     |  9 +--
>  configure                                     | 27 +++++++-
>  meson.build                                   | 34 +++++++---
>  .gitlab-ci.d/buildtest-template.yml           |  2 +-
>  .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
>  .gitlab-ci.d/cirrus.yml                       |  4 +-
>  .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
>  .gitlab-ci.d/static_checks.yml                |  6 +-
>  .gitlab-ci.d/windows.yml                      |  8 ++-
>  rust/bql/meson.build                          |  1 +
>  rust/chardev/meson.build                      |  1 +
>  rust/hw/char/pl011/meson.build                |  1 +
>  rust/hw/core/meson.build                      |  1 +
>  rust/migration/meson.build                    |  3 +-
>  rust/qom/meson.build                          |  1 +
>  rust/system/meson.build                       |  1 +
>  rust/util/meson.build                         |  1 +
>  scripts/archive-source.sh                     | 33 +++++++---
>  .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
>  .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
>  scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
>  scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
>  tests/docker/common.rc                        | 11 +++-
>  tests/docker/dockerfiles/alpine.docker        |  6 +-
>  tests/docker/dockerfiles/centos9.docker       |  4 ++
>  .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
>  .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
>  .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
>  .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
>  .../debian-legacy-test-cross.docker           |  9 ++-
>  .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
>  .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
>  .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
>  .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
>  .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
>  tests/docker/dockerfiles/debian.docker        | 18 +++--
>  .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
>  .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
>  .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
>  tests/docker/dockerfiles/fedora.docker        | 18 +++--
>  tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
>  tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
>  tests/docker/test-wasm                        | 12 ++++
>  tests/lcitool/libvirt-ci                      |  2 +-
>  tests/lcitool/projects/qemu.yml               |  3 +-
>  tests/lcitool/refresh                         | 48 +++++++++-----
>  tests/vm/freebsd                              |  4 +-
>  48 files changed, 531 insertions(+), 183 deletions(-)
>  create mode 100755 scripts/rust-to-clang-target-test.sh
>  create mode 100644 scripts/rust-to-clang-target.sh
>  create mode 100755 tests/docker/test-wasm
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread
- * Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
  2025-09-27 17:17 ` [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely Alex Bennée
@ 2025-09-30  9:08   ` Paolo Bonzini
  2025-09-30 10:20     ` Marc-André Lureau
  2025-09-30 12:05   ` Marc-André Lureau
  1 sibling, 1 reply; 52+ messages in thread
From: Paolo Bonzini @ 2025-09-30  9:08 UTC (permalink / raw)
  To: Alex Bennée, marcandre.lureau
  Cc: qemu-devel, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Kohei Tokunaga
On 9/27/25 19:17, Alex Bennée wrote:
> marcandre.lureau@redhat.com writes:
> 
>> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> Hi,
>>
>> This patch series fixes a number of issues with the build system and CI and
>> enable Rust for many of our jobs, getting us closer to enable Rust by default.
>>
>> emscripten is difficult to enable, help welcome.
> 
> Also I think:
> 
>    https://gitlab.com/stsquad/qemu/-/pipelines/2065603411
> 
> And the:
>    debian-armhf-cross
>    debian-i686-cross
>    debian-mipsel-cross
>    debian-mips64el-cross
>    debian-ppc64el-cross
>    debian-riscv64-cross
I'll test 1-21+26 and see what breaks with that subset.
Paolo
> 
> cross builds fail.
> 
>>
>> v2:
>> - add a rust-to-clang-target-test.sh configure script
>> - drop "RFC: configure: use the same machine as the host triple"
>> - replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
>> - start tackling emscripten
>> - fix mis-placed submodule update
>> - other minor changes, commit message tweaks, bz links
>> - add r-b tags
>>
>> Marc-André Lureau (27):
>>    build-sys: require -lrt when no shm_open() in std libs
>>    gitlab-ci: fix 'needs' property type must be array
>>    scripts/archive-source: speed up downloading subprojects
>>    scripts/archive-source: silence subprojects downloads
>>    scripts/archive-source: use a bash array
>>    configure: fix rust meson configuration
>>    configure: set the bindgen cross target
>>    tests/docker/common: print errors to stderr
>>    tests/docker: use fully qualified image name for emsdk
>>    tests/docker/common: print meson log on configure failure
>>    build-sys: cfi_debug and safe_stack are not compatible
>>    lcitool: update, switch to f41
>>    lcitool/qemu: include libclang-rt for TSAN
>>    lcitool/alpine: workaround bindgen issue
>>    tests/lcitool: add missing rust-std dep
>>    tests/lcitool: update to debian13
>>    tests/docker: add ENABLE_RUST environment
>>    tests/lcitool: enable rust & refresh
>>    configure: set the meson executable suffix/ext
>>    tests/freebsd: enable Rust
>>    meson: rust-bindgen limit allowlist-file to srcdir/include
>>    RFC: tests/docker: add rust to debian-legacy-test-cross
>>    WIP: gitlab-ci: enable rust for msys2-64bit
>>    WIP: cirrus/macos: enable Rust
>>    RFC: build-sys: deprecate mips host
>>    build-sys: pass -fvisibility=default for wasm bindgen
>>    WIP: enable rust for wasm/emscripten
>>
>>   docs/about/build-platforms.rst                |  2 -
>>   docs/about/deprecated.rst                     |  9 +--
>>   configure                                     | 27 +++++++-
>>   meson.build                                   | 34 +++++++---
>>   .gitlab-ci.d/buildtest-template.yml           |  2 +-
>>   .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
>>   .gitlab-ci.d/cirrus.yml                       |  4 +-
>>   .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
>>   .gitlab-ci.d/static_checks.yml                |  6 +-
>>   .gitlab-ci.d/windows.yml                      |  8 ++-
>>   rust/bql/meson.build                          |  1 +
>>   rust/chardev/meson.build                      |  1 +
>>   rust/hw/char/pl011/meson.build                |  1 +
>>   rust/hw/core/meson.build                      |  1 +
>>   rust/migration/meson.build                    |  3 +-
>>   rust/qom/meson.build                          |  1 +
>>   rust/system/meson.build                       |  1 +
>>   rust/util/meson.build                         |  1 +
>>   scripts/archive-source.sh                     | 33 +++++++---
>>   .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
>>   .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
>>   scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
>>   scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
>>   tests/docker/common.rc                        | 11 +++-
>>   tests/docker/dockerfiles/alpine.docker        |  6 +-
>>   tests/docker/dockerfiles/centos9.docker       |  4 ++
>>   .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
>>   .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
>>   .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
>>   .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
>>   .../debian-legacy-test-cross.docker           |  9 ++-
>>   .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
>>   .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
>>   .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
>>   .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
>>   .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
>>   tests/docker/dockerfiles/debian.docker        | 18 +++--
>>   .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
>>   .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
>>   .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
>>   tests/docker/dockerfiles/fedora.docker        | 18 +++--
>>   tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
>>   tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
>>   tests/docker/test-wasm                        | 12 ++++
>>   tests/lcitool/libvirt-ci                      |  2 +-
>>   tests/lcitool/projects/qemu.yml               |  3 +-
>>   tests/lcitool/refresh                         | 48 +++++++++-----
>>   tests/vm/freebsd                              |  4 +-
>>   48 files changed, 531 insertions(+), 183 deletions(-)
>>   create mode 100755 scripts/rust-to-clang-target-test.sh
>>   create mode 100644 scripts/rust-to-clang-target.sh
>>   create mode 100755 tests/docker/test-wasm
> 
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
  2025-09-30  9:08   ` Paolo Bonzini
@ 2025-09-30 10:20     ` Marc-André Lureau
  0 siblings, 0 replies; 52+ messages in thread
From: Marc-André Lureau @ 2025-09-30 10:20 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Alex Bennée, qemu-devel, Kyle Evans, Yonggang Luo,
	Li-Wen Hsu, Thomas Huth, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Kohei Tokunaga
Hi
On Tue, Sep 30, 2025 at 1:09 PM Paolo Bonzini via Devel
<devel@lists.libvirt.org> wrote:
>
> On 9/27/25 19:17, Alex Bennée wrote:
> > marcandre.lureau@redhat.com writes:
> >
> >> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >>
> >> Hi,
> >>
> >> This patch series fixes a number of issues with the build system and CI and
> >> enable Rust for many of our jobs, getting us closer to enable Rust by default.
> >>
> >> emscripten is difficult to enable, help welcome.
> >
> > Also I think:
> >
> >    https://gitlab.com/stsquad/qemu/-/pipelines/2065603411
> >
> > And the:
> >    debian-armhf-cross
> >    debian-i686-cross
> >    debian-mipsel-cross
> >    debian-mips64el-cross
> >    debian-ppc64el-cross
> >    debian-riscv64-cross
>
> I'll test 1-21+26 and see what breaks with that subset.
>
I am currently testing with this change:
commit 757ef689a2d13a686411fb5b041412e8c73e36c0
Author: Marc-André Lureau <marcandre.lureau@redhat.com>
Date:   Tue Sep 30 14:16:44 2025 +0400
    fixup! tests/docker: add ENABLE_RUST environment
diff --git a/tests/docker/common.rc b/tests/docker/common.rc
index 52f01848a3..752f4f3aed 100755
--- a/tests/docker/common.rc
+++ b/tests/docker/common.rc
@@ -21,10 +21,12 @@ else
     DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"}
 fi
+enable_rust=""
 if [ "$ENABLE_RUST" = "1" ]; then
   enable_rust="--enable-rust"
-else
-  enable_rust=""
+  if [ -n "$RUST_TARGET" ]; then
+    enable_rust="$enable_rust --rust-target-triple=$RUST_TARGET"
+  fi
 fi
 requires_binary()
> Paolo
>
> >
> > cross builds fail.
> >
> >>
> >> v2:
> >> - add a rust-to-clang-target-test.sh configure script
> >> - drop "RFC: configure: use the same machine as the host triple"
> >> - replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
> >> - start tackling emscripten
> >> - fix mis-placed submodule update
> >> - other minor changes, commit message tweaks, bz links
> >> - add r-b tags
> >>
> >> Marc-André Lureau (27):
> >>    build-sys: require -lrt when no shm_open() in std libs
> >>    gitlab-ci: fix 'needs' property type must be array
> >>    scripts/archive-source: speed up downloading subprojects
> >>    scripts/archive-source: silence subprojects downloads
> >>    scripts/archive-source: use a bash array
> >>    configure: fix rust meson configuration
> >>    configure: set the bindgen cross target
> >>    tests/docker/common: print errors to stderr
> >>    tests/docker: use fully qualified image name for emsdk
> >>    tests/docker/common: print meson log on configure failure
> >>    build-sys: cfi_debug and safe_stack are not compatible
> >>    lcitool: update, switch to f41
> >>    lcitool/qemu: include libclang-rt for TSAN
> >>    lcitool/alpine: workaround bindgen issue
> >>    tests/lcitool: add missing rust-std dep
> >>    tests/lcitool: update to debian13
> >>    tests/docker: add ENABLE_RUST environment
> >>    tests/lcitool: enable rust & refresh
> >>    configure: set the meson executable suffix/ext
> >>    tests/freebsd: enable Rust
> >>    meson: rust-bindgen limit allowlist-file to srcdir/include
> >>    RFC: tests/docker: add rust to debian-legacy-test-cross
> >>    WIP: gitlab-ci: enable rust for msys2-64bit
> >>    WIP: cirrus/macos: enable Rust
> >>    RFC: build-sys: deprecate mips host
> >>    build-sys: pass -fvisibility=default for wasm bindgen
> >>    WIP: enable rust for wasm/emscripten
> >>
> >>   docs/about/build-platforms.rst                |  2 -
> >>   docs/about/deprecated.rst                     |  9 +--
> >>   configure                                     | 27 +++++++-
> >>   meson.build                                   | 34 +++++++---
> >>   .gitlab-ci.d/buildtest-template.yml           |  2 +-
> >>   .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
> >>   .gitlab-ci.d/cirrus.yml                       |  4 +-
> >>   .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
> >>   .gitlab-ci.d/static_checks.yml                |  6 +-
> >>   .gitlab-ci.d/windows.yml                      |  8 ++-
> >>   rust/bql/meson.build                          |  1 +
> >>   rust/chardev/meson.build                      |  1 +
> >>   rust/hw/char/pl011/meson.build                |  1 +
> >>   rust/hw/core/meson.build                      |  1 +
> >>   rust/migration/meson.build                    |  3 +-
> >>   rust/qom/meson.build                          |  1 +
> >>   rust/system/meson.build                       |  1 +
> >>   rust/util/meson.build                         |  1 +
> >>   scripts/archive-source.sh                     | 33 +++++++---
> >>   .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
> >>   .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
> >>   scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
> >>   scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
> >>   tests/docker/common.rc                        | 11 +++-
> >>   tests/docker/dockerfiles/alpine.docker        |  6 +-
> >>   tests/docker/dockerfiles/centos9.docker       |  4 ++
> >>   .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
> >>   .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
> >>   .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
> >>   .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
> >>   .../debian-legacy-test-cross.docker           |  9 ++-
> >>   .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
> >>   .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
> >>   .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
> >>   .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
> >>   .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
> >>   tests/docker/dockerfiles/debian.docker        | 18 +++--
> >>   .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
> >>   .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
> >>   .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
> >>   tests/docker/dockerfiles/fedora.docker        | 18 +++--
> >>   tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
> >>   tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
> >>   tests/docker/test-wasm                        | 12 ++++
> >>   tests/lcitool/libvirt-ci                      |  2 +-
> >>   tests/lcitool/projects/qemu.yml               |  3 +-
> >>   tests/lcitool/refresh                         | 48 +++++++++-----
> >>   tests/vm/freebsd                              |  4 +-
> >>   48 files changed, 531 insertions(+), 183 deletions(-)
> >>   create mode 100755 scripts/rust-to-clang-target-test.sh
> >>   create mode 100644 scripts/rust-to-clang-target.sh
> >>   create mode 100755 tests/docker/test-wasm
> >
>
-- 
Marc-André Lureau
^ permalink raw reply related	[flat|nested] 52+ messages in thread
 
- * Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
  2025-09-27 17:17 ` [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely Alex Bennée
  2025-09-30  9:08   ` Paolo Bonzini
@ 2025-09-30 12:05   ` Marc-André Lureau
  2025-09-30 12:42     ` Alex Bennée
  1 sibling, 1 reply; 52+ messages in thread
From: Marc-André Lureau @ 2025-09-30 12:05 UTC (permalink / raw)
  To: Alex Bennée, Paolo Bonzini, Henderson, Richard
  Cc: qemu-devel, Kyle Evans, Yonggang Luo, Li-Wen Hsu, Thomas Huth,
	Daniel P. Berrangé, Philippe Mathieu-Daudé, Warner Losh,
	Manos Pitsidianakis, Jiaxun Yang, Ed Maste, devel, qemu-rust,
	Kohei Tokunaga
[-- Attachment #1: Type: text/plain, Size: 6207 bytes --]
On Sat, Sep 27, 2025 at 9:18 PM Alex Bennée <alex.bennee@linaro.org> wrote:
> marcandre.lureau@redhat.com writes:
>
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > Hi,
> >
> > This patch series fixes a number of issues with the build system and CI
> and
> > enable Rust for many of our jobs, getting us closer to enable Rust by
> default.
> >
> > emscripten is difficult to enable, help welcome.
>
> Also I think:
>
>   https://gitlab.com/stsquad/qemu/-/pipelines/2065603411
Current ack/r-b series pass:
https://gitlab.com/marcandre.lureau/qemu/-/pipelines/2071701923
I  guess I should end a PR.
>
> And the:
>   debian-armhf-cross
debian-mipsel-cross
>   debian-mips64el-cross
>
  debian-ppc64el-cross
>   debian-riscv64-cross
>
> cross builds fail.
Fixed with the --rust-target-triple patch sent earlier
>   debian-i686-cross
>
This one fails with:
 ../src/meson.build:3394:4: ERROR: Problem encountered: No accelerator
available for target x86_64-softmmu
Paolo, any idea?
> >
> > v2:
> > - add a rust-to-clang-target-test.sh configure script
> > - drop "RFC: configure: use the same machine as the host triple"
> > - replace "tests: move mips to debian-legacy-test-cross" with "RFC:
> build-sys: deprecate mips host"
> > - start tackling emscripten
> > - fix mis-placed submodule update
> > - other minor changes, commit message tweaks, bz links
> > - add r-b tags
> >
> > Marc-André Lureau (27):
> >   build-sys: require -lrt when no shm_open() in std libs
> >   gitlab-ci: fix 'needs' property type must be array
> >   scripts/archive-source: speed up downloading subprojects
> >   scripts/archive-source: silence subprojects downloads
> >   scripts/archive-source: use a bash array
> >   configure: fix rust meson configuration
> >   configure: set the bindgen cross target
> >   tests/docker/common: print errors to stderr
> >   tests/docker: use fully qualified image name for emsdk
> >   tests/docker/common: print meson log on configure failure
> >   build-sys: cfi_debug and safe_stack are not compatible
> >   lcitool: update, switch to f41
> >   lcitool/qemu: include libclang-rt for TSAN
> >   lcitool/alpine: workaround bindgen issue
> >   tests/lcitool: add missing rust-std dep
> >   tests/lcitool: update to debian13
> >   tests/docker: add ENABLE_RUST environment
> >   tests/lcitool: enable rust & refresh
> >   configure: set the meson executable suffix/ext
> >   tests/freebsd: enable Rust
> >   meson: rust-bindgen limit allowlist-file to srcdir/include
> >   RFC: tests/docker: add rust to debian-legacy-test-cross
> >   WIP: gitlab-ci: enable rust for msys2-64bit
> >   WIP: cirrus/macos: enable Rust
> >   RFC: build-sys: deprecate mips host
> >   build-sys: pass -fvisibility=default for wasm bindgen
> >   WIP: enable rust for wasm/emscripten
> >
> >  docs/about/build-platforms.rst                |  2 -
> >  docs/about/deprecated.rst                     |  9 +--
> >  configure                                     | 27 +++++++-
> >  meson.build                                   | 34 +++++++---
> >  .gitlab-ci.d/buildtest-template.yml           |  2 +-
> >  .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
> >  .gitlab-ci.d/cirrus.yml                       |  4 +-
> >  .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
> >  .gitlab-ci.d/static_checks.yml                |  6 +-
> >  .gitlab-ci.d/windows.yml                      |  8 ++-
> >  rust/bql/meson.build                          |  1 +
> >  rust/chardev/meson.build                      |  1 +
> >  rust/hw/char/pl011/meson.build                |  1 +
> >  rust/hw/core/meson.build                      |  1 +
> >  rust/migration/meson.build                    |  3 +-
> >  rust/qom/meson.build                          |  1 +
> >  rust/system/meson.build                       |  1 +
> >  rust/util/meson.build                         |  1 +
> >  scripts/archive-source.sh                     | 33 +++++++---
> >  .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
> >  .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
> >  scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
> >  scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
> >  tests/docker/common.rc                        | 11 +++-
> >  tests/docker/dockerfiles/alpine.docker        |  6 +-
> >  tests/docker/dockerfiles/centos9.docker       |  4 ++
> >  .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
> >  .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
> >  .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
> >  .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
> >  .../debian-legacy-test-cross.docker           |  9 ++-
> >  .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
> >  .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
> >  .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
> >  .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
> >  .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
> >  tests/docker/dockerfiles/debian.docker        | 18 +++--
> >  .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
> >  .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
> >  .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
> >  tests/docker/dockerfiles/fedora.docker        | 18 +++--
> >  tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
> >  tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
> >  tests/docker/test-wasm                        | 12 ++++
> >  tests/lcitool/libvirt-ci                      |  2 +-
> >  tests/lcitool/projects/qemu.yml               |  3 +-
> >  tests/lcitool/refresh                         | 48 +++++++++-----
> >  tests/vm/freebsd                              |  4 +-
> >  48 files changed, 531 insertions(+), 183 deletions(-)
> >  create mode 100755 scripts/rust-to-clang-target-test.sh
> >  create mode 100644 scripts/rust-to-clang-target.sh
> >  create mode 100755 tests/docker/test-wasm
>
> --
> Alex Bennée
> Virtualisation Tech Lead @ Linaro
>
>
[-- Attachment #2: Type: text/html, Size: 8867 bytes --]
^ permalink raw reply	[flat|nested] 52+ messages in thread 
- * Re: [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
  2025-09-30 12:05   ` Marc-André Lureau
@ 2025-09-30 12:42     ` Alex Bennée
  0 siblings, 0 replies; 52+ messages in thread
From: Alex Bennée @ 2025-09-30 12:42 UTC (permalink / raw)
  To: Marc-André Lureau
  Cc: Paolo Bonzini, Henderson, Richard, qemu-devel, Kyle Evans,
	Yonggang Luo, Li-Wen Hsu, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Warner Losh, Manos Pitsidianakis,
	Jiaxun Yang, Ed Maste, devel, qemu-rust, Kohei Tokunaga
Marc-André Lureau <marcandre.lureau@redhat.com> writes:
> On Sat, Sep 27, 2025 at 9:18 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>  marcandre.lureau@redhat.com writes:
>
>  > From: Marc-André Lureau <marcandre.lureau@redhat.com>
>  >
>  > Hi,
>  >
>  > This patch series fixes a number of issues with the build system and CI and
>  > enable Rust for many of our jobs, getting us closer to enable Rust by default.
>  >
>  > emscripten is difficult to enable, help welcome.
>
>  Also I think:
>
>    https://gitlab.com/stsquad/qemu/-/pipelines/2065603411
>
> Current ack/r-b series pass: https://gitlab.com/marcandre.lureau/qemu/-/pipelines/2071701923
>
> I  guess I should end a PR.
>
>  And the:
>    debian-armhf-cross  
>
>  debian-mipsel-cross
>    debian-mips64el-cross
>
>    debian-ppc64el-cross
>    debian-riscv64-cross
>
>  cross builds fail. 
>
> Fixed with the --rust-target-triple patch sent earlier
>  
>    debian-i686-cross
>
> This one fails with:
>  ../src/meson.build:3394:4: ERROR: Problem encountered: No accelerator
> available for target x86_64-softmmu
Ahh - because TCG on 32 bit no longer allows 64 bit guests we cannot
find an accelerator. I'll fix that up in my current testing/next series
by updating DEF_TARGETS
>
> Paolo, any idea?
>
>  >
>  > v2:
>  > - add a rust-to-clang-target-test.sh configure script
>  > - drop "RFC: configure: use the same machine as the host triple"
>  > - replace "tests: move mips to debian-legacy-test-cross" with "RFC: build-sys: deprecate mips host"
>  > - start tackling emscripten
>  > - fix mis-placed submodule update
>  > - other minor changes, commit message tweaks, bz links
>  > - add r-b tags
>  >
>  > Marc-André Lureau (27):
>  >   build-sys: require -lrt when no shm_open() in std libs
>  >   gitlab-ci: fix 'needs' property type must be array
>  >   scripts/archive-source: speed up downloading subprojects
>  >   scripts/archive-source: silence subprojects downloads
>  >   scripts/archive-source: use a bash array
>  >   configure: fix rust meson configuration
>  >   configure: set the bindgen cross target
>  >   tests/docker/common: print errors to stderr
>  >   tests/docker: use fully qualified image name for emsdk
>  >   tests/docker/common: print meson log on configure failure
>  >   build-sys: cfi_debug and safe_stack are not compatible
>  >   lcitool: update, switch to f41
>  >   lcitool/qemu: include libclang-rt for TSAN
>  >   lcitool/alpine: workaround bindgen issue
>  >   tests/lcitool: add missing rust-std dep
>  >   tests/lcitool: update to debian13
>  >   tests/docker: add ENABLE_RUST environment
>  >   tests/lcitool: enable rust & refresh
>  >   configure: set the meson executable suffix/ext
>  >   tests/freebsd: enable Rust
>  >   meson: rust-bindgen limit allowlist-file to srcdir/include
>  >   RFC: tests/docker: add rust to debian-legacy-test-cross
>  >   WIP: gitlab-ci: enable rust for msys2-64bit
>  >   WIP: cirrus/macos: enable Rust
>  >   RFC: build-sys: deprecate mips host
>  >   build-sys: pass -fvisibility=default for wasm bindgen
>  >   WIP: enable rust for wasm/emscripten
>  >
>  >  docs/about/build-platforms.rst                |  2 -
>  >  docs/about/deprecated.rst                     |  9 +--
>  >  configure                                     | 27 +++++++-
>  >  meson.build                                   | 34 +++++++---
>  >  .gitlab-ci.d/buildtest-template.yml           |  2 +-
>  >  .gitlab-ci.d/buildtest.yml                    | 66 +++++++++----------
>  >  .gitlab-ci.d/cirrus.yml                       |  4 +-
>  >  .gitlab-ci.d/crossbuilds.yml                  | 46 ++++++-------
>  >  .gitlab-ci.d/static_checks.yml                |  6 +-
>  >  .gitlab-ci.d/windows.yml                      |  8 ++-
>  >  rust/bql/meson.build                          |  1 +
>  >  rust/chardev/meson.build                      |  1 +
>  >  rust/hw/char/pl011/meson.build                |  1 +
>  >  rust/hw/core/meson.build                      |  1 +
>  >  rust/migration/meson.build                    |  3 +-
>  >  rust/qom/meson.build                          |  1 +
>  >  rust/system/meson.build                       |  1 +
>  >  rust/util/meson.build                         |  1 +
>  >  scripts/archive-source.sh                     | 33 +++++++---
>  >  .../ci/setup/ubuntu/ubuntu-2204-aarch64.yaml  |  5 +-
>  >  .../ci/setup/ubuntu/ubuntu-2204-s390x.yaml    |  5 +-
>  >  scripts/rust-to-clang-target-test.sh          | 43 ++++++++++++
>  >  scripts/rust-to-clang-target.sh               | 62 +++++++++++++++++
>  >  tests/docker/common.rc                        | 11 +++-
>  >  tests/docker/dockerfiles/alpine.docker        |  6 +-
>  >  tests/docker/dockerfiles/centos9.docker       |  4 ++
>  >  .../dockerfiles/debian-amd64-cross.docker     | 18 +++--
>  >  .../dockerfiles/debian-arm64-cross.docker     | 18 +++--
>  >  .../dockerfiles/debian-armhf-cross.docker     | 21 +++---
>  >  .../dockerfiles/debian-i686-cross.docker      | 20 ++++--
>  >  .../debian-legacy-test-cross.docker           |  9 ++-
>  >  .../dockerfiles/debian-mips64el-cross.docker  |  9 ++-
>  >  .../dockerfiles/debian-mipsel-cross.docker    |  9 ++-
>  >  .../dockerfiles/debian-ppc64el-cross.docker   | 18 +++--
>  >  .../dockerfiles/debian-riscv64-cross.docker   | 10 ++-
>  >  .../dockerfiles/debian-s390x-cross.docker     | 18 +++--
>  >  tests/docker/dockerfiles/debian.docker        | 18 +++--
>  >  .../dockerfiles/emsdk-wasm32-cross.docker     | 29 +++++++-
>  >  .../dockerfiles/fedora-rust-nightly.docker    | 18 +++--
>  >  .../dockerfiles/fedora-win64-cross.docker     | 15 +++--
>  >  tests/docker/dockerfiles/fedora.docker        | 18 +++--
>  >  tests/docker/dockerfiles/opensuse-leap.docker |  7 +-
>  >  tests/docker/dockerfiles/ubuntu2204.docker    |  7 +-
>  >  tests/docker/test-wasm                        | 12 ++++
>  >  tests/lcitool/libvirt-ci                      |  2 +-
>  >  tests/lcitool/projects/qemu.yml               |  3 +-
>  >  tests/lcitool/refresh                         | 48 +++++++++-----
>  >  tests/vm/freebsd                              |  4 +-
>  >  48 files changed, 531 insertions(+), 183 deletions(-)
>  >  create mode 100755 scripts/rust-to-clang-target-test.sh
>  >  create mode 100644 scripts/rust-to-clang-target.sh
>  >  create mode 100755 tests/docker/test-wasm
>
>  -- 
>  Alex Bennée
>  Virtualisation Tech Lead @ Linaro
-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply	[flat|nested] 52+ messages in thread