[RFC PATCH] x86/Kconfig: Fix allyesconfig

From: Guenter Roeck
Date: Sun Apr 13 2025 - 21:13:59 EST


64-bit allyesconfig builds fail with

x86_64-linux-ld: kernel image bigger than KERNEL_IMAGE_SIZE

Bisect points to commit 6f110a5e4f99 ("Disable SLUB_TINY for build
testing") as the responsible commit. Reverting that patch does indeed
fix the problem. Further analysis shows that disabling SLUB_TINY enables
CONFIG_KASAN, and that CONFIG_KASAN is responsible for the image size
increase.

Solve the test build problem by selectively disabling CONFIG_KASAN for
'allyesconfig' build tests of 64-bit X86 builds.

Fixes: 6f110a5e4f99 ("Disable SLUB_TINY for build testing")
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
---
RFC: Maybe there is a better solution for the problem.
Even increasing the maximum image size to 1.5GB did not help.
Also, maybe there is a better way to determine if this is an
"allyesconfig" build test.
On top of that, I am not sure if the "Fixes" tag is really
appropriate.

lib/Kconfig.kasan | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
index f82889a830fa..fb87c40798cd 100644
--- a/lib/Kconfig.kasan
+++ b/lib/Kconfig.kasan
@@ -31,6 +31,10 @@ config CC_HAS_KASAN_SW_TAGS
config CC_HAS_WORKING_NOSANITIZE_ADDRESS
def_bool !CC_IS_GCC || GCC_VERSION >= 80300

+config KASAN_COMPILE_TEST
+ tristate "KASAN compile test"
+ depends on COMPILE_TEST && 64BIT && X86
+
menuconfig KASAN
bool "KASAN: dynamic memory safety error detector"
depends on (((HAVE_ARCH_KASAN && CC_HAS_KASAN_GENERIC) || \
@@ -38,6 +42,7 @@ menuconfig KASAN
CC_HAS_WORKING_NOSANITIZE_ADDRESS) || \
HAVE_ARCH_KASAN_HW_TAGS
depends on SYSFS && !SLUB_TINY
+ depends on KASAN_COMPILE_TEST!=y
select STACKDEPOT_ALWAYS_INIT
help
Enables KASAN (Kernel Address Sanitizer) - a dynamic memory safety
--
2.45.2