GNU bug report logs - #13477
automake 1.13 breaks when TESTS variable contains GNU make macros like $(sort ...)

Previous Next

Package: automake;

Reported by: "Richard W.M. Jones" <rjones <at> redhat.com>

Date: Thu, 17 Jan 2013 17:10:02 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 13477 in the body.
You can then email your comments to 13477 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-automake <at> gnu.org:
bug#13477; Package automake. (Thu, 17 Jan 2013 17:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Richard W.M. Jones" <rjones <at> redhat.com>:
New bug report received and forwarded. Copy sent to bug-automake <at> gnu.org. (Thu, 17 Jan 2013 17:10:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Richard W.M. Jones" <rjones <at> redhat.com>
To: bug-automake <at> gnu.org
Subject: automake 1.13 breaks when TESTS variable contains GNU make macros
	like $(sort ...)
Date: Thu, 17 Jan 2013 12:36:15 +0000
I have a project that has a TESTS variable like this ('test_progs' is
defined elsewhere):

TESTS = run-bindtests \
	$(sort \
		$(patsubst %,%.bc,$(test_progs)) \
		$(patsubst %,%.opt,$(test_progs)))

This breaks with automake 1.13.1.  'make' gives unterminated variable
errors.  It is fairly obvious why when you look at the generated code:

run-bindtests.log: run-bindtests
		   @p='run-bindtests'; \
		   b='run-bindtests'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
$(sort.log: $(sort
        @p='$(sort'; \
        b='$(sort'; \
        $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
$(patsubst.log: $(patsubst
        @p='$(patsubst'; \
        b='$(patsubst'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
%,%.bc,$(test_progs)).log: %,%.bc,$(test_progs))

This used to work fine in automake <= 1.12.  I also tried jamming the
whole thing into a single line, but that didn't help.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




Information forwarded to bug-automake <at> gnu.org:
bug#13477; Package automake. (Thu, 17 Jan 2013 18:31:01 GMT) Full text and rfc822 format available.

Message #8 received at 13477 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Richard W.M. Jones" <rjones <at> redhat.com>
Cc: 13477 <at> debbugs.gnu.org
Subject: Re: bug#13477: automake 1.13 breaks when TESTS variable contains
	GNU make macros like $(sort ...)
Date: Thu, 17 Jan 2013 19:29:29 +0100
On 01/17/2013 01:36 PM, Richard W.M. Jones wrote:
> I have a project that has a TESTS variable like this ('test_progs' is
> defined elsewhere):
> 
> TESTS = run-bindtests \
> 	$(sort \
> 		$(patsubst %,%.bc,$(test_progs)) \
> 		$(patsubst %,%.opt,$(test_progs)))
> 
> This breaks with automake 1.13.1.  'make' gives unterminated variable
> errors.  It is fairly obvious why when you look at the generated code:
> 
> run-bindtests.log: run-bindtests
> 		   @p='run-bindtests'; \
> 		   b='run-bindtests'; \
>         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>         --log-file $$b.log --trs-file $$b.trs \
>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> - $(LOG_COMPILE) \
>         "$$tst" $(AM_TESTS_FD_REDIRECT)
> $(sort.log: $(sort
>         @p='$(sort'; \
>         b='$(sort'; \
>         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>         --log-file $$b.log --trs-file $$b.trs \
>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> - $(LOG_COMPILE) \
>         "$$tst" $(AM_TESTS_FD_REDIRECT)
> $(patsubst.log: $(patsubst
>         @p='$(patsubst'; \
>         b='$(patsubst'; \
> 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>         --log-file $$b.log --trs-file $$b.trs \
>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> - $(LOG_COMPILE) \
>         "$$tst" $(AM_TESTS_FD_REDIRECT)
> %,%.bc,$(test_progs)).log: %,%.bc,$(test_progs))
> 
> This used to work fine in automake <= 1.12.  I also tried jamming the
> whole thing into a single line, but that didn't help.
> 
Does the thing work again if you use the 'serial-tests' option (which was the
default before automake 1.13)?

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#13477; Package automake. (Thu, 17 Jan 2013 20:15:01 GMT) Full text and rfc822 format available.

Message #11 received at 13477 <at> debbugs.gnu.org (full text, mbox):

From: "Richard W.M. Jones" <rjones <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: 13477 <at> debbugs.gnu.org
Subject: Re: bug#13477: automake 1.13 breaks when TESTS variable contains GNU
	make macros like $(sort ...)
Date: Thu, 17 Jan 2013 19:19:56 +0000
On Thu, Jan 17, 2013 at 07:29:29PM +0100, Stefano Lattarini wrote:
> On 01/17/2013 01:36 PM, Richard W.M. Jones wrote:
> > I have a project that has a TESTS variable like this ('test_progs' is
> > defined elsewhere):
> > 
> > TESTS = run-bindtests \
> > 	$(sort \
> > 		$(patsubst %,%.bc,$(test_progs)) \
> > 		$(patsubst %,%.opt,$(test_progs)))
> > 
> > This breaks with automake 1.13.1.  'make' gives unterminated variable
> > errors.  It is fairly obvious why when you look at the generated code:
> > 
> > run-bindtests.log: run-bindtests
> > 		   @p='run-bindtests'; \
> > 		   b='run-bindtests'; \
> >         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> >         --log-file $$b.log --trs-file $$b.trs \
> >         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> > - $(LOG_COMPILE) \
> >         "$$tst" $(AM_TESTS_FD_REDIRECT)
> > $(sort.log: $(sort
> >         @p='$(sort'; \
> >         b='$(sort'; \
> >         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> >         --log-file $$b.log --trs-file $$b.trs \
> >         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> > - $(LOG_COMPILE) \
> >         "$$tst" $(AM_TESTS_FD_REDIRECT)
> > $(patsubst.log: $(patsubst
> >         @p='$(patsubst'; \
> >         b='$(patsubst'; \
> > 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> >         --log-file $$b.log --trs-file $$b.trs \
> >         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
> > - $(LOG_COMPILE) \
> >         "$$tst" $(AM_TESTS_FD_REDIRECT)
> > %,%.bc,$(test_progs)).log: %,%.bc,$(test_progs))
> > 
> > This used to work fine in automake <= 1.12.  I also tried jamming the
> > whole thing into a single line, but that didn't help.
> > 
> Does the thing work again if you use the 'serial-tests' option (which was the
> default before automake 1.13)?

Yes, specifying serial-tests does appear to have fixed this.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




Reply sent to Stefano Lattarini <stefano.lattarini <at> gmail.com>:
You have taken responsibility. (Thu, 17 Jan 2013 20:58:02 GMT) Full text and rfc822 format available.

Notification sent to "Richard W.M. Jones" <rjones <at> redhat.com>:
bug acknowledged by developer. (Thu, 17 Jan 2013 20:58:02 GMT) Full text and rfc822 format available.

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

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Richard W.M. Jones" <rjones <at> redhat.com>
Cc: 13477-done <at> debbugs.gnu.org
Subject: Re: bug#13477: automake 1.13 breaks when TESTS variable contains
	GNU make macros like $(sort ...)
Date: Thu, 17 Jan 2013 21:56:25 +0100
On 01/17/2013 08:19 PM, Richard W.M. Jones wrote:
> On Thu, Jan 17, 2013 at 07:29:29PM +0100, Stefano Lattarini wrote:
>> On 01/17/2013 01:36 PM, Richard W.M. Jones wrote:
>>> I have a project that has a TESTS variable like this ('test_progs' is
>>> defined elsewhere):
>>>
>>> TESTS = run-bindtests \
>>> 	$(sort \
>>> 		$(patsubst %,%.bc,$(test_progs)) \
>>> 		$(patsubst %,%.opt,$(test_progs)))
>>>
>>> This breaks with automake 1.13.1.  'make' gives unterminated variable
>>> errors.  It is fairly obvious why when you look at the generated code:
>>>
>>> run-bindtests.log: run-bindtests
>>> 		   @p='run-bindtests'; \
>>> 		   b='run-bindtests'; \
>>>         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>>>         --log-file $$b.log --trs-file $$b.trs \
>>>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
>>> - $(LOG_COMPILE) \
>>>         "$$tst" $(AM_TESTS_FD_REDIRECT)
>>> $(sort.log: $(sort
>>>         @p='$(sort'; \
>>>         b='$(sort'; \
>>>         $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>>>         --log-file $$b.log --trs-file $$b.trs \
>>>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
>>> - $(LOG_COMPILE) \
>>>         "$$tst" $(AM_TESTS_FD_REDIRECT)
>>> $(patsubst.log: $(patsubst
>>>         @p='$(patsubst'; \
>>>         b='$(patsubst'; \
>>> 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
>>>         --log-file $$b.log --trs-file $$b.trs \
>>>         $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -\
>>> - $(LOG_COMPILE) \
>>>         "$$tst" $(AM_TESTS_FD_REDIRECT)
>>> %,%.bc,$(test_progs)).log: %,%.bc,$(test_progs))
>>>
>>> This used to work fine in automake <= 1.12.  I also tried jamming the
>>> whole thing into a single line, but that didn't help.
>>>
>> Does the thing work again if you use the 'serial-tests' option (which was the
>> default before automake 1.13)?
> 
> Yes, specifying serial-tests does appear to have fixed this.
> 
OK, as I suspected.  The problem is that the use of GNU make built-in
in TESTS was *never* supported by the parallel harness, unfortunately :-(

Since that is nothing new, I'm closing this bug report.

Thanks,
  Stefano





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 15 Feb 2013 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 130 days ago.

Previous Next


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