mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
config.mk: use memoization in cc-option macro to speed up compilation
Apply memoization to cc-option macro by caching the results of the gcc calls. This macro is called very often so using cached results leads to faster compilation times. The old behaviour can be restored by defining the config option CONFIG_CC_OPT_CACHE_DISABLE=y. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
This commit is contained in:
parent
fec79acc86
commit
b6a467d73d
1 changed files with 18 additions and 2 deletions
20
config.mk
20
config.mk
|
@ -107,8 +107,24 @@ HOSTCFLAGS += -pedantic
|
|||
# Option checker (courtesy linux kernel) to ensure
|
||||
# only supported compiler options are used
|
||||
#
|
||||
cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
|
||||
> /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
|
||||
CC_OPTIONS_CACHE_FILE := $(OBJTREE)/include/generated/cc_options.mk
|
||||
|
||||
$(if $(wildcard $(CC_OPTIONS_CACHE_FILE)),,\
|
||||
$(shell mkdir -p $(dir $(CC_OPTIONS_CACHE_FILE))))
|
||||
|
||||
-include $(CC_OPTIONS_CACHE_FILE)
|
||||
|
||||
cc-option-sys = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
|
||||
> /dev/null 2>&1; then \
|
||||
echo 'CC_OPTIONS += $(strip $1)' >> $(CC_OPTIONS_CACHE_FILE); \
|
||||
echo "$(1)"; fi)
|
||||
|
||||
ifeq ($(CONFIG_CC_OPT_CACHE_DISABLE),y)
|
||||
cc-option = $(strip $(if $(call cc-option-sys,$1),$1,$2))
|
||||
else
|
||||
cc-option = $(strip $(if $(findstring $1,$(CC_OPTIONS)),$1,\
|
||||
$(if $(call cc-option-sys,$1),$1,$2)))
|
||||
endif
|
||||
|
||||
#
|
||||
# Include the make variables (CC, etc...)
|
||||
|
|
Loading…
Reference in a new issue