kbuild: include config.mk when auto.conf is not older than .config
Since the Kconfig conversion, config.mk has been included only when include/config/auto.conf is newer than the .config file. It causes build error if both files have the same time-stamps. It is actually possible because EXT* file systems have a 1s time-stamp resolution. The config.mk should be included when include/config/auto.conf is *not older* than the .config file. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reported-by: Tom Rini <trini@konsulko.com> Reported-by: York Sun <yorksun@freescale.com> Reported-by: Stephen Warren <swarren@nvidia.com> Reported-by: Matthew Gerlach <mgerlach@opensource.altera.com> Tested-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
parent
e049b772ae
commit
cffcd28613
1 changed files with 7 additions and 3 deletions
10
Makefile
10
Makefile
|
@ -513,12 +513,16 @@ include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
|
|||
# is up-to-date. When we switch to a different board configuration, old CONFIG
|
||||
# macros are still remaining in include/config/auto.conf. Without the following
|
||||
# gimmick, wrong config.mk would be included leading nasty warnings/errors.
|
||||
autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \
|
||||
-path ./include/config/auto.conf -newer $(KCONFIG_CONFIG)))
|
||||
ifneq ($(autoconf_is_current),)
|
||||
ifneq ($(wildcard $(KCONFIG_CONFIG)),)
|
||||
ifneq ($(wildcard include/config/auto.conf),)
|
||||
autoconf_is_old := $(shell find . -path ./$(KCONFIG_CONFIG) -newer \
|
||||
include/config/auto.conf)
|
||||
ifeq ($(autoconf_is_old),)
|
||||
include $(srctree)/config.mk
|
||||
include $(srctree)/arch/$(ARCH)/Makefile
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
|
||||
# that (or fail if absent). Otherwise, search for a linker script in a
|
||||
|
|
Loading…
Reference in a new issue