summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-02-24 17:57:06 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2021-02-24 17:57:06 +0100
commita555bdd0c58ce368fb1324f0e93d17f7c4babece (patch)
tree964dd7826bcd23078c1d7829ed9548ae7db7024b /init
parentMerge tag 'keys-misc-20210126' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff)
downloadlinux-a555bdd0c58ce368fb1324f0e93d17f7c4babece.tar.xz
linux-a555bdd0c58ce368fb1324f0e93d17f7c4babece.zip
Kbuild: enable TRIM_UNUSED_KSYMS again, with some guarding
In commit 5cf0fd591f2e ("Kbuild: disable TRIM_UNUSED_KSYMS option") I disabled this option because it's hugely expensive at build time, and I questioned how much use it gets. Several people piped up and convinced me it's actually useful, so instead of disabling it entirely, it now depends on EXPERT and gets disabled by COMPILE_TEST builds so that 'allmodconfig' style things don't enable it. I still hope somebody will take a look at the build time issue, because as Arnd also noted: "However, the combination of thinlto and trim indeed has a steep cost in compile time, taking almost twice as long as a normal defconfig (gc-sections makes it slightly faster)" Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Arnd Bergmann <arnd@kernel.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Cristoph Hellwig <hch@lst.de>, Cc: Miroslav Benes <mbenes@suse.cz> Cc: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig4
1 files changed, 2 insertions, 2 deletions
diff --git a/init/Kconfig b/init/Kconfig
index ba8bd5256980..c2a18f56e944 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -2273,8 +2273,8 @@ config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
If unsure, say N.
config TRIM_UNUSED_KSYMS
- bool "Trim unused exported kernel symbols"
- depends on BROKEN
+ bool "Trim unused exported kernel symbols" if EXPERT
+ depends on !COMPILE_TEST
help
The kernel and some modules make many symbols available for
other modules to use via EXPORT_SYMBOL() and variants. Depending