From: Nicolas Schier <nsc@kernel.org>
To: xur@google.com
Cc: Masahiro Yamada <masahiroy@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Miguel Ojeda <ojeda@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Alice Ryhl <aliceryhl@google.com>,
Sami Tolvanen <samitolvanen@google.com>,
"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
Rafael Aquini <aquini@redhat.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Stafford Horne <shorne@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Piotr Gorski <piotrgorski@cachyos.org>,
Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
Teresa Johnson <tejohnson@google.com>,
linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
llvm@lists.linux.dev
Subject: Re: [PATCH v7 3/3] kbuild: distributed build support for Clang ThinLTO
Date: Sun, 29 Mar 2026 22:05:02 +0200 [thread overview]
Message-ID: <acmF7nvIh2nX5hjK@levanger> (raw)
In-Reply-To: <20260328011927.3569802-4-xur@google.com>
On Sat, Mar 28, 2026 at 01:19:27AM +0000, xur@google.com wrote:
> From: Rong Xu <xur@google.com>
>
> Add distributed ThinLTO build support for the Linux kernel.
> This new mode offers several advantages: (1) Increased
> flexibility in handling user-specified build options.
> (2) Improved user-friendliness for developers. (3) Greater
> convenience for integrating with objtool and livepatch.
>
> Note that "distributed" in this context refers to a term
> that differentiates in-process ThinLTO builds by invoking
> backend compilation through the linker, not necessarily
> building in distributed environments.
>
> Distributed ThinLTO is enabled via the
> `CONFIG_LTO_CLANG_THIN_DIST` Kconfig option. For example:
> > make LLVM=1 defconfig
> > scripts/config -e LTO_CLANG_THIN_DIST
> > make LLVM=1 oldconfig
> > make LLVM=1 vmlinux -j <..>
>
> The build flow proceeds in four stages:
> 1. Perform FE compilation, mirroring the in-process ThinLTO mode.
> 2. Thin-link the generated IR files and object files.
> 3. Find all IR files and perform BE compilation, using the flags
> stored in the .*.o.cmd files.
> 4. Link the BE results to generate the final vmlinux.o.
>
> NOTE: This patch currently implements the build for the main kernel
> image (vmlinux) only. Kernel module support is planned for a
> subsequent patch.
>
> Tested on the following arch: x86, arm64, loongarch, and
> riscv.
>
> The earlier implementation details can be found here:
> https://discourse.llvm.org/t/rfc-distributed-thinlto-build-for-kernel/85934
>
> Signed-off-by: Rong Xu <xur@google.com>
> Co-developed-by: Masahiro Yamada <masahiroy@kernel.org>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> .gitignore | 2 ++
> Makefile | 9 +++++----
> arch/Kconfig | 19 ++++++++++++++++++
> scripts/Makefile.lib | 7 +++++++
> scripts/Makefile.thinlto | 40 ++++++++++++++++++++++++++++++++++++++
> scripts/Makefile.vmlinux_a | 37 +++++++++++++++++++++++++++++++++++
> scripts/mod/modpost.c | 15 +++++++++++---
> 7 files changed, 122 insertions(+), 7 deletions(-)
> create mode 100644 scripts/Makefile.thinlto
>
[...]
> diff --git a/Makefile b/Makefile
> index 69ccf9b8507d..d474b6f0f212 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1047,11 +1047,11 @@ export CC_FLAGS_SCS
> endif
>
> ifdef CONFIG_LTO_CLANG
> -ifdef CONFIG_LTO_CLANG_THIN
> +ifdef CONFIG_LTO_CLANG_FULL
> +CC_FLAGS_LTO := -flto
> +else
> CC_FLAGS_LTO := -flto=thin -fsplit-lto-unit
> KBUILD_LDFLAGS += $(call ld-option,--lto-whole-program-visibility -mllvm -always-rename-promoted-locals=false)
> -else
> -CC_FLAGS_LTO := -flto
> endif
> CC_FLAGS_LTO += -fvisibility=hidden
>
This hunk is just reordering but does not change any functionality,
right?
Iff yes, I'd skip this one.
Nathan, Piotr: your tags got dropped from v6 to v7. Do you want to
renew them?
Kind regards
Nicolas
next prev parent reply other threads:[~2026-03-29 20:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-28 1:19 [PATCH v7 0/3] kbuild: distributed build support for Clang ThinLTO xur
2026-03-28 1:19 ` [PATCH v7 1/3] kbuild: move vmlinux.a build rule to scripts/Makefile.vmlinux_a xur
2026-03-28 1:19 ` [PATCH v7 2/3] kbuild: change --thin back to 'T' in $(AR) xur
2026-03-28 1:19 ` [PATCH v7 3/3] kbuild: distributed build support for Clang ThinLTO xur
2026-03-29 20:05 ` Nicolas Schier [this message]
2026-03-30 10:01 ` Nathan Chancellor
2026-03-30 15:55 ` Rong Xu
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=acmF7nvIh2nX5hjK@levanger \
--to=nsc@kernel.org \
--cc=aliceryhl@google.com \
--cc=aquini@redhat.com \
--cc=christophe.leroy@csgroup.eu \
--cc=justinstitt@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=morbo@google.com \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=ojeda@kernel.org \
--cc=piotrgorski@cachyos.org \
--cc=rppt@kernel.org \
--cc=samitolvanen@google.com \
--cc=shorne@gmail.com \
--cc=tejohnson@google.com \
--cc=tglx@linutronix.de \
--cc=venkat88@linux.ibm.com \
--cc=xur@google.com \
/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.