From: Alice Ryhl <aliceryhl@google.com>
To: Will Deacon <will@kernel.org>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <nick.desaulniers+lkml@gmail.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>,
"Nicolas Schier" <nicolas.schier@linux.dev>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Uladzislau Rezki" <urezki@gmail.com>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev, linux-kbuild@vger.kernel.org,
linux-mm@kvack.org, "Matthew Maurer" <mmaurer@google.com>,
elver@google.com
Subject: Re: [PATCH v2 1/3] kbuild: rust: add `CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE`
Date: Tue, 3 Feb 2026 12:02:24 +0000 [thread overview]
Message-ID: <aYHj0EbrMWMornMj@google.com> (raw)
In-Reply-To: <aYHgtJ_xLeo5W-lZ@willie-the-truck>
On Tue, Feb 03, 2026 at 11:49:08AM +0000, Will Deacon wrote:
> On Tue, Feb 03, 2026 at 11:34:08AM +0000, Alice Ryhl wrote:
> > From: Gary Guo <gary@garyguo.net>
> >
> > This config detects if Rust and Clang have matching LLVM major version.
> > All IR or bitcode operations (e.g. LTO) rely on LLVM major version to be
> > matching, otherwise it may generate errors, or worse, miscompile
> > silently due to change of IR semantics.
> >
> > It's usually suggested to use the exact same LLVM version, but this can
> > be difficult to guarantee. Rust's suggestion [1] is also major-version
> > only, so I think this check is sufficient for the kernel.
> >
> > Link: https://doc.rust-lang.org/rustc/linker-plugin-lto.html [1]
> > Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
> > Signed-off-by: Gary Guo <gary@garyguo.net>
> > Signed-off-by: Matthew Maurer <mmaurer@google.com>
> > Signed-off-by: Alice Ryhl <aliceryhl@google.com>
> > ---
> > init/Kconfig | 15 +++++++++++++++
> > 1 file changed, 15 insertions(+)
> >
> > diff --git a/init/Kconfig b/init/Kconfig
> > index e95d43457851862afc8313389777e4dd9348c178..0e900d3d8be7874a33e0f44754a8d038e68d7e65 100644
> > --- a/init/Kconfig
> > +++ b/init/Kconfig
> > @@ -82,6 +82,21 @@ config RUSTC_LLVM_VERSION
> > int
> > default $(rustc-llvm-version)
> >
> > +config RUSTC_LLVM_MAJOR_VERSION
> > + int
> > + default $(shell,expr $(rustc-llvm-version) / 10000)
> > +
> > +config RUSTC_CLANG_LLVM_COMPATIBLE
> > + bool
> > + default y if CC_IS_CLANG && RUSTC_LLVM_MAJOR_VERSION = $(shell,expr $(cc-version) / 10000)
> > + help
> > + This indicates whether Rust and Clang use LLVM of the same major
> > + version.
> > +
> > + Operations involving handling LLVM IR or bitcode (e.g. cross-language
> > + LTO) requires the same LLVM major version to work properly. For best
> > + compatibility it is recommended that the exact same LLVM is used.
>
> Is cross-language LTO something we're actually looking at doing for the
> kernel, or is this just stale help text given what you're using it for
> in this series?
I would like to see CONFIG_LTO actually perform cross-language inlining,
but it'd require doing something about both:
1. The issues mentioned in patch 2 of this series.
2. The issues mentioned in commit 5daa0c35a1f0 ("rust: Disallow BTF
generation with Rust + LTO").
As for whether it's stale help text ... CONFIG_RUST_INLINE_HELPERS works
by performing cross-language LTO too. But I can see your point that it
would make sense to improve this wording given that we're not making
CONFIG_LTO work now.
Alice
next prev parent reply other threads:[~2026-02-03 12:02 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 11:34 [PATCH v2 0/3] Inline helpers into Rust without full LTO Alice Ryhl
2026-02-03 11:34 ` [PATCH v2 1/3] kbuild: rust: add `CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE` Alice Ryhl
2026-02-03 11:49 ` Will Deacon
2026-02-03 12:02 ` Alice Ryhl [this message]
2026-03-05 10:12 ` Nicolas Schier
2026-03-05 10:51 ` Alice Ryhl
2026-03-14 0:26 ` Nathan Chancellor
2026-02-03 11:34 ` [PATCH v2 2/3] rust: helpers: #define __rust_helper Alice Ryhl
2026-03-14 0:28 ` Nathan Chancellor
2026-02-03 11:34 ` [PATCH v2 3/3] build: rust: provide an option to inline C helpers into Rust Alice Ryhl
2026-03-06 17:32 ` Alice Ryhl
2026-03-14 0:40 ` Nathan Chancellor
2026-03-14 11:22 ` Alice Ryhl
2026-03-16 21:34 ` Nathan Chancellor
2026-03-17 8:02 ` Miguel Ojeda
2026-03-14 0:34 ` Nathan Chancellor
2026-03-17 8:25 ` [PATCH v2 0/3] Inline helpers into Rust without full LTO Andreas Hindborg
2026-03-22 19:21 ` Miguel Ojeda
2026-03-22 19:38 ` Miguel Ojeda
2026-03-23 13:54 ` Mark Brown
2026-03-23 14:53 ` Miguel Ojeda
2026-03-22 19:46 ` Miguel Ojeda
2026-03-23 8:49 ` Marek Szyprowski
2026-03-25 1:58 ` Miguel Ojeda
2026-03-26 21:12 ` Arnd Bergmann
2026-03-27 8:02 ` Miguel Ojeda
2026-03-27 8:16 ` Marek Szyprowski
2026-03-23 0:03 ` Miguel Ojeda
2026-03-23 3:04 ` Andrew Lunn
2026-03-23 3:24 ` Miguel Ojeda
2026-03-23 12:54 ` Andrew Lunn
2026-03-23 13:13 ` Gary Guo
2026-03-23 13:28 ` Andrew Lunn
2026-03-23 13:34 ` Miguel Ojeda
2026-03-23 14:39 ` Alice Ryhl
2026-03-23 13:14 ` Miguel Ojeda
2026-03-23 10:03 ` Russell King (Oracle)
2026-03-23 13:26 ` Miguel Ojeda
2026-03-26 10:10 ` Alice Ryhl
2026-03-26 13:47 ` Miguel Ojeda
2026-03-26 14:31 ` Christian Schrefl
2026-03-26 15:18 ` Russell King (Oracle)
2026-03-26 17:30 ` Miguel Ojeda
2026-03-30 21:09 ` Christian Schrefl
2026-03-31 11:44 ` Arnd Bergmann
2026-03-26 21:33 ` Arnd Bergmann
2026-03-27 7:56 ` Geert Uytterhoeven
2026-03-27 9:02 ` Arnd Bergmann
2026-03-27 13:41 ` Arnd Bergmann
2026-03-30 12:03 ` Geert Uytterhoeven
2026-03-30 12:13 ` Arnd Bergmann
2026-03-30 12:17 ` Geert Uytterhoeven
2026-03-26 17:31 ` Miguel Ojeda
2026-03-26 2:42 ` Nathan Chancellor
2026-03-26 17:13 ` Miguel Ojeda
2026-03-26 5:34 ` David Gow
2026-03-29 17:33 ` Miguel Ojeda
-- strict thread matches above, loose matches on Subject: below --
2025-01-05 19:40 [PATCH v2 0/3] kbuild: rust: provide an option to inline C helpers into Rust Gary Guo
2025-01-05 19:40 ` [PATCH v2 1/3] kbuild: rust: add `CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE` Gary Guo
2025-01-06 9:02 ` Alice Ryhl
2025-01-07 11:29 ` Andreas Hindborg
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=aYHj0EbrMWMornMj@google.com \
--to=aliceryhl@google.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=elver@google.com \
--cc=gary@garyguo.net \
--cc=justinstitt@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=lossin@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mmaurer@google.com \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=nicolas.schier@linux.dev \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
--cc=urezki@gmail.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.