Makefile: reuse CC_VERSION_TEXT
I noticed we're invoking $(CC) via $(shell) more than once to check the version. Let's reuse the first string captured in $CC_VERSION_TEXT. Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> [masahiro.yamada: CC_VERSION_TEXT is assigned by = instead of :=, so this $(shell ) is evaluated multiple times anyway. The number of $(CC) invocations will be still the same. Replacing 'grep' with the built-in $(findstring ) will give real performance benefit.] Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
02aff85922
commit
db07562aea
14
Makefile
14
Makefile
@ -557,7 +557,13 @@ ifdef building_out_of_srctree
|
|||||||
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
|
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
|
# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included.
|
||||||
|
# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
|
||||||
|
# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
|
||||||
|
# and from include/config/auto.conf.cmd to detect the compiler upgrade.
|
||||||
|
CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1)
|
||||||
|
|
||||||
|
ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
|
||||||
ifneq ($(CROSS_COMPILE),)
|
ifneq ($(CROSS_COMPILE),)
|
||||||
CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
|
CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
|
||||||
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
|
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
|
||||||
@ -576,12 +582,6 @@ KBUILD_AFLAGS += $(CLANG_FLAGS)
|
|||||||
export CLANG_FLAGS
|
export CLANG_FLAGS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included.
|
|
||||||
# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
|
|
||||||
# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
|
|
||||||
# and from include/config/auto.conf.cmd to detect the compiler upgrade.
|
|
||||||
CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1)
|
|
||||||
|
|
||||||
ifdef config-build
|
ifdef config-build
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
# *config targets only - make sure prerequisites are updated, and descend
|
# *config targets only - make sure prerequisites are updated, and descend
|
||||||
|
Loading…
Reference in New Issue
Block a user