On 11.12.2009 20:25, Mike Frysinger wrote: > On Thursday 10 December 2009 08:41:07 Daniel Hobi wrote: >> During parallel build, the top Makefile spawns multiple sub-makes >> for targets in cpu/$(CPU). If cpu/$(CPU)/.depend is not present, the >> sub-makes may end up generating this file simultaneously which leads >> to corrupted content. >> >> A typical error message is: >> >> .depend:39: *** multiple target patterns. Stop. >> >> This patch serializes the creation of cpu/$(CPU)/.depend by adding >> cpu/$(CPU) to the depend target in the top Makefile. > > seems to happen in lib_$(ARCH)/ too, but in reviewing my logs from the last > few months, most parallel .depend failures have indeed been in cpu/$(CPU)/. > maybe this is just coincidence though ... perhaps the depend target should > walk all subdirs instead of a just random few ones (use LIBS).
The problem with cpu/$(CPU)/ is that the top Makefile builds multiple targets within this directory in parallel - at least start.o and lib$(CPU).a. For all other directories, parallel build should work, since there is only one target per directory. Can you provide any commit ID where building lib_$(ARCH)/ failed? Thus, adding all LIBS to the depend target should not make any difference. In order to properly track such dependencies we should switch to non-recursive Makefiles (as seen in Linux) since Recursive Make [is] Considered Harmful[1]. [1] http://miller.emu.id.au/pmiller/books/rmch/ Best regards, Daniel _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot