On Wed, 2011-11-16 at 12:32 -0600, david.hag...@gmail.com wrote:
> I have a make file that includes a set of machine generated dependency
> files. Those files describe a set of shared libraries to be build, of the
> form:
> 
> somedir/libfoo.so: somedir/libbar.so somedir/libbaz.so
> 
> Note that "libfoo.so" has explicitly stated it depends upon
> somedir/libbar.so.
> 
> libbar.so has a similar dependency file that describes its needs:
> 
> somedir/libbar.so: somedir/libbaz.so otherdir/bar.o
> 
> However, if I run a parallel make:
>   make -j4 mytarget
> 
> then make will happly start building everything, and will try to link
> somedir/libfoo.so before even STARTING on linking somedir/libbar.so.

Although this could be a bug, it's more likely, IMO, that your
target/prerequisite requirements are not correctly stated.

For example, it could be that you use slightly different paths so that
make doesn't realize these two libraries are really the same thing, and
the dependencies aren't being propagated properly.

Try running make with the -p option so it prints its internal database.
Are the prerequisites you expect to see for somedir/libfoo.so really
there?

Try running the parallel version with -d (redirect the output because
it's voluminous) and see what make says about trying to build
somedir/libfoo.so: what does it say about the somedir/libbar.so
prerequisite?


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to