Skip to contentSkip to conversation

kbuild: include config.mk when auto.conf is not older than .config

PATCH In review Masahiro Yamada 3 participants 3 messages Apr 3, 2015 – Apr 7, 2015 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---

 Makefile | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
Makefile +7 -3
index f1bce44..53ad450 100644
@@ -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
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 kbuild: include config.mk when auto.conf is not older than .config

Quoted 9 lines · Masahiro Yamada

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.

I ran a loop of 941 "MAKEALL rpi_2" during a meeting without issue. I also applied the same patch to a tree that had the timestamps set in a way that triggered the problem, and it immediately solved it there.

#2 lore raw
In reply to Masahiro Yamada
Quoted 10 lines · Masahiro Yamada

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.

Quoted 6 lines

Great job finally root causing this Stephen and then fixing it Masahiro!

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150407/0cd35de8/attachment.sig>