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.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#13477: closed (automake 1.13 breaks when TESTS variable
 contains GNU make macros like $(sort ...))
Date: Thu, 17 Jan 2013 20:58:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 17 Jan 2013 21:56:25 +0100
with message-id <50F86579.7050901 <at> gmail.com>
and subject line Re: bug#13477: automake 1.13 breaks when TESTS variable contains GNU make macros like $(sort ...)
has caused the debbugs.gnu.org bug report #13477,
regarding automake 1.13 breaks when TESTS variable contains GNU make macros like $(sort ...)
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
13477: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13477
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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


[Message part 3 (message/rfc822, inline)]
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



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.