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

Previous Next

Package: automake;

Reported by: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Date: Fri, 5 Aug 2011 09:10:02 UTC

Severity: normal

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #42 received at 9245-done <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: 9245-done <at> debbugs.gnu.org
Subject: Re: bug#9245: FreeBSD make in concurrent mode report spurious success
	in automake-generated tests harness
Date: Thu, 18 Aug 2011 21:42:32 +0200
On Tuesday 16 August 2011, Stefano Lattarini wrote:
> On Friday 12 August 2011, Stefano Lattarini wrote:
> > OK, the attached hacky patch seems to fix the bug.
> >
> LOL no, there was an embarassingly stupid error in my patch:
> 
>  diff --git a/lib/am/check.am b/lib/am/check.am
>  index 0b54312..75f8bba 100644
>  --- a/lib/am/check.am
>  +++ b/lib/am/check.am
>  @@ -224,7 +224,9 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
>            col="$$red";                                                  \
>          fi;                                                             \
>          echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std";         \
>  -       $$exit
>  +## The apparently redundant and repeated "exit 1" works around a bug in
>  +## FreeBSD make (present only when running in concurrent mode).
>  +       $$exit || (exit 1); exit 1
>  
> This obviously causes the `check' target to exit unconditionally with a
> non-zero exit status.  Hardly a fix for anything, sigh.
> 
> 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 ...
>
BTW, done with commit v2.68-84-g96cdf32 "docs: other issues with parallel BSD
make"; see:
 <http://lists.gnu.org/archive/html/autoconf-patches/2011-08/msg00013.html>

> > I have no idea why
> > exactly it is so yet, so we might want to wait to apply the patch until
> > we have fully understood the reasons of the original failure,
> > 
> Glad I've waited this time!  And I will allow another couple of days for
> comments and suggestions before pushing.
> 
> Regards,
>   Stefano
> 
I've pushed the patch now, with the additional squash-in below.  I'm closing
this bug report.

Regards,
  Stefano

-*-*-

diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index 2f553ed..17a2002 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -405,7 +405,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
          col="$$red";                                                  \
        fi;                                                             \
        echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std";         \
-       $$exit
+       $$exit || exit 1
 
 # Run all the tests.
 check-TESTS:





This bug report was last modified 13 years and 335 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.