* Build breakage from renamed '-split-machine-functions' plugin option
@ 2026-10-09 21:45 Nathan Chancellor
[not found] ` <CAF1bQ=Qq66JuvYrbR-7GgegZuWPSjxDOgerUSD2NOp9W0BauZw@mail.gmail.com>
0 siblings, 1 reply; 3+ messages in thread
From: Nathan Chancellor @ 2026-10-09 21:45 UTC (permalink / raw)
To: Rong Xu, Han Shen; +Cc: llvm, linux-kbuild
Hi Rong and Han,
LLVM recently landed a commit renaming the '-split-machine-functions'
plugin option to '-function-splitting=all':
https://github.com/llvm/llvm-project/commit/3e6acc87c58843e551d6e8e4bf06c26712b04622
This breaks builds with CONFIG_AUTOFDO and CONFIG_LTO_CLANG_THIN with:
ld.lld: error: -plugin-opt=-: ld.lld: Unknown command line argument '-split-machine-functions'. Try: 'ld.lld --help'
Obviously, we can handle this rename but I noticed that the combination
of '-flto -fsplit-machine-functions' should add the corresponding
'-plugin-opt=' since LLVM 15:
https://github.com/llvm/llvm-project/commit/72acd042bad35f78232f17addc02196a7af1a6e9
So is this even necessary? Should we just remove
KBUILD_LDFLAGS += -plugin-opt=-split-machine-functions
from scripts/Makefile.autofdo and rely on '-fsplit-machine-functions' to
do the right thing or am I missing something here?
--
Cheers,
Nathan
^ permalink raw reply [flat|nested] 3+ messages in thread[parent not found: <CAF1bQ=Qq66JuvYrbR-7GgegZuWPSjxDOgerUSD2NOp9W0BauZw@mail.gmail.com>]
* Re: Build breakage from renamed '-split-machine-functions' plugin option [not found] ` <CAF1bQ=Qq66JuvYrbR-7GgegZuWPSjxDOgerUSD2NOp9W0BauZw@mail.gmail.com> @ 2026-10-10 18:49 ` Rong Xu 2026-10-10 18:50 ` Rong Xu 1 sibling, 0 replies; 3+ messages in thread From: Rong Xu @ 2026-10-10 18:49 UTC (permalink / raw) To: Nathan Chancellor; +Cc: Han Shen, llvm, linux-kbuild Sorry that if you receive duplicated email. Thanks, -Rong On Sat, Oct 10, 2026 at 8:46 PM Rong Xu <xur@google.com> wrote: > > Hi Nathan, > > Thanks for bringing this to our attention. We will need to rename the option accordingly. > > We need this option for ThinLTO (though not distributed ThinLTO). During a ThinLTO build, LD is called directly when building vmlinux.o, so the Clang driver change will not apply in this case. > > Please note that I am currently on vacation and may be slow to respond. > > Thanks, > > -Rong > > > On Fri, Oct 9, 2026 at 11:45 PM Nathan Chancellor <nathan@kernel.org> wrote: >> >> Hi Rong and Han, >> >> LLVM recently landed a commit renaming the '-split-machine-functions' >> plugin option to '-function-splitting=all': >> >> https://github.com/llvm/llvm-project/commit/3e6acc87c58843e551d6e8e4bf06c26712b04622 >> >> This breaks builds with CONFIG_AUTOFDO and CONFIG_LTO_CLANG_THIN with: >> >> ld.lld: error: -plugin-opt=-: ld.lld: Unknown command line argument '-split-machine-functions'. Try: 'ld.lld --help' >> >> Obviously, we can handle this rename but I noticed that the combination >> of '-flto -fsplit-machine-functions' should add the corresponding >> '-plugin-opt=' since LLVM 15: >> >> https://github.com/llvm/llvm-project/commit/72acd042bad35f78232f17addc02196a7af1a6e9 >> >> So is this even necessary? Should we just remove >> >> KBUILD_LDFLAGS += -plugin-opt=-split-machine-functions >> >> from scripts/Makefile.autofdo and rely on '-fsplit-machine-functions' to >> do the right thing or am I missing something here? >> >> -- >> Cheers, >> Nathan ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Build breakage from renamed '-split-machine-functions' plugin option [not found] ` <CAF1bQ=Qq66JuvYrbR-7GgegZuWPSjxDOgerUSD2NOp9W0BauZw@mail.gmail.com> 2026-10-10 18:49 ` Rong Xu @ 2026-10-10 18:50 ` Rong Xu 1 sibling, 0 replies; 3+ messages in thread From: Rong Xu @ 2026-10-10 18:50 UTC (permalink / raw) To: Nathan Chancellor; +Cc: Han Shen, llvm, linux-kbuild Hi Nathan, Thanks for bringing this to our attention. We will need to rename the option accordingly. We need this option for ThinLTO (though not distributed ThinLTO). During a ThinLTO build, LD is called directly when building vmlinux.o, so the Clang driver change will not apply in this case. Please note that I am currently on vacation and may be slow to respond. -Rong On Sat, Oct 10, 2026 at 8:46 PM Rong Xu <xur@google.com> wrote: > > Hi Nathan, > > Thanks for bringing this to our attention. We will need to rename the option accordingly. > > We need this option for ThinLTO (though not distributed ThinLTO). During a ThinLTO build, LD is called directly when building vmlinux.o, so the Clang driver change will not apply in this case. > > Please note that I am currently on vacation and may be slow to respond. > > Thanks, > > -Rong > > > On Fri, Oct 9, 2026 at 11:45 PM Nathan Chancellor <nathan@kernel.org> wrote: >> >> Hi Rong and Han, >> >> LLVM recently landed a commit renaming the '-split-machine-functions' >> plugin option to '-function-splitting=all': >> >> https://github.com/llvm/llvm-project/commit/3e6acc87c58843e551d6e8e4bf06c26712b04622 >> >> This breaks builds with CONFIG_AUTOFDO and CONFIG_LTO_CLANG_THIN with: >> >> ld.lld: error: -plugin-opt=-: ld.lld: Unknown command line argument '-split-machine-functions'. Try: 'ld.lld --help' >> >> Obviously, we can handle this rename but I noticed that the combination >> of '-flto -fsplit-machine-functions' should add the corresponding >> '-plugin-opt=' since LLVM 15: >> >> https://github.com/llvm/llvm-project/commit/72acd042bad35f78232f17addc02196a7af1a6e9 >> >> So is this even necessary? Should we just remove >> >> KBUILD_LDFLAGS += -plugin-opt=-split-machine-functions >> >> from scripts/Makefile.autofdo and rely on '-fsplit-machine-functions' to >> do the right thing or am I missing something here? >> >> -- >> Cheers, >> Nathan ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-10 18:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-09 21:45 Build breakage from renamed '-split-machine-functions' plugin option Nathan Chancellor
[not found] ` <CAF1bQ=Qq66JuvYrbR-7GgegZuWPSjxDOgerUSD2NOp9W0BauZw@mail.gmail.com>
2026-10-10 18:49 ` Rong Xu
2026-10-10 18:50 ` Rong Xu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox