Re: kbuild: check the minimum compiler version in Kconfig
From: Florian Fainelli
Date: Wed Nov 16 2022 - 16:49:41 EST
Hi Masahiro, Nick,
The compiler version check performed with
aec6c60a01d3a3170242d6a99372a388e1136dc6 ("kbuild: check the minimum
compiler version in Kconfig") can be defeated and prevent running the
*config targets if specifying LLVM=1 on the command line, in that way:
BR_BINARIES_DIR=/local/users/fainelli/buildroot-llvm/output/arm64/images
LLVM=1 LLVM_IAS=1 PKG_CONFIG_PATH="" /usr/bin/make -j49 -C
/local/users/fainelli/buildroot-llvm/output/arm64/build/linux-custom
HOSTCC="/usr/bin/gcc"
HOSTCC="/local/users/fainelli/buildroot-llvm/output/arm64/host/bin/ccache
/usr/bin/gcc -O2
-I/local/users/fainelli/buildroot-llvm/output/arm64/host/include
-DNDEBUG -L/local/users/fainelli/buildroot-llvm/output/arm64/host/lib
-Wl,-rpath,/local/users/fainelli/buildroot-llvm/output/arm64/host/lib"
ARCH=arm64
INSTALL_MOD_PATH=/local/users/fainelli/buildroot-llvm/output/arm64/target
CROSS_COMPILE="/local/users/fainelli/buildroot-llvm/output/arm64/host/bin/aarch64-linux-"
WERROR=0
DEPMOD=/local/users/fainelli/buildroot-llvm/output/arm64/host/sbin/depmod
INSTALL_MOD_STRIP=1 HOSTCC="/usr/bin/gcc" menuconfig
UPD scripts/kconfig/mconf-cfg
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTLD scripts/kconfig/mconf
***
*** Compiler is too old.
*** Your Clang version: 10.0.0
*** Minimum Clang version: 10.0.1
***
scripts/Kconfig.include:44: Sorry, this compiler is not supported.
Here, the compiler check is actually checking the host compiler clang
version installed on my Ubuntu 20.04 system, as opposed to the cross
compiler clang version that is being used.
It is not clear to me how to best address that, short of not specifying
LLVM=1 on the kernel *config targets, but IMHO there is still an actual
issue where we do not check the compiler that we would want to check.
Thanks!
--
Florian