Subject: Re: MAKE_JOBS_FAILURE that I don't understand
To: Greg Troxel <firstname.lastname@example.org>
From: David Laight <email@example.com>
Date: 06/08/2007 21:52:48
On Fri, Jun 08, 2007 at 04:08:42PM -0400, Greg Troxel wrote:
> "Blair Sadewitz" <firstname.lastname@example.org> 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
> 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 Laight: email@example.com