[PATCH] kernel/configs: Disable LTO on kernel/configs.o

Yifan Hong posted 1 patch 1 year, 7 months ago
kernel/Makefile | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] kernel/configs: Disable LTO on kernel/configs.o
Posted by Yifan Hong 1 year, 7 months ago
This solves an incremental
build issue that, when a config changes, config_data
and config_data.gz is rebuilt, but because the
.thinlto-cache cannot be updated, the config is not
reflected in the final vmlinux binary.

The issue is described in
https://github.com/ClangBuiltLinux/linux/issues/2021.

Signed-off-by: Yifan Hong <elsk@google.com>
---
 kernel/Makefile | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/Makefile b/kernel/Makefile
index 10ef068f598d..76d9acc49c5f 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -140,6 +140,10 @@ obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o
 
 $(obj)/configs.o: $(obj)/config_data.gz
 
+# Disable LTO on configs.o so changes in .config is reflected in vmlinux. See
+# https://github.com/ClangBuiltLinux/linux/issues/2021
+CFLAGS_REMOVE_configs.o += $(CC_FLAGS_LTO)
+
 targets += config_data config_data.gz
 $(obj)/config_data.gz: $(obj)/config_data FORCE
 	$(call if_changed,gzip)
-- 
2.45.0.rc1.225.g2a3ae87e7f-goog