[sane-devel] backends not -j safe

Greg Troxel gdt at ir.bbn.com
Fri Jun 8 20:01:29 UTC 2007


I've investigated further, and found another directory that fails due to
the build of a .o not being finished before the ar/ranlib rule to make a
.a.  If I run BSD make with -j4 I can't get it to fail.  But with GNU
make -j4, it fails pretty regularly.  This is gmake 3.81 on NetBSD
4.0_BETA2 on i386 on a single processor machine.

The problem occurs in sane-backends-1.0.18/lib.

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.

I can explain further if this is not adequately clear.




More information about the sane-devel mailing list