From: "H. Peter Anvin" <hpa@linux.intel.com>
To: Jeff Mahoney <jeffm@suse.de>,
kbuild@vger.kernel.org, Michal Marek <mmarek@suse.cz>
Cc: Linux Kernel Maling List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH[ Makefile: Fix scripts_basic / archscripts build order
Date: Wed, 19 Sep 2012 10:42:04 -0700 [thread overview]
Message-ID: <505A03EC.8090502@linux.intel.com> (raw)
In-Reply-To: <505A02F8.4040804@suse.de>
Kbuild people, any comments?
On 09/19/2012 10:38 AM, Jeff Mahoney wrote:
> The SUSE kernel packages are built by doing the following:
>
> make silentoldonfig
> make prepare
> make scripts
> make clean
>
> <capture file list used for building modules>
>
> make -j$NCPUs
>
> On parallel builds (also using -C/O=), this can occasionally fail with:
> HOSTCC scripts/basic/fixdep
> /bin/sh: scripts/basic/fixdep: No such file or directory
> make[3]: *** [arch/x86/tools/relocs] Error 1
> make[2]: *** [archscripts] Error 2
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [sub-make] Error 2
> make: *** [all] Error 2
>
> The error can also be "Permission denied."
>
> Without the make clean this works ok.
>
> What seems to be happening is that fixdep exists so relocs is able to be
> rebuilt, but then somewhere there is a FORCE rule that applies to fixdep
> so it is rebuilt. If the timing is right, the relocs build can happen while
> the fixdep rebuild is happening and we either get a non-executable fixdep
> or a nonexistent fixdep.
>
> This patch moves the archscripts dependency after scripts_basic so that
> fixdep is always built after relocs. If I understand the build order
> correctly, this should be the case since scripts_basic is essentially
> a prereq of everything.
>
> This was introduced by commit
> 6520fe55 (x86, realmode: 16-bit real-mode code support for relocs),
> which added the archscripts dependency to archprepare.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
> ---
> Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/Makefile
> +++ b/Makefile
> @@ -835,7 +835,7 @@ prepare1: prepare2 include/linux/version
> include/config/auto.conf
> $(cmd_crmodverdir)
>
> -archprepare: archheaders archscripts prepare1 scripts_basic
> +archprepare: archheaders scripts_basic archscripts prepare1
>
> prepare0: archprepare FORCE
> $(Q)$(MAKE) $(build)=.
>
next prev parent reply other threads:[~2012-09-19 17:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-19 17:38 [PATCH[ Makefile: Fix scripts_basic / archscripts build order Jeff Mahoney
2012-09-19 17:42 ` H. Peter Anvin [this message]
2012-09-20 14:24 ` Jeff Mahoney
2012-09-20 14:28 ` [PATCH] x86/kbuild: archscripts depends on scripts_basic Jeff Mahoney
2012-09-21 11:50 ` Michal Marek
2012-09-20 14:31 ` Jeff Mahoney
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=505A03EC.8090502@linux.intel.com \
--to=hpa@linux.intel.com \
--cc=jeffm@suse.de \
--cc=kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.cz \
/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.