Sorry for the slow reply, I was working on some bugs that were taking up a significant amount of time.
I've tossed this into my integration branch and will follow up if there are any issues. Bruce On Tue, Nov 17, 2020 at 11:38 AM Tyler Hicks <tyhi...@linux.microsoft.com> wrote: > > Pass certain environment variables, meant to convey information about > the toolchain to use, as make variables when creating a kernel config > file. The kernel build system checks for toolchain capabilities when > generating the merged config file and a valid toolchain is required to > enable some options. > > OpenEmbedded has attempted, for a couple years now, to specify the > compiler by setting the CC environment variable: > > > https://git.openembedded.org/openembedded-core/commit/?id=ff1bdd75d50f0ebac3d599e461685ace29559a82 > > This was unsuccessful due to the kernel's top-level Makefile explicitly > assigning variables, such as CC, and ignoring what's present in the > environment. It is possible to override this behavior by invoking make > with the '-e' option but the make manual discourages this: > > Every environment variable that make sees when it starts up is > transformed into a make variable with the same name and value. > However, an explicit assignment in the makefile, or with a command > argument, overrides the environment. (If the ā-eā flag is specified, > then values from the environment override assignments in the makefile. > See Summary of Options. But this is not recommended practice.) > > A simple test case is to create a defconfig while specifying clang as > the compiler to use: > > $ make CC=clang-10 defconfig > ... > > Create a config fragment that attempts to enable > CONFIG_INIT_STACK_ALL_PATTERN which is currently only possible to enable > when building with clang: > > $ echo "CONFIG_INIT_STACK_ALL_PATTERN=y" > init-stack-all.cfg > > Specify clang in the environment when running merge_config.sh and see > that the option couldn't be enabled: > > $ CC=clang-10 merge_config.sh .config init-stack-all.cfg > ... > Value requested for CONFIG_INIT_STACK_ALL_PATTERN not in final .config > Requested value: CONFIG_INIT_STACK_ALL_PATTERN=y > Actual value: > > Note that the less secure CONFIG_INIT_STACK_NONE option is enabled, > instead: > > $ grep CONFIG_INIT_STACK .config > CONFIG_INIT_STACK_NONE=y > > Signed-off-by: Tyler Hicks <tyhi...@linux.microsoft.com> > --- > tools/merge_config.sh | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tools/merge_config.sh b/tools/merge_config.sh > index 14b4c1fbd04c..38eb85afc263 100755 > --- a/tools/merge_config.sh > +++ b/tools/merge_config.sh > @@ -153,7 +153,8 @@ fi > # Use the merged file as the starting point for: > # alldefconfig: Fills in any missing symbols with Kconfig default > # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set > -make LD="$LD" KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET > +make HOSTCC="$HOSTCC" HOSTLD="$HOSTLD" CC="$CC" LD="$LD" \ > + KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET > > > # Check all specified config values took (might have missed-dependency > issues) > -- > 2.17.1 > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#9203): https://lists.yoctoproject.org/g/linux-yocto/message/9203 Mute This Topic: https://lists.yoctoproject.org/mt/78319959/21656 Group Owner: linux-yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-