Re: [PATCH] kbuild: rust: add AutoFDO support
From: Alice Ryhl
Date: Fri Mar 20 2026 - 02:47:12 EST
On Thu, Mar 19, 2026 at 04:54:43PM -0700, Nathan Chancellor wrote:
> On Thu, Mar 19, 2026 at 07:09:22PM +0000, Gary Guo wrote:
> > On Thu Mar 19, 2026 at 4:33 PM GMT, Alice Ryhl wrote:
> > > On Thu, Mar 19, 2026 at 12:47 PM Gary Guo <gary@xxxxxxxxxxx> wrote:
> > >> On Thu Mar 19, 2026 at 11:44 AM GMT, Alice Ryhl wrote:
> > >> > Do you think it's worth having Rust not match the CFLAGS here?
> > >> >
> > >>
> > >> I think the C flags should probably be renamed AUTOFDO_LLVM too. After call, all
> > >> the perf tools involved here are called llvm-foobar as well.
> > >
> > > But isn't it just called this because the config option is
> > > CONFIG_AUTOFDO_CLANG? So it's the CFLAGS or RUSTFLAGS related to that
> > > particular config option. It may make sense to rename
> > > CONFIG_AUTOFDO_CLANG to CONFIG_AUTOFDO, but that's out-of-scope for
> > > this change, in my opinion.
> >
> > I get that it's an existing config name, but previously it is a correct
> > description, while after this change it is no longer accurate.
> >
> > I don't know if there's an established practice on renaming CONFIG options when
> > this sort thing happens though. Perhaps one way is to have add
> > CONFIG_AUTOFDO_CLANG that selects CONFIG_AUTOFDO.
>
> As Miguel mentioned, there is the transitional keyword for Kconfig to
> handle renames now but I would really like there to be a compelling
> reason for the rename other than LLVM is a little more accurate than
> CLANG. The kernel has never really done a great job of referring to
> Clang when it means the C compiler vs. the whole LLVM toolchain (like
> LTO_CLANG and all its derivatives should be LTO_LLVM since it requires
> ld.lld, llvm-nm, and llvm-ar in addition to clang). Additionally, aside
> from the configuration, there is the user facing Make variable
> CLANG_AUTOFDO_PROFILE that would presumably need to be changed for
> consistency.
>
> If we want to change the internal Kbuild variable names, I don't care as
> much about that.
How about we just call them:
* CFLAGS_AUTOFDO_CLANG
* RUSTFLAGS_AUTOFDO
then? For cflags, clarify that they are clang flags. For rustc, there is
no such distinction to make (yet).
Another option:
* CFLAGS_AUTOFDO_CLANG
* RUSTFLAGS_AUTOFDO_RUSTC
Alice