mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
* 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 -----BEGIN PGP SIGNATURE----- iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmgaFq8UHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroOxAAf/YPKw5KAoE5SwUqJ0oSOMHrU0w4jc A2Qiw1uziA6kDmUMUXwWR7Qbd8V7jtihGrgTrIPopeavgWWQeNsBHjN4WxHRI7aq +429rjzFo9V9tSfgp6UcLQSk/9kC4ygEwPnesHpKd27fS6z9Wg4AQkj1iFipR179 wC3fqwOqqWZSjfUd7wjo7McFYZgL5j/cxmFXePh8+fdT+6PUKdG9nRW86KUPDZ+A 8HxcuOW7GZd+LhnYUhi7vlLFo/RgVsGQWj0Q4BDJvUkKa13t9UUCGff7uQP2AC3v ny0gWDcmbWY1L/QXyNzhgd44X4LAjCmpnonlYnrdZizEmhv3aByd+fANgw== =uIJK -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * 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 # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmgaFq8UHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroOxAAf/YPKw5KAoE5SwUqJ0oSOMHrU0w4jc # A2Qiw1uziA6kDmUMUXwWR7Qbd8V7jtihGrgTrIPopeavgWWQeNsBHjN4WxHRI7aq # +429rjzFo9V9tSfgp6UcLQSk/9kC4ygEwPnesHpKd27fS6z9Wg4AQkj1iFipR179 # wC3fqwOqqWZSjfUd7wjo7McFYZgL5j/cxmFXePh8+fdT+6PUKdG9nRW86KUPDZ+A # 8HxcuOW7GZd+LhnYUhi7vlLFo/RgVsGQWj0Q4BDJvUkKa13t9UUCGff7uQP2AC3v # ny0gWDcmbWY1L/QXyNzhgd44X4LAjCmpnonlYnrdZizEmhv3aByd+fANgw== # =uIJK # -----END PGP SIGNATURE----- # gpg: Signature made Tue 06 May 2025 10:03:27 EDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (30 commits) gitlab: Enable CI for wasm build tests: Add Dockerfile containing dependencies for Emscripten build meson: Add wasm build in build scripts util: Add coroutine backend for emscripten util: exclude mmap-alloc.c from compilation target on Emscripten Disable options unsupported on Emscripten include/qemu/osdep.h: Add Emscripten-specific OS dependencies block: Fix type conflict of the copy_file_range stub block: Add including of ioctl header for Emscripten build util/cacheflush.c: Update cache flushing mechanism for Emscripten include/glib-compat.h: Poison g_list_sort and g_slist_sort target/s390x: Fix type conflict of GLib function pointers target/ppc: Fix type conflict of GLib function pointers target/i386/cpu.c: Fix type conflict of GLib function pointers target/arm/helper.c: Fix type conflict of GLib function pointers docs: build-system: fix typo ci: run RISC-V cross jobs by default rust: clippy: enable uninlined_format_args lint target/i386/emulate: fix target_ulong format strings docs: rust: update for newer minimum supported version ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
c5f122fdcc
78 changed files with 861 additions and 654 deletions
|
@ -168,7 +168,7 @@ The required versions of the packages are stored in a configuration file
|
|||
``pythondeps.toml``. The format is custom to QEMU, but it is documented
|
||||
at the top of the file itself and it should be easy to understand. The
|
||||
requirements should make it possible to use the version that is packaged
|
||||
that is provided by supported distros.
|
||||
by QEMU's supported distros.
|
||||
|
||||
When dependencies are downloaded, instead, ``configure`` uses a "known
|
||||
good" version that is also listed in ``pythondeps.toml``. In this
|
||||
|
|
|
@ -71,36 +71,9 @@ Building Rust code with ``--enable-modules`` is not supported yet.
|
|||
Supported tools
|
||||
'''''''''''''''
|
||||
|
||||
QEMU supports rustc version 1.63.0 and newer. Notably, the following features
|
||||
QEMU supports rustc version 1.77.0 and newer. Notably, the following features
|
||||
are missing:
|
||||
|
||||
* ``core::ffi`` (1.64.0). Use ``std::os::raw`` and ``std::ffi`` instead.
|
||||
|
||||
* ``cast_mut()``/``cast_const()`` (1.65.0). Use ``as`` instead.
|
||||
|
||||
* "let ... else" (1.65.0). Use ``if let`` instead. This is currently patched
|
||||
in QEMU's vendored copy of the bilge crate.
|
||||
|
||||
* Generic Associated Types (1.65.0)
|
||||
|
||||
* ``CStr::from_bytes_with_nul()`` as a ``const`` function (1.72.0).
|
||||
|
||||
* "Return position ``impl Trait`` in Traits" (1.75.0, blocker for including
|
||||
the pinned-init create).
|
||||
|
||||
* ``MaybeUninit::zeroed()`` as a ``const`` function (1.75.0). QEMU's
|
||||
``Zeroable`` trait can be implemented without ``MaybeUninit::zeroed()``,
|
||||
so this would be just a cleanup.
|
||||
|
||||
* ``c"" literals`` (stable in 1.77.0). QEMU provides a ``c_str!()`` macro
|
||||
to define ``CStr`` constants easily
|
||||
|
||||
* ``offset_of!`` (stable in 1.77.0). QEMU uses ``offset_of!()`` heavily; it
|
||||
provides a replacement in the ``qemu_api`` crate, but it does not support
|
||||
lifetime parameters and therefore ``&'a Something`` fields in the struct
|
||||
may have to be replaced by ``NonNull<Something>``. *Nested* ``offset_of!``
|
||||
was only stabilized in Rust 1.82.0, but it is not used.
|
||||
|
||||
* inline const expression (stable in 1.79.0), currently worked around with
|
||||
associated constants in the ``FnCall`` trait.
|
||||
|
||||
|
@ -125,12 +98,6 @@ are missing:
|
|||
|
||||
__ https://github.com/rust-lang/rust/pull/125258
|
||||
|
||||
It is expected that QEMU will advance its minimum supported version of
|
||||
rustc to 1.77.0 as soon as possible; as of January 2025, blockers
|
||||
for that right now are Debian bookworm and 32-bit MIPS processors.
|
||||
This unfortunately means that references to statics in constants will
|
||||
remain an issue.
|
||||
|
||||
QEMU also supports version 0.60.x of bindgen, which is missing option
|
||||
``--generate-cstr``. This option requires version 0.66.x and will
|
||||
be adopted as soon as supporting these older versions is not necessary
|
||||
|
@ -183,7 +150,6 @@ module status
|
|||
``bitops`` complete
|
||||
``callbacks`` complete
|
||||
``cell`` stable
|
||||
``c_str`` complete
|
||||
``errno`` complete
|
||||
``irq`` complete
|
||||
``memory`` stable
|
||||
|
@ -440,7 +406,7 @@ Adding dependencies
|
|||
Generally, the set of dependent crates is kept small. Think twice before
|
||||
adding a new external crate, especially if it comes with a large set of
|
||||
dependencies itself. Sometimes QEMU only needs a small subset of the
|
||||
functionality; see for example QEMU's ``assertions`` or ``c_str`` modules.
|
||||
functionality; see for example QEMU's ``assertions`` module.
|
||||
|
||||
On top of this recommendation, adding external crates to QEMU is a
|
||||
slightly complicated process, mostly due to the need to teach Meson how
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue