From: Miguel Ojeda <ojeda@kernel.org>
To: "Miguel Ojeda" <ojeda@kernel.org>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nicolas Schier" <nsc@kernel.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>, "Paul Walmsley" <pjw@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Albert Ou" <aou@eecs.berkeley.edu>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Brendan Higgins" <brendan.higgins@linux.dev>,
"David Gow" <david@davidgow.net>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Arve Hjønnevåg" <arve@android.com>,
"Todd Kjos" <tkjos@android.com>,
"Christian Brauner" <christian@brauner.io>,
"Carlos Llamas" <cmllamas@google.com>,
"Alice Ryhl" <aliceryhl@google.com>,
"Jonathan Corbet" <corbet@lwn.net>
Cc: "Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
rust-for-linux@vger.kernel.org, linux-kbuild@vger.kernel.org,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
"Vlastimil Babka" <vbabka@kernel.org>,
"Liam R . Howlett" <Liam.Howlett@oracle.com>,
"Uladzislau Rezki" <urezki@gmail.com>,
linux-block@vger.kernel.org,
linux-arm-kernel@lists.infradead.org (moderated for
non-subscribers), "Alexandre Ghiti" <alex@ghiti.fr>,
linux-riscv@lists.infradead.org, nouveau@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, "Rae Moar" <raemoar63@gmail.com>,
linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
"Nick Desaulniers" <nick.desaulniers+lkml@gmail.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>,
llvm@lists.linux.dev, linux-kernel@vger.kernel.org,
"Shuah Khan" <skhan@linuxfoundation.org>,
linux-doc@vger.kernel.org
Subject: [PATCH v2 32/33] rust: kbuild: support global per-version flags
Date: Mon, 6 Apr 2026 01:53:08 +0200 [thread overview]
Message-ID: <20260405235309.418950-33-ojeda@kernel.org> (raw)
In-Reply-To: <20260405235309.418950-1-ojeda@kernel.org>
Sometimes it is useful to gate global Rust flags per compiler version.
For instance, we may want to disable a lint that has false positives in
a single version [1].
We already had helpers like `rustc-min-version` for that, which we use
elsewhere, but we cannot currently use them for `rust_common_flags`,
which contains the global flags for all Rust code (kernel and host),
because `rustc-min-version` depends on `CONFIG_RUSTC_VERSION`, which
does not exist when `rust_common_flags` is defined.
Thus, to support that, introduce `rust_common_flags_per_version`,
defined after the `include/config/auto.conf` inclusion (where
`CONFIG_RUSTC_VERSION` becomes available), and append it to
`rust_common_flags`, `KBUILD_HOSTRUSTFLAGS` and `KBUILD_RUSTFLAGS`.
In addition, move the expansion of `HOSTRUSTFLAGS` to the same place,
so that users can also override per-version flags [2].
Link: https://lore.kernel.org/rust-for-linux/CANiq72mWdFU11GcCZRchzhy0Gi1QZShvZtyRkHV2O+WA2uTdVQ@mail.gmail.com/ [1]
Link: https://lore.kernel.org/rust-for-linux/CANiq72mTaA2tjhkLKf0-2hrrrt9rxWPgy6SfNSbponbGOegQvA@mail.gmail.com/ [2]
Link: https://patch.msgid.link/20260307170929.153892-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
Makefile | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 78f5ee173eda..a305ae4be522 100644
--- a/Makefile
+++ b/Makefile
@@ -506,7 +506,7 @@ KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \
KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) \
-I $(srctree)/scripts/include
KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
- -Zallow-features= $(HOSTRUSTFLAGS)
+ -Zallow-features=
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
KBUILD_PROCMACROLDFLAGS := $(or $(PROCMACROLDFLAGS),$(KBUILD_HOSTLDFLAGS))
@@ -836,6 +836,14 @@ endif # CONFIG_TRACEPOINTS
export WARN_ON_UNUSED_TRACEPOINTS
+# Per-version Rust flags. These are like `rust_common_flags`, but may
+# depend on the Rust compiler version (e.g. using `rustc-min-version`).
+rust_common_flags_per_version :=
+
+rust_common_flags += $(rust_common_flags_per_version)
+KBUILD_HOSTRUSTFLAGS += $(rust_common_flags_per_version) $(HOSTRUSTFLAGS)
+KBUILD_RUSTFLAGS += $(rust_common_flags_per_version)
+
include $(srctree)/arch/$(SRCARCH)/Makefile
ifdef need-config
--
2.53.0
next prev parent reply other threads:[~2026-04-05 23:59 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-05 23:52 [PATCH v2 00/33] rust: bump minimum Rust and `bindgen` versions Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 01/33] rust: kbuild: remove `--remap-path-prefix` workarounds Miguel Ojeda
2026-04-06 0:18 ` Gary Guo
2026-04-06 14:28 ` Tamir Duberstein
2026-04-05 23:52 ` [PATCH v2 02/33] rust: kbuild: remove "`try` keyword" workaround for `bindgen` < 0.59.2 Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 03/33] rust: kbuild: remove unneeded old `allow`s for generated layout tests Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 04/33] gpu: nova-core: bindings: remove unneeded `cfg_attr` Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 05/33] rust: bump Rust minimum supported version to 1.85.0 (Debian Trixie) Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 06/33] rust: bump Clippy's MSRV and clean `incompatible_msrv` allows Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 07/33] rust: allow globally `clippy::incompatible_msrv` Miguel Ojeda
2026-04-06 0:18 ` Gary Guo
2026-04-06 14:28 ` Tamir Duberstein
2026-04-06 14:37 ` Miguel Ojeda
2026-04-06 15:30 ` Tamir Duberstein
2026-04-05 23:52 ` [PATCH v2 08/33] rust: simplify `RUSTC_VERSION` Kconfig conditions Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 09/33] rust: remove `RUSTC_HAS_SLICE_AS_FLATTENED` and simplify code Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 10/33] rust: remove `RUSTC_HAS_COERCE_POINTEE` " Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 11/33] rust: kbuild: remove skipping of `-Wrustdoc::unescaped_backticks` Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 12/33] rust: kbuild: remove `feature(...)`s that are now stable Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 13/33] rust: transmute: simplify code with Rust 1.80.0 `split_at_*checked()` Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 14/33] rust: alloc: simplify with `NonNull::add()` now that it is stable Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 15/33] rust: macros: simplify code using `feature(extract_if)` Miguel Ojeda
2026-04-06 14:28 ` Tamir Duberstein
2026-04-05 23:52 ` [PATCH v2 16/33] rust: block: update `const_refs_to_static` MSRV TODO comment Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 17/33] rust: bump `bindgen` minimum supported version to 0.71.1 (Debian Trixie) Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 18/33] rust: rust_is_available: remove warning for `bindgen` 0.66.[01] Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 19/33] rust: rust_is_available: remove warning for `bindgen` < 0.69.5 && libclang >= 19.1 Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 20/33] rust: kbuild: update `bindgen --rust-target` version and replace comment Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 21/33] rust: kbuild: remove "dummy parameter" workaround for `bindgen` < 0.71.1 Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 22/33] docs: rust: quick-start: openSUSE provides `rust-src` package nowadays Miguel Ojeda
2026-04-05 23:52 ` [PATCH v2 23/33] docs: rust: quick-start: update Ubuntu versioned packages Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 24/33] docs: rust: quick-start: update minimum Ubuntu version Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 25/33] docs: rust: quick-start: add Ubuntu 26.04 LTS and remove subsection title Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 26/33] docs: rust: quick-start: remove Gentoo "testing" note Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 27/33] docs: rust: quick-start: remove Nix "unstable channel" note Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 28/33] docs: rust: quick-start: remove GDB/Binutils mention Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 29/33] docs: rust: general-information: simplify Kconfig example Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 30/33] docs: rust: general-information: use real example Miguel Ojeda
2026-04-05 23:53 ` [PATCH v2 31/33] rust: declare cfi_encoding for lru_status Miguel Ojeda
2026-04-05 23:53 ` Miguel Ojeda [this message]
2026-04-06 14:28 ` [PATCH v2 32/33] rust: kbuild: support global per-version flags Tamir Duberstein
2026-04-05 23:53 ` [PATCH v2 33/33] rust: kbuild: allow `clippy::precedence` for Rust < 1.86.0 Miguel Ojeda
2026-04-06 9:03 ` [PATCH v2 00/33] rust: bump minimum Rust and `bindgen` versions Miguel Ojeda
2026-04-06 18:51 ` John Hubbard
2026-04-06 19:01 ` Miguel Ojeda
2026-04-06 19:07 ` John Hubbard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260405235309.418950-33-ojeda@kernel.org \
--to=ojeda@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=alex@ghiti.fr \
--cc=aliceryhl@google.com \
--cc=aou@eecs.berkeley.edu \
--cc=arve@android.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=brendan.higgins@linux.dev \
--cc=catalin.marinas@arm.com \
--cc=christian@brauner.io \
--cc=cmllamas@google.com \
--cc=corbet@lwn.net \
--cc=dakr@kernel.org \
--cc=david@davidgow.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=justinstitt@google.com \
--cc=kunit-dev@googlegroups.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=llvm@lists.linux.dev \
--cc=lorenzo.stoakes@oracle.com \
--cc=lossin@kernel.org \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=nouveau@lists.freedesktop.org \
--cc=nsc@kernel.org \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=raemoar63@gmail.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
--cc=skhan@linuxfoundation.org \
--cc=tkjos@android.com \
--cc=tmgross@umich.edu \
--cc=urezki@gmail.com \
--cc=vbabka@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox