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 <je...@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)=. >
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/