meson, cargo: require Rust 1.83.0
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250908105005.2119297-4-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
diff --git a/clippy.toml b/clippy.toml
index 9016172..204f571 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -1,3 +1,3 @@
doc-valid-idents = ["IrDA", "PrimeCell", ".."]
allow-mixed-uninlined-format-args = false
-msrv = "1.77.0"
+msrv = "1.83.0"
diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index 8671c3b..0160d3a 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -118,14 +118,15 @@
include bindgen or have an older version, it is recommended to install
a newer version using ``cargo install bindgen-cli``.
- QEMU requires Rust 1.77.0. This is available on all supported platforms
- with one exception, namely the ``mips64el`` architecture on Debian bookworm.
- For all other architectures, Debian bookworm provides a new-enough Rust
- compiler in the ``rustc-web`` package.
+ QEMU requires Rust 1.83.0. This is available on all supported platforms
+ with two exception: Ubuntu LTS releases 22.04 and 24.04, and the
+ ``mips64el`` architecture on Debian bookworm. For all other
+ architectures, Debian bookworm provides a new-enough Rust compiler
+ in the ``rustc-web`` package.
- Also, on Ubuntu 22.04 or 24.04 this requires the ``rustc-1.77``
- (or newer) package. The path to ``rustc`` and ``rustdoc`` must be
- provided manually to the configure script.
+ It is expected that in the future Ubuntu will provide updated packages
+ like the existing ``rustc-1.82`` package. The path to ``rustc`` and
+ ``rustdoc`` will have to be provided manually to the configure script.
Some distros prefer to avoid vendored crate sources, and instead use
local sources from e.g. ``/usr/share/cargo/registry``. QEMU includes a
diff --git a/docs/devel/rust.rst b/docs/devel/rust.rst
index b673753..e0ee4a9 100644
--- a/docs/devel/rust.rst
+++ b/docs/devel/rust.rst
@@ -75,21 +75,17 @@
Supported tools
'''''''''''''''
-QEMU supports rustc version 1.77.0 and newer. Notably, the following features
-are missing:
+QEMU supports rustc version 1.83.0 and newer. The following features
+from relatively new versions of Rust are not used for historical reasons;
+patches are welcome:
* inline const expression (stable in 1.79.0), currently worked around with
associated constants in the ``FnCall`` trait.
-* associated constants have to be explicitly marked ``'static`` (`changed in
+* associated constants are still explicitly marked ``'static`` (`changed in
1.81.0`__)
-* ``&raw`` (stable in 1.82.0). Use ``addr_of!`` and ``addr_of_mut!`` instead,
- though hopefully the need for raw pointers will go down over time.
-
-* ``new_uninit`` (stable in 1.82.0). This is used internally by the ``pinned_init``
- crate, which is planned for inclusion in QEMU, but it can be easily patched
- out.
+* ``&raw`` (stable in 1.82.0).
* referencing statics in constants (stable in 1.83.0). For now use a const
function; this is an important limitation for QEMU's migration stream
diff --git a/meson.build b/meson.build
index 3d73873..a238df3 100644
--- a/meson.build
+++ b/meson.build
@@ -94,12 +94,12 @@
required: get_option('rust').disable_auto_if(not have_system))
if have_rust
rustc = meson.get_compiler('rust')
- if rustc.version().version_compare('<1.77.0')
+ if rustc.version().version_compare('<1.83.0')
if get_option('rust').enabled()
- error('rustc version ' + rustc.version() + ' is unsupported. Please upgrade to at least 1.77.0')
+ error('rustc version ' + rustc.version() + ' is unsupported. Please upgrade to at least 1.83.0')
else
warning('rustc version ' + rustc.version() + ' is unsupported, disabling Rust compilation.')
- message('Please upgrade to at least 1.77.0 to use Rust.')
+ message('Please upgrade to at least 1.83.0 to use Rust.')
have_rust = false
endif
endif
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index 6f8884e..99c275f 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -13,7 +13,7 @@
homepage = "https://www.qemu.org"
license = "GPL-2.0-or-later"
repository = "https://gitlab.com/qemu-project/qemu/"
-rust-version = "1.77.0"
+rust-version = "1.83.0"
[workspace.dependencies]
anyhow = "~1.0"