
Tom,
On Thu, May 14, 2020 at 9:32 PM Tom Rini trini@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.masahiro@socionext.com Signed-off-by: Tom Rini trini@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