
In message 20080128231125.GA27063@sig21.net you wrote:
On Mon, Jan 28, 2008 at 06:38:58AM -0500, Mike Frysinger wrote:
The -f option to `ln` should give the same behavior as the -f option to the `rm` command. It is better to do this in one shot so as to avoid race conditions when building in parallel. I build on a quad G5 and without this change, it isn't uncommon for the build to fail when using -j8 due to this small window where the files don't actually exist.
Since there is a clear dependency of environment.o on environment.c there is no way for make to run the rm/ln and $(CC) commands in parallel, so there should be no race condition. For illustrative purposes: you should be able to put a sleep between the rm and the ln -s, and it should still build.
It seems the real problem is one level above, the commands were run twice in parallel, once for "depend" and once for the SUBDIRS "all". Please test the patch below.
The
$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
line tells make it can run commands to update each dependency in parallel, unless there are further dependencies which restrict this.
Applied, thanks.
Thanks, Johannes
Add dependencies to avoid race conditions with parallel make.
Signed-off-by: Johannes Stezenbach js@sig21.net
Note that these 3 lines belong *above* the "---" line.
Best regards,
Wolfgang Denk