diff mbox

docker: Don't use eval trick on Makefile

Message ID 1465228434-20143-1-git-send-email-ehabkost@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Eduardo Habkost June 6, 2016, 3:53 p.m. UTC
The eval trick for defining DOCKER_SRC_COPY doesn't do anything
useful, as DOCKER_SRC_COPY is immediately expanded just after it
is defined, and CUR_TIME is already defined using ":=". Simply
define it using ":=" so it is evaluated only once.

The eval trick was also triggering an weird error on Travis builds:
  qemu/tests/docker/Makefile.include:34: *** unterminated variable reference.  Stop.

The issue is not easily reproducible (maybe it's a bug in some
versions of Make), but it is avoided if removing the eval trick.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 tests/docker/Makefile.include | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Fam Zheng June 7, 2016, 3:24 a.m. UTC | #1
On Mon, 06/06 12:53, Eduardo Habkost wrote:
> The eval trick for defining DOCKER_SRC_COPY doesn't do anything
> useful, as DOCKER_SRC_COPY is immediately expanded just after it
> is defined, and CUR_TIME is already defined using ":=". Simply
> define it using ":=" so it is evaluated only once.
> 
> The eval trick was also triggering an weird error on Travis builds:
>   qemu/tests/docker/Makefile.include:34: *** unterminated variable reference.  Stop.
> 
> The issue is not easily reproducible (maybe it's a bug in some
> versions of Make), but it is avoided if removing the eval trick.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  tests/docker/Makefile.include | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> index 2fd2ca3..134dc6f 100644
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -28,8 +28,7 @@ make-archive-maybe = $(if $(wildcard $1/*), \
>  		"  ARCHIVE $(notdir $2)"))
>  
>  CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
> -# Makes the definition constant after the first expansion
> -DOCKER_SRC_COPY = $(eval DOCKER_SRC_COPY := docker-src.$(CUR_TIME))$(DOCKER_SRC_COPY)
> +DOCKER_SRC_COPY := docker-src.$(CUR_TIME)
>  
>  $(DOCKER_SRC_COPY):
>  	@mkdir $@
> -- 
> 2.5.5
> 

Applied, thanks.

Fam
Peter Maydell June 7, 2016, 2 p.m. UTC | #2
On 7 June 2016 at 04:24, Fam Zheng <famz@redhat.com> wrote:
> On Mon, 06/06 12:53, Eduardo Habkost wrote:
>> The eval trick for defining DOCKER_SRC_COPY doesn't do anything
>> useful, as DOCKER_SRC_COPY is immediately expanded just after it
>> is defined, and CUR_TIME is already defined using ":=". Simply
>> define it using ":=" so it is evaluated only once.
>>
>> The eval trick was also triggering an weird error on Travis builds:
>>   qemu/tests/docker/Makefile.include:34: *** unterminated variable reference.  Stop.
>>
>> The issue is not easily reproducible (maybe it's a bug in some
>> versions of Make), but it is avoided if removing the eval trick.
>>
>> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>> ---
>>  tests/docker/Makefile.include | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index 2fd2ca3..134dc6f 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -28,8 +28,7 @@ make-archive-maybe = $(if $(wildcard $1/*), \
>>               "  ARCHIVE $(notdir $2)"))
>>
>>  CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
>> -# Makes the definition constant after the first expansion
>> -DOCKER_SRC_COPY = $(eval DOCKER_SRC_COPY := docker-src.$(CUR_TIME))$(DOCKER_SRC_COPY)
>> +DOCKER_SRC_COPY := docker-src.$(CUR_TIME)
>>
>>  $(DOCKER_SRC_COPY):
>>       @mkdir $@
>> --
>> 2.5.5
>>
>
> Applied, thanks.

Hi; I'd like to apply this direct to master, because one of my build
test machines hits this error intermittently, and so without the fix
I can't reliably process any other pull requests.

thanks
-- PMM
Peter Maydell June 7, 2016, 2:30 p.m. UTC | #3
On 7 June 2016 at 15:00, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 7 June 2016 at 04:24, Fam Zheng <famz@redhat.com> wrote:
>> On Mon, 06/06 12:53, Eduardo Habkost wrote:
>>> The eval trick for defining DOCKER_SRC_COPY doesn't do anything
>>> useful, as DOCKER_SRC_COPY is immediately expanded just after it
>>> is defined, and CUR_TIME is already defined using ":=". Simply
>>> define it using ":=" so it is evaluated only once.
>>>
>>> The eval trick was also triggering an weird error on Travis builds:
>>>   qemu/tests/docker/Makefile.include:34: *** unterminated variable reference.  Stop.
>>>
>>> The issue is not easily reproducible (maybe it's a bug in some
>>> versions of Make), but it is avoided if removing the eval trick.

> Hi; I'd like to apply this direct to master, because one of my build
> test machines hits this error intermittently, and so without the fix
> I can't reliably process any other pull requests.

Now applied, thanks.

-- PMM
Fam Zheng June 8, 2016, 12:03 a.m. UTC | #4
On Tue, 06/07 15:30, Peter Maydell wrote:
> On 7 June 2016 at 15:00, Peter Maydell <peter.maydell@linaro.org> wrote:
> > On 7 June 2016 at 04:24, Fam Zheng <famz@redhat.com> wrote:
> >> On Mon, 06/06 12:53, Eduardo Habkost wrote:
> >>> The eval trick for defining DOCKER_SRC_COPY doesn't do anything
> >>> useful, as DOCKER_SRC_COPY is immediately expanded just after it
> >>> is defined, and CUR_TIME is already defined using ":=". Simply
> >>> define it using ":=" so it is evaluated only once.
> >>>
> >>> The eval trick was also triggering an weird error on Travis builds:
> >>>   qemu/tests/docker/Makefile.include:34: *** unterminated variable reference.  Stop.
> >>>
> >>> The issue is not easily reproducible (maybe it's a bug in some
> >>> versions of Make), but it is avoided if removing the eval trick.
> 
> > Hi; I'd like to apply this direct to master, because one of my build
> > test machines hits this error intermittently, and so without the fix
> > I can't reliably process any other pull requests.
> 
> Now applied, thanks.

No problem, sorry for the trouble!

Fam
diff mbox

Patch

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 2fd2ca3..134dc6f 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -28,8 +28,7 @@  make-archive-maybe = $(if $(wildcard $1/*), \
 		"  ARCHIVE $(notdir $2)"))
 
 CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
-# Makes the definition constant after the first expansion
-DOCKER_SRC_COPY = $(eval DOCKER_SRC_COPY := docker-src.$(CUR_TIME))$(DOCKER_SRC_COPY)
+DOCKER_SRC_COPY := docker-src.$(CUR_TIME)
 
 $(DOCKER_SRC_COPY):
 	@mkdir $@