[PATCH 02/10] kconfig: Add scripts/Kconfig.include from v4.19
Masahiro Yamada
masahiroy at kernel.org
Mon May 18 04:55:11 CEST 2020
Tom,
On Thu, May 14, 2020 at 9:32 PM Tom Rini <trini at 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 at socionext.com>
> Signed-off-by: Tom Rini <trini at 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
More information about the U-Boot
mailing list