[PATCH] rust: support Rust >= 1.91.0 target spec

Miguel Ojeda posted 1 patch 1 month ago
scripts/generate_rust_target.rs | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
[PATCH] rust: support Rust >= 1.91.0 target spec
Posted by Miguel Ojeda 1 month ago
Starting with Rust 1.91.0 (expected 2025-10-30), the target spec format
has changed the type of the `target-pointer-width` key from string
to integer [1].

Thus conditionally use one or the other depending on the version.

Cc: Waffle Maybe <waffle.lapkin@gmail.com>
Link: https://github.com/rust-lang/rust/pull/144443 [1]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
Conditional to the PR getting merged.

 scripts/generate_rust_target.rs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/scripts/generate_rust_target.rs b/scripts/generate_rust_target.rs
index 39c82908ff3a..38b3416bb979 100644
--- a/scripts/generate_rust_target.rs
+++ b/scripts/generate_rust_target.rs
@@ -225,7 +225,11 @@ fn main() {
         ts.push("features", features);
         ts.push("llvm-target", "x86_64-linux-gnu");
         ts.push("supported-sanitizers", ["kcfi", "kernel-address"]);
-        ts.push("target-pointer-width", "64");
+        if cfg.rustc_version_atleast(1, 91, 0) {
+            ts.push("target-pointer-width", 64);
+        } else {
+            ts.push("target-pointer-width", "64");
+        }
     } else if cfg.has("X86_32") {
         // This only works on UML, as i386 otherwise needs regparm support in rustc
         if !cfg.has("UML") {
@@ -245,7 +249,11 @@ fn main() {
         }
         ts.push("features", features);
         ts.push("llvm-target", "i386-unknown-linux-gnu");
-        ts.push("target-pointer-width", "32");
+        if cfg.rustc_version_atleast(1, 91, 0) {
+            ts.push("target-pointer-width", 32);
+        } else {
+            ts.push("target-pointer-width", "32");
+        }
     } else if cfg.has("LOONGARCH") {
         panic!("loongarch uses the builtin rustc loongarch64-unknown-none-softfloat target");
     } else {

base-commit: 1b237f190eb3d36f52dffe07a40b5eb210280e00
--
2.51.0
Re: [PATCH] rust: support Rust >= 1.91.0 target spec
Posted by Miguel Ojeda 1 month ago
On Fri, Aug 29, 2025 at 9:55 PM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> Starting with Rust 1.91.0 (expected 2025-10-30), the target spec format
> has changed the type of the `target-pointer-width` key from string
> to integer [1].
>
> Thus conditionally use one or the other depending on the version.
>
> Cc: Waffle Maybe <waffle.lapkin@gmail.com>
> Link: https://github.com/rust-lang/rust/pull/144443 [1]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
> ---
> Conditional to the PR getting merged.

The PR landed, so applied to `rust-fixes`.

I may be able to take tags tomorrow, so those are welcome of course
(thanks in advance!), although it is already getting tested in the
Rust CI, so it should be pretty safe.

Cheers,
Miguel