diff mbox

firmware: fix directory creation rule matching with make 3.80

Message ID 1347975403-30332-1-git-send-email-mark.asselstine@windriver.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Asselstine Sept. 18, 2012, 1:36 p.m. UTC
commit 6c7080a61fc7 [firmware: fix directory creation rule matching
with make 3.82] broke builds with make 3.80. This is caused by the
literal substitution behaving differently with this version of
make. The following works with make 3.82, 3.81 and 3.80.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---

Jan I was able to reproduce your error and this change fixes it, can
you try this out? I would prefer to keep things working with the
latest versions of make. I am still looking into any possible
consequences of removing the double dollar sign.

 scripts/Makefile.fwinst |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Asselstine Sept. 18, 2012, 4:09 p.m. UTC | #1
> commit 6c7080a61fc7 [firmware: fix directory creation rule matching
> with make 3.82] broke builds with make 3.80. This is caused by the
> literal substitution behaving differently with this version of
> make. The following works with make 3.82, 3.81 and 3.80.
> 
> Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
> ---
> 
> Jan I was able to reproduce your error and this change fixes it, can
> you try this out? I would prefer to keep things working with the
> latest versions of make. I am still looking into any possible
> consequences of removing the double dollar sign.
> 
>  scripts/Makefile.fwinst |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
> index c3f69ae..e264fab 100644
> --- a/scripts/Makefile.fwinst
> +++ b/scripts/Makefile.fwinst
> @@ -42,7 +42,7 @@ quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
>  $(installed-fw-dirs):
>  	$(call cmd,mkdir)
>  
> -$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $$(dir $(INSTALL_FW_PATH)/%)
> +$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(dir $(INSTALL_FW_PATH)/%)

Actually I believe this should be
+$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(dir $(INSTALL_FW_PATH)/$$(%))

I have added David Woodhouse to the TO list as he has made similar
changes in the past and I would like to get his input on this as I
haven't been able to figure out the double dollar sign use here.

Regards,
Mark

>  	$(call cmd,install)
>  
>  PHONY +=  __fw_install __fw_modinst FORCE
> -- 
> 1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jan Beulich Sept. 19, 2012, 11:50 a.m. UTC | #2
>>> On 18.09.12 at 18:09, Mark Asselstine <mark.asselstine@windriver.com> wrote:
>>  commit 6c7080a61fc7 [firmware: fix directory creation rule matching
>> with make 3.82] broke builds with make 3.80. This is caused by the
>> literal substitution behaving differently with this version of
>> make. The following works with make 3.82, 3.81 and 3.80.
>> 
>> Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
>> ---
>> 
>> Jan I was able to reproduce your error and this change fixes it, can
>> you try this out? I would prefer to keep things working with the
>> latest versions of make. I am still looking into any possible
>> consequences of removing the double dollar sign.
>> 
>>  scripts/Makefile.fwinst |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
>> index c3f69ae..e264fab 100644
>> --- a/scripts/Makefile.fwinst
>> +++ b/scripts/Makefile.fwinst
>> @@ -42,7 +42,7 @@ quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
>>  $(installed-fw-dirs):
>>  	$(call cmd,mkdir)
>>  
>> -$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $$(dir $(INSTALL_FW_PATH)/%)
>> +$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(dir $(INSTALL_FW_PATH)/%)

This would clearly break the .SECONDEXPANSION expectations (or
otherwise the double-$ wouldn't have been needed in the first
place).

> Actually I believe this should be
> +$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(dir $(INSTALL_FW_PATH)/$$(%))

This one can't be right either, for the same reason.

The main thing, afaict, is that your initial patch disconnected the
rule here from the PHONY addition (and the corresponding fallback
rule) a few lines up. And I can't see how to restore the connection
reliably (the fact that $(dir) was reported as missing dependency
suggests that using this for the PHONY addition and fallback line
instead might be possible, but it would need to be clarified where
the $(INSTALL_FW_PATH)/% (i.e. the argument to $(dir )) went,
and hence whether $(dir) wouldn't, e.g. for a non-empty
$(INSTALL_FW_PATH), expand to something else.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
index c3f69ae..e264fab 100644
--- a/scripts/Makefile.fwinst
+++ b/scripts/Makefile.fwinst
@@ -42,7 +42,7 @@  quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
 $(installed-fw-dirs):
 	$(call cmd,mkdir)
 
-$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $$(dir $(INSTALL_FW_PATH)/%)
+$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(dir $(INSTALL_FW_PATH)/%)
 	$(call cmd,install)
 
 PHONY +=  __fw_install __fw_modinst FORCE