Subject: Re: MAKE_JOBS_FAILURE that I don't understand
To: Greg Troxel <gdt@ir.bbn.com>
From: David Laight <david@l8s.co.uk>
List: tech-pkg
Date: 06/08/2007 21:52:48
On Fri, Jun 08, 2007 at 04:08:42PM -0400, Greg Troxel wrote:
> "Blair Sadewitz" <blair.sadewitz@gmail.com> writes:
> 
> > I don't use GNU make if I can help it, so I don't know if it has
> > .WAIT.  IIRC it does have .NOTPARALLEL, though, so perhaps you could
> > use that as a barrier?

gmake does't have .WAIT, man page claims you can do it with normal
dependencies.  That isn't true - since I had to fix netbsd's make
do recursively apply the ordering relation inorder to get our own
makefiles for work!

> The problem was that the dependencies seemed clear; make should know
> that a rule to create a dependency for another rule has to finish first.
> 
> The bug is that libtool --mode=compile will build not only the shared
> .lo but the unshared .o as well.  After make ensures that the .o is
> built, and goes on to run the rules to get the .lo, it then feels free
> to run the .o->.a rule in parallel, and this can lose as a .o is
> recreated.
> 
> So the hidden dependency is that a .o gets modified by a rule that make
> doesn't know creates it.

And you are quite likely to get the wrong object files in your archive.

	David

-- 
David Laight: david@l8s.co.uk