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: "Richard W.M. Jones" <rjones <at> redhat.com>
Subject: bug#13477: closed (Re: bug#13477: 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 bug report

#13477: automake 1.13 breaks when TESTS variable contains GNU make macros like $(sort ...)

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 13477 <at> debbugs.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: 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


[Message part 3 (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



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.