From: Daniel Hobi <daniel.hobi@schmid-telecom.ch>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] Makefile: fix parallel build
Date: Tue, 15 Dec 2009 10:21:02 +0100 [thread overview]
Message-ID: <4B2754FE.6010906@schmid-telecom.ch> (raw)
In-Reply-To: <200912111425.09357.vapier@gentoo.org>
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
next prev parent reply other threads:[~2009-12-15 9:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-10 13:41 [U-Boot] [PATCH] Makefile: fix parallel build Daniel Hobi
2009-12-11 19:25 ` Mike Frysinger
2009-12-15 9:21 ` Daniel Hobi [this message]
2009-12-15 9:25 ` Mike Frysinger
2009-12-15 13:51 ` [U-Boot] [PATCH v2] " Daniel Hobi
2009-12-15 17:15 ` Mike Frysinger
2009-12-17 22:41 ` Wolfgang Denk
2010-01-18 17:13 ` [U-Boot] [PATCH v3] " Daniel Hobi
2010-01-18 21:25 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B2754FE.6010906@schmid-telecom.ch \
--to=daniel.hobi@schmid-telecom.ch \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.