automake-patches
[Top][All Lists]
Advanced

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

Re: parallel-tests: avoid command-line length limit issue.


From: Stefano Lattarini
Subject: Re: parallel-tests: avoid command-line length limit issue.
Date: Fri, 24 Sep 2010 15:55:44 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

Hi Ralf.

On Friday 17 September 2010, Stefano Lattarini wrote:
> On Tuesday 07 September 2010, Ralf Wildenhues wrote:
> > * Stefano Lattarini wrote on Tue, Sep 07, 2010 at 11:23:11AM CEST:
> > > > diff --git a/lib/am/check.am b/lib/am/check.am
> > > > index c612b22..b79201f 100644
> > > > --- a/lib/am/check.am
> > > > +++ b/lib/am/check.am
> > > > 
> > > > @@ -236,10 +236,10 @@ check-TESTS:
> > > >  ## we rely on .PHONY to work portably.
> > > >  
> > > >         @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
> > > >         @list='$(TEST_LOGS)'; \
> > > > -       list=`for f in $$list; do \
> > > > -         test .log = $$f || echo $$f; \
> > > > -       done | tr '\012\015' '  '`; \
> > > > -       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
> > > > +       { echo "TEST_LOGS = \\"; \ 
> > > > +         for f in $$list; do test .log = $$f || echo "$$f \\"; done; \
> > > > +       } | sed '$$s/\\$$//' \
> > > > +         | $(MAKE) -f %MAKEFILE% -f - $(AM_MAKEFLAGS) $(TEST_SUITE_LOG)
> > > 
> > > This new code is by no means obvious to me (well, it is now
> > > that you have explained and motivated it ;-).  What about
> > > adding a proper comment to it? Do you want me to (try to) do
> > > that, or will you take care of it yourself?
> > 
> > First off, while the patch fixes the new problem, it also
> > re-exposes the GNU make 3.80 bug
> 
> It also creates new breakage with Heirloom make and Solaris dmake,
> when multiple jobs are used *and* SHELL is Solaris /bin/sh;
> attached is a minimal tescase (tarball created with make dist) and
> the error message it produced.
I've verified that no breakage occurs if a temporary file is used instead
of a pipe.  Do you want me to try to write a patch?

BTW, I think that the easier way to work around the bug in GNU make 3.80
would be to add a dummy ".log:" target when generating the on-the-fly
makefile fragment, as in e.g.:

        @list='$(TEST_LOGS)'; \
 -      list=`for f in $$list; do \
 -        test .log = $$f || echo $$f; \
 -      done | tr '\012\015' '  '`; \
 -      $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
 +      { echo "TEST_LOGS = \\"; \ 
 +        for f in $$list; do test .log = $$f || echo "$$f \\"; done; \
 +      } | sed '$$s/\\$$//' | { cat; echo .log:; } \
 +        | $(MAKE) -f %MAKEFILE% -f - $(AM_MAKEFLAGS) $(TEST_SUITE_LOG)
 
WDYT?

Regards,
  Stefano



reply via email to

[Prev in Thread] Current Thread [Next in Thread]