summaryrefslogtreecommitdiffstats
path: root/Kconfig
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2020-04-23 16:23:52 +0200
committerMasahiro Yamada <masahiroy@kernel.org>2020-05-12 06:28:33 +0200
commit8b59cd81dc5e724eaea283fa6006985891c7bff4 (patch)
treefb5f5ffbfb4f6e27a951a122e0b262439ccd1177 /Kconfig
parentkbuild: use $(CC_VERSION_TEXT) to evaluate CC_IS_GCC and CC_IS_CLANG (diff)
downloadlinux-8b59cd81dc5e724eaea283fa6006985891c7bff4.tar.xz
linux-8b59cd81dc5e724eaea283fa6006985891c7bff4.zip
kbuild: ensure full rebuild when the compiler is updated
Commit 21c54b774744 ("kconfig: show compiler version text in the top comment") added the environment variable, CC_VERSION_TEXT in the comment of the top Kconfig file. It can detect the compiler update, and invoke the syncconfig because all environment variables referenced in Kconfig files are recorded in include/config/auto.conf.cmd This commit makes it a CONFIG option in order to ensure the full rebuild when the compiler is updated. This works like follows: include/config/kconfig.h contains "CONFIG_CC_VERSION_TEXT" in the comment block. The top Makefile specifies "-include $(srctree)/include/linux/kconfig.h" to guarantee it is included from all kernel source files. fixdep parses every source file and all headers included from it, searching for words prefixed with "CONFIG_". Then, fixdep finds CONFIG_CC_VERSION_TEXT in include/config/kconfig.h and adds include/config/cc/version/text.h into every .*.cmd file. When the compiler is updated, syncconfig is invoked because init/Kconfig contains the reference to the environment variable CC_VERTION_TEXT. CONFIG_CC_VERSION_TEXT is updated to the new version string, and include/config/cc/version/text.h is touched. In the next rebuild, Make will rebuild every files since the timestamp of include/config/cc/version/text.h is newer than that of target. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'Kconfig')
-rw-r--r--Kconfig2
1 files changed, 0 insertions, 2 deletions
diff --git a/Kconfig b/Kconfig
index e10b3ee084d4..745bc773f567 100644
--- a/Kconfig
+++ b/Kconfig
@@ -5,8 +5,6 @@
#
mainmenu "Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration"
-comment "Compiler: $(CC_VERSION_TEXT)"
-
source "scripts/Kconfig.include"
source "init/Kconfig"