Re: bug#9245: FreeBSD make in concurrent mode report spurious success in automake-generated tests harness

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

 



Hi Eric.

On Tuesday 16 August 2011, Eric Blake wrote:
> On 08/16/2011 10:04 AM, Stefano Lattarini wrote:
> > The "proper fix" is even easier BTW: just use "$$exit || exit 1" instead.
> >
> > The updated patch should now work (and I've tested it properly this time).
> > This new patch hasn't been derived by "cargo-cult guessing", but from the
> > explanation of the relevant FreeBSD make bug provided by Jilles Tjoelker:
> >   <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>
> >
> > Now that's something to be documented in the Autoconf manual I'd say ...
> 
> Indeed.  So it all boils down to BSD make rewriting rules (but only for 
> make -j) to be roughly:
> 
> sh -c 'set -v; your rules; set +v'
> 
> and losing your exit status (not to mention sharing shell status between 
> commands that are supposed to be in independent shells), when it really 
> should have been rewriting as something more complex:
> 
> sh -c '(your rule 1); (your rule 2); st=$?; set +v; exit $st'
> 
> And your workaround of an explicit exit rather than relying on $? at the 
> end of your 'set +e' invocation is indeed the proper way to force the 
> parallel make bug to be avoided, by exiting prior to any post-commands 
> injected by the BSD make rewriting going on that corrupt $?.
> 
I'll have a "draft patch" read soonish.  There is ample room for improvements,
but I'll post it here anyway since it can benefit from early feedback.

Regards,
  Stefano

_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
https://lists.gnu.org/mailman/listinfo/autoconf


[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux