]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
meson, cargo: require Rust 1.83.0
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 8 Sep 2025 10:49:35 +0000 (12:49 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 17 Sep 2025 17:00:56 +0000 (19:00 +0200)
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>
clippy.toml
docs/about/build-platforms.rst
docs/devel/rust.rst
meson.build
rust/Cargo.toml

index 9016172983839cc74c95d0a950bef19fbce1fe27..204f5713c000718e0821f793166f09c0bfa9e877 100644 (file)
@@ -1,3 +1,3 @@
 doc-valid-idents = ["IrDA", "PrimeCell", ".."]
 allow-mixed-uninlined-format-args = false
-msrv = "1.77.0"
+msrv = "1.83.0"
index 8671c3be9cdbeb3b78bceed1ccd9db3b5dc9449e..0160d3adb831280a5dfa5ab71be58075a2c90f2e 100644 (file)
@@ -118,14 +118,15 @@ Rust build dependencies
   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.
-
-  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.
+  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.
+
+  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
index b6737536c694fd54fd0d3204c0dd1145a9b0e973..e0ee4a9837d7d0a11b708e087b01b5e80dad7ac5 100644 (file)
@@ -75,21 +75,17 @@ Note that doctests require all ``.o`` files from the build to be available.
 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
index 3d7387335665c1b9541faf2e375ed5cc2d7d4b3b..a238df3f5e3c1bc91c61c9e202eb1c87f69b3d27 100644 (file)
@@ -94,12 +94,12 @@ have_rust = have_rust and add_languages('rust', native: true,
     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
index 6f8884eb30b42cf0219c7d3bbff8443b2f525f8e..99c275f2d9f52524960b6f5a501bbf570892cda9 100644 (file)
@@ -13,7 +13,7 @@ edition = "2021"
 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"