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>
%_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)