[U-Boot] [PATCH] Makefile: fix dependency problem with parallel builds

Parallel builds (using "make -jN") would occasionally fail with error messages like include/autoconf.mk:212: *** missing separator. Stop. Line numbers and affected boards were changing. Obviously some Makefiles included autoconf.mk while it was still being written to. As a fix, we now write to a temporary file first and then rename it, so that it is really ready to use as soon as it appears.
Signed-off-by: Wolfgang Denk wd@denx.de --- Makefile | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile index d6cd91a..1fd03a0 100644 --- a/Makefile +++ b/Makefile @@ -463,7 +463,8 @@ $(obj)include/autoconf.mk: $(obj)include/config.h set -e ; \ : Extract the config macros ; \ $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \ - sed -n -f tools/scripts/define2mk.sed > $@ + sed -n -f tools/scripts/define2mk.sed > $@.tmp && \ + mv $@.tmp $@
sinclude $(obj)include/autoconf.mk.dep

Parallel builds (using "make -jN") would occasionally fail with error messages like ppc_4xxFP-objdump: string.o: File format not recognized or post/libpost.a(cpu.o): In function `cpu_post_test': /home/wd/git/u-boot/work/post/lib_ppc/cpu.c:130: undefined reference to `cpu_post_test_string' or similar. We now make sure to run the 'postdeps" step before attempting to build the specific POST libraries.
Signed-off-by: Wolfgang Denk wd@denx.de --- post/Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/post/Makefile b/post/Makefile index 666a896..769e9c6 100644 --- a/post/Makefile +++ b/post/Makefile @@ -45,7 +45,7 @@ SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS)) LIB := $(obj)$(LIB)
-all: postdeps $(LIB) +all: $(LIB)
postdeps: @for lib in $(SPLIB-y) ; do \ @@ -57,7 +57,7 @@ $(GPLIB): $(obj).depend $(OBJS) $(AR) $(ARFLAGS) $@ $(OBJS)
# specific POST libraries -$(SPLIB): $(obj).depend +$(SPLIB): $(obj).depend postdeps $(MAKE) -C $(dir $(subst $(obj),,$@))
# the POST lib archive
participants (1)
-
Wolfgang Denk