Makefile: Strip leading spaces when preprocessing generated_defconfig
authorYao Zi <ziyao@disroot.org>
Sun, 27 Apr 2025 14:50:10 +0000 (14:50 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 5 May 2025 20:17:23 +0000 (14:17 -0600)
Clang's preprocessor may emit extra spaces for lines starting with '#'.
Lines with these extra characters cannot be handled by Kconfig and will
be ignored with warnings like,

        unexpected data:  # CONFIG_OF_BOARD_FIXUP is not set

Those options that is expected to be assigned explicitly with N will be
set to the default value, messing up board configurations.

Let's sed these spaces away to ensure board configurations could be
correctly generated with Clang.

Link: https://github.com/llvm/llvm-project/issues/78778
Fixes: 2027e99e61a ("Makefile: Run defconfig files through the C preprocessor")
Reported-by: Nathaniel Hourt <I@nathaniel.land>
Signed-off-by: Yao Zi <ziyao@disroot.org>
scripts/kconfig/Makefile

index 079add4..ba30652 100644 (file)
@@ -94,6 +94,7 @@ endif
 
 %_defconfig: $(obj)/conf
        $(Q)$(CPP) -nostdinc -P -I $(srctree) -undef -x assembler-with-cpp $(srctree)/arch/$(SRCARCH)/configs/$@ -o generated_defconfig
+       $(Q)sed -i -e 's/^[[:space:]]//' generated_defconfig
        $(Q)$< $(silent) --defconfig=generated_defconfig $(Kconfig)
 
 # Added for U-Boot (backward compatibility)