qemu-rust.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/27] CI/build-sys fixes to enable Rust more widely
@ 2025-09-24 12:03 marcandre.lureau
  2025-09-24 12:03 ` [PATCH v2 01/27] build-sys: require -lrt when no shm_open() in std libs marcandre.lureau
                   ` (27 more replies)
  0 siblings, 28 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>

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.

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

-- 
2.51.0



^ permalink raw reply	[flat|nested] 52+ messages in thread

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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

* [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 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 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

* 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

* 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

* 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

* 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

* 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

* 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

* 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

* 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

* 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

* 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

* 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 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 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

* 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

* 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

* 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

end of thread, other threads:[~2025-10-02  0:01 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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-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
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
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
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
2025-09-24 12:04 ` [PATCH v2 06/27] configure: fix rust meson configuration marcandre.lureau
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
2025-09-24 12:04 ` [PATCH v2 08/27] tests/docker/common: print errors to stderr marcandre.lureau
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 ` [PATCH v2 10/27] tests/docker/common: print meson log on configure failure marcandre.lureau
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é
2025-09-24 12:04 ` [PATCH v2 12/27] lcitool: update, switch to f41 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
2025-09-24 12:04 ` [PATCH v2 14/27] lcitool/alpine: workaround bindgen issue marcandre.lureau
2025-09-24 12:04 ` [PATCH v2 15/27] tests/lcitool: add missing rust-std dep marcandre.lureau
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
2025-09-24 12:04 ` [PATCH v2 17/27] tests/docker: add ENABLE_RUST environment marcandre.lureau
2025-09-24 12:04 ` [PATCH v2 18/27] tests/lcitool: enable rust & refresh 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
2025-09-24 13:45   ` Daniel P. Berrangé
2025-09-24 12:04 ` [PATCH v2 20/27] tests/freebsd: enable Rust marcandre.lureau
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 ` [PATCH v2 22/27] RFC: tests/docker: add rust to debian-legacy-test-cross 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
2025-09-24 12:04 ` [PATCH v2 24/27] WIP: cirrus/macos: enable Rust marcandre.lureau
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é
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
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
2025-10-02  0:00       ` Kohei Tokunaga
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
2025-09-30 12:42     ` Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).