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 > --- > Kconfig | 2 ++ > scripts/Kconfig.include | 30 ++++++++++++++++++++++++++++++ > 2 files changed, 32 insertions(+) > create mode 100644 scripts/Kconfig.include > > diff --git a/Kconfig b/Kconfig > index 15f1a75c61ab..72b4439264a6 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -5,6 +5,8 @@ > # > mainmenu "U-Boot $(UBOOTVERSION) Configuration" > > +source "scripts/Kconfig.include" > + > # Allow defaults in arch-specific code to override any given here > source "arch/Kconfig" > > diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include > new file mode 100644 > index 000000000000..dad5583451af > --- /dev/null > +++ b/scripts/Kconfig.include > @@ -0,0 +1,30 @@ > +# Kconfig helper macros > + > +# Convenient variables > +comma := , > +quote := " > +squote := ' > +empty := > +space := $(empty) $(empty) > +dollar := $ > +right_paren := ) > +left_paren := ( > + > +# $(if-success,<command>,<then>,<else>) > +# Return <then> if <command> exits with 0, <else> otherwise. > +if-success = $(shell,{ $(1); } >/dev/null 2>&1 && echo "$(2)" || echo "$(3)") > + > +# $(success,<command>) > +# Return y if <command> exits with 0, n otherwise > +success = $(if-success,$(1),y,n) > + > +# $(cc-option,<flag>) > +# Return y if the compiler supports <flag>, n otherwise > +cc-option = $(success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null) > + > +# $(ld-option,<flag>) > +# Return y if the linker supports <flag>, n otherwise > +ld-option = $(success,$(LD) -v $(1)) > + > +# gcc version including patch level > +gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed > 's/^0*//') > -- > 2.17.1 > -- Best Regards Masahiro Yamada