Skip to contentSkip to conversation

kbuild: Do not use hyphen in exported variable name

PATCH In review Ben Hutchings 2 participants 2 messages Aug 19, 2017 – Aug 20, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 kbuild: Do not use hyphen in exported variable name

This definition in Makefile.dtbinst:

    export dtbinst-root ?= $(obj)

should define and export dtbinst-root when handling the root dts directory, and do nothing in the subdirectories. However some shells, including dash, will not pass through environment variables whose name includes a hyphen. Usually GNU make does not use a shell to recurse, but if e.g. $(srctree) contains '~' it will use a shell here.

Rename the variable to dtbinst_root.

References: https://bugs.debian.org/833561

Fixes 323a028d39cdi ("dts, kbuild: Implement support for dtb vendor subdirs")

---
v2: Revised the commit message to explain exactly how the hyphenated variable can be lost.

 scripts/Makefile.dtbinst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
scripts/Makefile.dtbinst +2 -2
index 34614a48b717..993fb85982df 100644
@@ -14,7 +14,7 @@ src := $(obj)
 PHONY := __dtbs_install
 __dtbs_install:
 
-export dtbinst-root ?= $(obj)
+export dtbinst_root ?= $(obj)
 
 include include/config/auto.conf
 include scripts/Kbuild.include
@@ -27,7 +27,7 @@ dtbinst-dirs	:= $(dts-dirs)
 quiet_cmd_dtb_install =	INSTALL $<
       cmd_dtb_install =	mkdir -p $(2); cp $< $(2)
 
-install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
+install-dir = $(patsubst $(dtbinst_root)%,$(INSTALL_DTBS_PATH)%,$(obj))
 
 $(dtbinst-files): %.dtb: $(obj)/%.dtb
 	$(call cmd,dtb_install,$(install-dir))
#1 lore raw

2017-08-20 6:30 GMT+09:00 Ben Hutchings <[email protected]>:

Quoted 10 lines

This definition in Makefile.dtbinst:

    export dtbinst-root ?= $(obj)

should define and export dtbinst-root when handling the root dts directory, and do nothing in the subdirectories. However some shells, including dash, will not pass through environment variables whose name includes a hyphen. Usually GNU make does not use a shell to recurse, but if e.g. $(srctree) contains '~' it will use a shell here.

Quoted 9 lines

Rename the variable to dtbinst_root.

References: https://bugs.debian.org/833561

Fixes 323a028d39cdi ("dts, kbuild: Implement support for dtb vendor subdirs")

---
v2: Revised the commit message to explain exactly how the hyphenated variable can be lost.

Thanks for figuring out the root cause!

Applied to linux-kbuild/fixes.

Signature · 2 lines
Best Regards
Masahiro Yamada