Messages in this thread | | | From | Nick Desaulniers <> | Date | Wed, 16 Nov 2022 14:48:15 -0800 | Subject | Re: kbuild: check the minimum compiler version in Kconfig |
| |
On Wed, Nov 16, 2022 at 1:48 PM Florian Fainelli <f.fainelli@gmail.com> wrote: > > 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.
LLVM=1 will use `clang` as found by your $PATH. Where did you express to make what the "cross compiler clang version" is? (And why do you set HOSTCC three times)
> > 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
-- Thanks, ~Nick Desaulniers
| |