Message ID | 20210121184544.659998-1-alobakin@pm.me (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kspp-next] kbuild: prevent CC_FLAGS_LTO self-bloating on recursive rebuilds | expand |
On Thu, Jan 21, 2021 at 06:45:55PM +0000, Alexander Lobakin wrote: > CC_FLAGS_LTO gets initialized only via +=, never with := or =. > When building with CONFIG_TRIM_UNUSED_KSYMS, Kbuild may perform > several kernel rebuilds to satisfy symbol dependencies. In this > case, value of CC_FLAGS_LTO is concatenated each time, which > triggers a full rebuild. > Initialize it with := to fix this. > > Fixes: dc5723b02e52 ("kbuild: add support for Clang LTO") > Signed-off-by: Alexander Lobakin <alobakin@pm.me> Ah-ha, good catch; thanks! I'll get this into the tree. -Kees > --- > Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index 668909e7a460..2233951666f7 100644 > --- a/Makefile > +++ b/Makefile > @@ -895,10 +895,10 @@ endif > > ifdef CONFIG_LTO_CLANG > ifdef CONFIG_LTO_CLANG_THIN > -CC_FLAGS_LTO += -flto=thin -fsplit-lto-unit > +CC_FLAGS_LTO := -flto=thin -fsplit-lto-unit > KBUILD_LDFLAGS += --thinlto-cache-dir=$(extmod-prefix).thinlto-cache > else > -CC_FLAGS_LTO += -flto > +CC_FLAGS_LTO := -flto > endif > CC_FLAGS_LTO += -fvisibility=hidden > > -- > 2.30.0 > >
diff --git a/Makefile b/Makefile index 668909e7a460..2233951666f7 100644 --- a/Makefile +++ b/Makefile @@ -895,10 +895,10 @@ endif ifdef CONFIG_LTO_CLANG ifdef CONFIG_LTO_CLANG_THIN -CC_FLAGS_LTO += -flto=thin -fsplit-lto-unit +CC_FLAGS_LTO := -flto=thin -fsplit-lto-unit KBUILD_LDFLAGS += --thinlto-cache-dir=$(extmod-prefix).thinlto-cache else -CC_FLAGS_LTO += -flto +CC_FLAGS_LTO := -flto endif CC_FLAGS_LTO += -fvisibility=hidden
CC_FLAGS_LTO gets initialized only via +=, never with := or =. When building with CONFIG_TRIM_UNUSED_KSYMS, Kbuild may perform several kernel rebuilds to satisfy symbol dependencies. In this case, value of CC_FLAGS_LTO is concatenated each time, which triggers a full rebuild. Initialize it with := to fix this. Fixes: dc5723b02e52 ("kbuild: add support for Clang LTO") Signed-off-by: Alexander Lobakin <alobakin@pm.me> --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)