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