tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Parallel make issue with RPI images



On Mon, Aug 12, 2019 at 10:45:01AM +0200, Edgar Fuß wrote:
> > Now step 1 and step 2 can not run in parallel. I tried to enforce that with
> > src/distrib/common/Makefile.mdset r1.44, by adding a .WAIT, but that
> > leads to build fallout (as seen e.g. in the latest dreamcast build failure).
> Could you eleborate on what the fallout was?

netbsd-RPI_INSTALL (the kernel) is converted to:

 - netbsd-RPI_INSTALL.bin (no idea what that is)
 - netbsd-RPI_INSTALL.img (contains the .bin plus some header)

via common code in src/distrib/common/Makefile.mdset, where a .for loop
creates makefile targets for the individual files, but only made them depend
on the original kernel, that is:

netbsd-RPI_INSTALL.bin: netbsd-RPI_INSTALL
	$receipe1

netbsd-RPI_INSTALL.img:	netbsd-RPI_INSTALL
	$receipe2

Failure if netbsd-RPI_INSTALL.img creation ran before netbsd-RPI_INSTALL.bin
was completed was that the image contained only the header.

I now added an explicit dependency which solves the issue.
It was a bit tricky and convoluted due to the real rules being generated
in a generic .for loop (inside another .for loop), but effectively now
results in:

netbsd-RPI_INSTALL.img:	netbsd-RPI_INSTALL netbsd-RPI_INSTALL.img
	$receipe2

See: http://mail-index.netbsd.org/source-changes/2019/08/12/msg108071.html

Martin


Home | Main Index | Thread Index | Old Index