rust: bump minimum Rust and `bindgen` versions
Status from this message: Applied series to `rust-next` -- thanks everyone!
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest33 patches 20 repliesApplied 33/33
- v133 patches 84 repliesSuperseded
Changes in v2 from the cover letter
- Added patch to globally allow incompatible_msrv and removed the last instance.
- Replaced --remap-path-prefix patches with one that drops the workaround entirely (and place it as the first one) and summarizes the discussion.
Patches in v2 All 33 applied
Reviews trailers per patch
All 33 patches have a Reviewed-by or Acked-by.
| Patch | Tamir Duberstein | Gary Guo | Danilo Krummrich | Benno Lossin | Alice Ryhl | Nicolas Schier |
|---|---|---|---|---|---|---|
| 1/33 | R-b | A-b | A-b | |||
| 2/33 | R-b | R-b | ||||
| 3/33 | R-b | R-b | ||||
| 4/33 | R-b | R-b | A-b | |||
| 5/33 | A-b | A-b | A-b | A-b | A-b | |
| 6/33 | R-b | R-b | A-b | |||
| 7/33 | R-b | R-b | ||||
| 8/33 | R-b | R-b | ||||
| 9/33 | R-b | R-b | ||||
| 10/33 | R-b | R-b | A-b | |||
| 11/33 | R-b | R-b | ||||
| 12/33 | R-b | R-b | ||||
| 13/33 | R-b | R-b | ||||
| 14/33 | R-b | R-b | A-b | |||
| 15/33 | R-b | |||||
| 16/33 | R-b | R-b | ||||
| 17/33 | A-b | R-b | ||||
| 18/33 | R-b | |||||
| 19/33 | R-b | |||||
| 20/33 | R-b | R-b | ||||
| 21/33 | R-b | R-b | ||||
| 22/33 | R-b | |||||
| 23/33 | R-b | |||||
| 24/33 | R-b | R-b | ||||
| 25/33 | R-b | R-b | ||||
| 26/33 | R-b | |||||
| 27/33 | R-b | R-b | ||||
| 28/33 | R-b | R-b | ||||
| 29/33 | R-b | R-b | ||||
| 30/33 | R-b | R-b | ||||
| 31/33 | R-b | |||||
| 32/33 | R-b | A-b | ||||
| 33/33 | R-b | R-b | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 6 reviewers.
Cover letter [PATCH v2 00/33] rust: bump minimum Rust and `bindgen` versions
As proposed in the past in e.g. LPC 2025 and the Maintainers Summit [1], we are going to follow Debian Stable's Rust versions as our minimum supported version.
Debian Trixie was released with a Rust 1.85.0 toolchain [2], which it still uses to this day [3] (i.e. no update to Rust 1.85.1).
Debian Trixie was released with bindgen 0.71.1, which it also still uses to this day [4].
Debian Trixie's release happened on 2025-08-09 [5], which means that a fair amount of time has passed since its release for kernel developers to upgrade.
Thus bump the minimum to the new versions, i.e.
- Rust: 1.78.0 -> 1.85.0
- bindgen: 0.65.1 -> 0.71.1
There are a few main parts to the series, in this order:
- A few cleanups that can be performed before the bumps.
- The Rust bump (and its cleanups).
- The bindgen bump (and its cleanups).
- Documentation updates.
- The cfi_encoding patch, added here, which needs the bump.
- The per-version flags support and a Clippy cleanup on top.
---
v1: https://lore.kernel.org/rust-for-linux/[email protected]/
v2:
- Added patch to globally allow incompatible_msrv and removed the last instance.
- Replaced --remap-path-prefix patches with one that drops the workaround entirely (and place it as the first one) and summarizes the discussion.
I also noticed that --remap-path-prefix for rustdoc is still unstable (unlike rustc's one), so I added it to our list as usual
(https://github.com/Rust-for-Linux/linux/issues/2). There does not seem to be a tracking issue, so I asked upstream about it.
We will need these two lines as the resolution for the conflict:
$(RUSTDOC) $(filter-out $(skip_flags) --remap-path-scope=%,$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \
$(RUSTDOC) --test $(filter-out --remap-path-scope=%,$(rust_flags)) \
- Reworked the extract_if patch to use it (unstably). The feature last major change happened in Rust 1.85.0, so that is fine.
- Moved $(HOSTRUSTFLAGS) below so that per-version flags (like lints) can be overridden too. Please see the details in the commit and my reply to v1.
- Added feature(extract_if) and feature(non_null_convenience) items to https://github.com/Rust-for-Linux/linux/issues/1223.
Then reworded the commits accordingly to include the references to tracking issues and PRs.
- Other rewords, e.g. the "beyond" typo.
- Rebased on top of rust-next.
- Picked up tags.
Alice Ryhl (1):
rust: declare cfi_encoding for lru_status
Miguel Ojeda (32):
rust: kbuild: remove --remap-path-prefix workarounds
rust: kbuild: remove "try keyword" workaround for bindgen < 0.59.2
rust: kbuild: remove unneeded old allows for generated layout tests
gpu: nova-core: bindings: remove unneeded cfg_attr
rust: bump Rust minimum supported version to 1.85.0 (Debian Trixie)
rust: bump Clippy's MSRV and clean incompatible_msrv allows
rust: allow globally clippy::incompatible_msrv
rust: simplify RUSTC_VERSION Kconfig conditions
rust: remove RUSTC_HAS_SLICE_AS_FLATTENED and simplify code
rust: remove RUSTC_HAS_COERCE_POINTEE and simplify code
rust: kbuild: remove skipping of -Wrustdoc::unescaped_backticks
rust: kbuild: remove feature(...)s that are now stable
rust: transmute: simplify code with Rust 1.80.0 split_at_*checked()
rust: alloc: simplify with NonNull::add() now that it is stable
rust: macros: simplify code using feature(extract_if)
rust: block: update const_refs_to_static MSRV TODO comment
rust: bump bindgen minimum supported version to 0.71.1 (Debian
Trixie)
rust: rust_is_available: remove warning for bindgen 0.66.[01]
rust: rust_is_available: remove warning for bindgen < 0.69.5 &&
libclang >= 19.1
rust: kbuild: update `bindgen --rust-target` version and replace
comment
rust: kbuild: remove "dummy parameter" workaround for `bindgen` <
0.71.1 docs: rust: quick-start: openSUSE provides rust-src package nowadays
docs: rust: quick-start: update Ubuntu versioned packages
docs: rust: quick-start: update minimum Ubuntu version
docs: rust: quick-start: add Ubuntu 26.04 LTS and remove subsection
title
docs: rust: quick-start: remove Gentoo "testing" note
docs: rust: quick-start: remove Nix "unstable channel" note
docs: rust: quick-start: remove GDB/Binutils mention
docs: rust: general-information: simplify Kconfig example
docs: rust: general-information: use real example
rust: kbuild: support global per-version flags
rust: kbuild: allow clippy::precedence for Rust < 1.86.0
.clippy.toml | 2 +- Documentation/process/changes.rst | 4 +- Documentation/rust/general-information.rst | 4 +- Documentation/rust/quick-start.rst | 52 +++++++---------- Makefile | 12 +++- arch/Kconfig | 3 +- arch/arm64/Kconfig | 8 --- arch/riscv/Kconfig | 3 - drivers/android/binder/Makefile | 3 +- drivers/android/binder/page_range.rs | 6 +- drivers/android/binder/page_range_helper.c | 24 -------- drivers/android/binder/page_range_helper.h | 15 ----- drivers/gpu/nova-core/gsp/cmdq.rs | 6 +- drivers/gpu/nova-core/gsp/fw/r570_144.rs | 3 - init/Kconfig | 15 +---- rust/Makefile | 31 ++-------- rust/bindgen_parameters | 8 +-- rust/bindings/bindings_helper.h | 1 - rust/bindings/lib.rs | 5 +- rust/kernel/alloc/allocator/iter.rs | 8 +-- rust/kernel/alloc/kbox.rs | 29 +--------- rust/kernel/block/mq/gen_disk.rs | 4 +- rust/kernel/lib.rs | 30 +--------- rust/kernel/list/arc.rs | 22 +------ rust/kernel/prelude.rs | 3 - rust/kernel/ptr.rs | 1 - rust/kernel/slice.rs | 49 ---------------- rust/kernel/sync/arc.rs | 21 +------ rust/kernel/transmute.rs | 35 ++--------- rust/macros/helpers.rs | 1 - rust/macros/kunit.rs | 9 +-- rust/macros/lib.rs | 3 + rust/uapi/lib.rs | 5 +- scripts/Makefile.build | 6 +- scripts/min-tool-version.sh | 4 +- scripts/rust_is_available.sh | 36 +----------- scripts/rust_is_available_bindgen_0_66.h | 2 - ...ust_is_available_bindgen_libclang_concat.h | 3 - scripts/rust_is_available_test.py | 58 +------------------ 39 files changed, 83 insertions(+), 451 deletions(-) delete mode 100644 drivers/android/binder/page_range_helper.c delete mode 100644 drivers/android/binder/page_range_helper.h delete mode 100644 rust/kernel/slice.rs delete mode 100644 scripts/rust_is_available_bindgen_0_66.h delete mode 100644 scripts/rust_is_available_bindgen_libclang_concat.h
base-commit: 36f5a2b09e650b82d7b2a106e3b93af48c2010d9 --
2.53.0