make -j12 all fails in uImage target

Sam Ravnborg sam at ravnborg.org
Mon Feb 7 09:53:23 EST 2005


On Sun, Feb 06, 2005 at 02:51:31PM -0700, Tom Rini wrote:
> On Sun, Feb 06, 2005 at 01:40:14PM +0100, Olaf Hering wrote:
> > 
> > this is what I got with 2.6.11rc3:
> > 
> > make ARCH=ppc O=../O-2.6.11-rc3-b50-SMP -j12 all
> > ...
> >   LD      vmlinux
> >   SYSMAP  System.map
> >   SYSMAP  .tmp_System.map
> >   OBJCOPY arch/ppc/boot/images/vmlinux.bin
> >   HOSTCC  arch/ppc/boot/utils/addnote
> >   HOSTCC  arch/ppc/boot/utils/mknote
> >   HOSTCC  arch/ppc/boot/utils/mkprep
> >   LD      arch/ppc/boot/lib/built-in.o
> >   HOSTCC  arch/ppc/boot/utils/hack-coff
> >   HOSTCC  arch/ppc/boot/utils/mkbugboot
> >   OBJCOPY arch/ppc/boot/images/vmlinux.bin
> >   GZIP    arch/ppc/boot/images/vmlinux.gz
> > /bin/sh: line 1: arch/ppc/boot/images/vmlinux.bin: No such file or directory
> > make[2]: *** [arch/ppc/boot/images/vmlinux.gz] Error 1
> > make[1]: *** [uImage] Error 2
> > make[1]: *** Waiting for unfinished jobs....
> > 
> > also, one time that zImage.chrp was only 570K instead of the expected
> > 1.4M, so netboot failed. But I got no build error.
> > Any idea what dependency is missing?
> 
> That is kinda odd.  My thought is that arch/ppc/boot/ just isn't fully
> safe for -j'ing.  Sam, any ideas on how to debug this kinda problem?

The problem is that the images/ sub directory is visited before the
prerequisites are finished.
I have no good way to debug this - I can see it based on the Makefile and
the output Olaf included.

Also the problem Olaf describe is just a cp of a half finished file.


So the fix is to let the images/ directory depends on the rest of the
directories.

Something like this may do the trick:

$(obj)/images: $(addprefix $(obj)/,$(subdir-y) $(bootdir-y))
	$(Q)$(MAKE) $(build)=$@

And then delete the assignment of images to subdir-y


Another solution would be to get rid on the images/ drectory and place
outputfiles where they are being built.

	Sam



More information about the Linuxppc-dev mailing list