On Mon, May 18, 2020 at 11:23:20AM -0400, Tom Rini wrote: > On Mon, May 18, 2020 at 11:55:11AM +0900, Masahiro Yamada wrote: > > Tom, > > > > > > > > On Thu, May 14, 2020 at 9:32 PM Tom Rini <tr...@konsulko.com> wrote: > > > > > > As part of re-syncing our Kconfig logic up to v4.19, we had missed > > > adding this new file that includes helper macros. To quote the upstream > > > commit e1cfdc0e72fc ("kconfig: add basic helper macros to > > > scripts/Kconfig.include"): > > > > > > Kconfig got text processing tools like we see in Make. Add Kconfig > > > helper macros to scripts/Kconfig.include like we collect Makefile > > > macros in scripts/Kbuild.include. > > > > > > Cc: Masahiro Yamada <yamada.masah...@socionext.com> > > > Signed-off-by: Tom Rini <tr...@konsulko.com> > > > > > > If you want to align with Linux kernel, please go ahead. > > > > > > Some notes. > > > > > > Previously, CROSS_COMPILE was not required at the Kconfig stage. > > > > So, people was able to do this: > > > > make qemu_arm64_defconfig > > make CROSS_COMPILE=aarch64-linux-gnu- > > > > > > Going forward, Kconfig requires CROSS_COMPILE set correctly. > > > > make CROSS_COMPILE=aarch64-linux-gnu- qemu_arm64_defconfig > > make CROSS_COMPILE=aarch64-linux-gnu- > > > > Maybe, passing CROSS_COMPILE as an environment variable is handier > > > > export CROSS_COMPILE=aarch64-linux-gnu- > > make qemu_arm64_defconfig > > make > > > > > > > > > > > > When you upgrade the compiler, in theory, > > you must re-run Kconfig because the .config now > > contains the compiler information. > > > > If you want to do this automatically, > > you can import CC_VERSION_TEXT. > > > > Specifically, the following two commits: > > 21c54b774744719c386fbdc829b0e7759edb8ece > > 315bab4e972d9795529b764718d475492db40c0f > > OK, so we really want to grab those changes as well at the time, thanks!
Trying this out and trying to follow the code a bit, the first commit is helpful for us in that it's good to have the compiler noted in the file. But even without it, with this series applied we see: $ make O=/tmp/rpi3_32b HOSTCC=clang-10 CROSS_COMPILE=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi- CC="clang-10 -target arm-linux-gnueabi" rpi_3_32b_config make[1]: Entering directory '/tmp/rpi3_32b' HOSTCC scripts/basic/fixdep GEN ./Makefile HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # make[1]: Leaving directory '/tmp/rpi3_32b' $ make O=/tmp/rpi3_32b HOSTCC=clang-10 CROSS_COMPILE=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi- make[1]: Entering directory '/tmp/rpi3_32b' GEN ./Makefile scripts/kconfig/conf --syncconfig Kconfig UPD include/config.h CFG u-boot.cfg ... So we're getting syncconfig run and CC-related changes are caught. For the second commit, since ARCH comes from CONFIG_SYS_ARCH and not the make line/environment, we don't have that problem to start with? Thanks! -- Tom
signature.asc
Description: PGP signature