The following changes since commit a9e0c9c0f14e19d23443ac24c8080b4708d2eab8:
Merge tag 'pull-9p-20250505' of https://github.com/cschoenebeck/qemu into staging (2025-05-05 11:26:59 -0400) are available in the Git repository at: https://gitlab.com/bonzini/qemu.git tags/for-upstream for you to fetch changes up to e6b9b79c3076777b791f72ebdbc9d37ad8005fe9: gitlab: Enable CI for wasm build (2025-05-06 16:02:04 +0200) ---------------------------------------------------------------- * ci: enable RISC-V cross jobs * rust: bump minimum supported version to 1.77 * rust: enable uninlined_format_args lint * initial Emscripten support * small fixes ---------------------------------------------------------------- Kohei Tokunaga (15): target/arm/helper.c: Fix type conflict of GLib function pointers target/i386/cpu.c: Fix type conflict of GLib function pointers target/ppc: Fix type conflict of GLib function pointers target/s390x: Fix type conflict of GLib function pointers include/glib-compat.h: Poison g_list_sort and g_slist_sort util/cacheflush.c: Update cache flushing mechanism for Emscripten block: Add including of ioctl header for Emscripten build block: Fix type conflict of the copy_file_range stub include/qemu/osdep.h: Add Emscripten-specific OS dependencies Disable options unsupported on Emscripten util: exclude mmap-alloc.c from compilation target on Emscripten util: Add coroutine backend for emscripten meson: Add wasm build in build scripts tests: Add Dockerfile containing dependencies for Emscripten build gitlab: Enable CI for wasm build Paolo Bonzini (15): lcitool: use newer Rust for Debian and Ubuntu meson, cargo: require Rust 1.77.0 rust: use std::ffi instead of std::os::raw rust: let bilge use "let ... else" rust: qemu_api_macros: make pattern matching more readable and efficient rust: use MaybeUninit::zeroed() in const context rust: qom: fix TODO about zeroability of classes rust: enable clippy::ptr_cast_constness rust: remove offset_of replacement rust: replace c_str! with c"" literals docs: rust: update for newer minimum supported version target/i386/emulate: fix target_ulong format strings rust: clippy: enable uninlined_format_args lint ci: run RISC-V cross jobs by default docs: build-system: fix typo MAINTAINERS | 9 ++ docs/about/build-platforms.rst | 11 +- docs/devel/build-system.rst | 2 +- docs/devel/rust.rst | 38 +---- configure | 7 + meson.build | 35 ++++- include/glib-compat.h | 7 + include/qemu/cacheflush.h | 7 + include/qemu/osdep.h | 8 +- include/system/os-wasm.h | 104 +++++++++++++ block/file-posix.c | 11 +- os-wasm.c | 119 +++++++++++++++ system/memory.c | 2 +- system/physmem.c | 9 +- system/vl.c | 4 +- target/arm/helper.c | 4 +- target/i386/cpu.c | 11 +- target/i386/emulate/x86_decode.c | 2 +- target/i386/emulate/x86_emu.c | 2 +- target/ppc/cpu_init.c | 4 +- target/s390x/cpu_models.c | 4 +- util/cacheflush.c | 4 + util/coroutine-wasm.c | 127 ++++++++++++++++ util/oslib-posix.c | 28 ++++ .gitlab-ci.d/buildtest-template.yml | 27 ++++ .gitlab-ci.d/buildtest.yml | 9 ++ .gitlab-ci.d/container-cross.yml | 8 +- .gitlab-ci.d/crossbuilds.yml | 5 - backends/meson.build | 6 +- configs/meson/emscripten.txt | 8 + meson_options.txt | 2 +- qemu-options.hx | 4 +- rust/Cargo.lock | 1 - rust/Cargo.toml | 7 +- rust/clippy.toml | 3 +- rust/hw/char/pl011/src/device.rs | 4 +- rust/hw/char/pl011/src/device_class.rs | 13 +- rust/hw/char/pl011/src/lib.rs | 6 +- rust/hw/timer/hpet/src/fw_cfg.rs | 6 +- rust/hw/timer/hpet/src/hpet.rs | 28 ++-- rust/hw/timer/hpet/src/lib.rs | 4 +- rust/qemu-api-macros/src/lib.rs | 123 ++++++--------- rust/qemu-api/Cargo.toml | 3 - rust/qemu-api/build.rs | 11 +- rust/qemu-api/meson.build | 5 - rust/qemu-api/src/c_str.rs | 61 -------- rust/qemu-api/src/cell.rs | 6 +- rust/qemu-api/src/chardev.rs | 5 +- rust/qemu-api/src/irq.rs | 6 +- rust/qemu-api/src/lib.rs | 7 +- rust/qemu-api/src/memory.rs | 3 +- rust/qemu-api/src/offset_of.rs | 168 --------------------- rust/qemu-api/src/qdev.rs | 9 +- rust/qemu-api/src/qom.rs | 14 +- rust/qemu-api/src/timer.rs | 4 +- rust/qemu-api/src/vmstate.rs | 14 +- rust/qemu-api/src/zeroable.rs | 106 +++---------- rust/qemu-api/tests/tests.rs | 11 +- rust/qemu-api/tests/vmstate_tests.rs | 27 ++-- scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml | 2 +- scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml | 2 +- scripts/meson-buildoptions.sh | 2 +- subprojects/bilge-impl-0.2-rs.wrap | 1 - subprojects/packagefiles/bilge-impl-1.63.0.patch | 45 ------ 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 +- tests/docker/dockerfiles/debian-s390x-cross.docker | 2 +- tests/docker/dockerfiles/debian.docker | 2 +- tests/docker/dockerfiles/emsdk-wasm32-cross.docker | 145 ++++++++++++++++++ tests/docker/dockerfiles/ubuntu2204.docker | 3 +- tests/lcitool/mappings.yml | 5 + tests/lcitool/refresh | 5 +- util/meson.build | 4 +- 78 files changed, 861 insertions(+), 654 deletions(-) create mode 100644 include/system/os-wasm.h create mode 100644 os-wasm.c create mode 100644 util/coroutine-wasm.c create mode 100644 configs/meson/emscripten.txt delete mode 100644 rust/qemu-api/src/c_str.rs delete mode 100644 rust/qemu-api/src/offset_of.rs delete mode 100644 subprojects/packagefiles/bilge-impl-1.63.0.patch create mode 100644 tests/docker/dockerfiles/emsdk-wasm32-cross.docker -- 2.49.0