Message ID | 20170724142047.3679-1-bjorn.forsman@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi. 2017-07-24 23:20 GMT+09:00 Bjørn Forsman <bjorn.forsman@gmail.com>: > Several places already use pwd and rely on $PATH lookup. Moving the > remaining /bin/pwd users over for consistency. > > Also, a reason for doing /bin/pwd -> pwd instead of the other way around > is because I believe build systems should make little assumptions on host > filesystem layout. Case in point, we do this kind of patching already in > NixOS. > > Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Kbuild conventionally used $(shell cd foo/bar && /bin/pwd) to get the absolute path because the minimum supported GNU Makefile version was 3.80 and $(abspath ...) is only supported by 3.81 or later. Commit 37d69ee3080 bumped the min version to 3.81, so it is legitimate to use $(abspath ). Could you use $(abspath ...) instead of $(shell cd ... && /bin/pwd) ? > --- > Documentation/ia64/xen.txt | 2 +- > Makefile | 10 +++++----- > scripts/gdb/linux/Makefile | 2 +- > 3 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/Documentation/ia64/xen.txt b/Documentation/ia64/xen.txt > index c61a99f7c8bb..a12c74ce2773 100644 > --- a/Documentation/ia64/xen.txt > +++ b/Documentation/ia64/xen.txt > @@ -41,7 +41,7 @@ Getting and Building Xen and Dom0 > > 5. make initrd for Dom0/DomU > # make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \ > - O=$(/bin/pwd)/build-linux-2.6.18-xen_ia64 > + O=$(pwd)/build-linux-2.6.18-xen_ia64 > # mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \ > 2.6.18.8-xen --builtin mptspi --builtin mptbase \ > --builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \ > diff --git a/Makefile b/Makefile > index b4fb9a1d1594..64e72eba5701 100644 > --- a/Makefile > +++ b/Makefile > @@ -131,7 +131,7 @@ ifneq ($(KBUILD_OUTPUT),) > # check that the output directory actually exists > saved-output := $(KBUILD_OUTPUT) > KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ > - && /bin/pwd) > + && pwd) > $(if $(KBUILD_OUTPUT),, \ > $(error failed to create output directory "$(saved-output)")) This one should use $(realpath ...) instead of $(abspath ...), I think. The difference between them is that $(realpath ...) returns an empty string if the given path does not exist. > @@ -978,7 +978,7 @@ ifdef CONFIG_HEADERS_CHECK > $(Q)$(MAKE) -f $(srctree)/Makefile headers_check > endif > ifdef CONFIG_GDB_SCRIPTS > - $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py > + $(Q)ln -fsn `cd $(srctree) && pwd`/scripts/gdb/vmlinux-gdb.py > endif > ifdef CONFIG_TRIM_UNUSED_KSYMS > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ > @@ -1237,7 +1237,7 @@ _modinst_: > @rm -rf $(MODLIB)/kernel > @rm -f $(MODLIB)/source > @mkdir -p $(MODLIB)/kernel > - @ln -s `cd $(srctree) && /bin/pwd` $(MODLIB)/source > + @ln -s `cd $(srctree) && pwd` $(MODLIB)/source > @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \ > rm -f $(MODLIB)/build ; \ > ln -s $(CURDIR) $(MODLIB)/build ; \ > @@ -1629,11 +1629,11 @@ image_name: > # Clear a bunch of variables before executing the submake > tools/: FORCE > $(Q)mkdir -p $(objtree)/tools > - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ > + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && pwd) subdir=tools -C $(src)/tools/ > > tools/%: FORCE > $(Q)mkdir -p $(objtree)/tools > - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ $* > + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && pwd) subdir=tools -C $(src)/tools/ $* > > # Single targets > # --------------------------------------------------------------------------- > diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile > index 8b00031f5349..f1ac5db46932 100644 > --- a/scripts/gdb/linux/Makefile > +++ b/scripts/gdb/linux/Makefile > @@ -1,6 +1,6 @@ > always := gdb-scripts > > -SRCTREE := $(shell cd $(srctree) && /bin/pwd) > +SRCTREE := $(shell cd $(srctree) && pwd) > > $(obj)/gdb-scripts: > ifneq ($(KBUILD_SRC),) > -- > 2.12.2 > > -- > 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
Hi, On 12 August 2017 at 05:26, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > Hi. > > 2017-07-24 23:20 GMT+09:00 Bjørn Forsman <bjorn.forsman@gmail.com>: >> Several places already use pwd and rely on $PATH lookup. Moving the >> remaining /bin/pwd users over for consistency. >> >> Also, a reason for doing /bin/pwd -> pwd instead of the other way around >> is because I believe build systems should make little assumptions on host >> filesystem layout. Case in point, we do this kind of patching already in >> NixOS. > [...] > Could you use $(abspath ...) instead of $(shell cd ... && /bin/pwd) ? > [...] > This one should use $(realpath ...) instead of $(abspath ...), I think. > > The difference between them is that > $(realpath ...) returns an empty string if the given path does not exist. That sounds like possibly changing semantics. I'd prefer to keep the patch as is, since I'm not familiar with the side effects of inserting relative vs absolute paths here. Is that OK for you? Best regards, Bjørn Forsman -- 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
Hi. 2017-08-12 21:00 GMT+09:00 Bjørn Forsman <bjorn.forsman@gmail.com>: > Hi, > > On 12 August 2017 at 05:26, Masahiro Yamada > <yamada.masahiro@socionext.com> wrote: >> Hi. >> >> 2017-07-24 23:20 GMT+09:00 Bjørn Forsman <bjorn.forsman@gmail.com>: >>> Several places already use pwd and rely on $PATH lookup. Moving the >>> remaining /bin/pwd users over for consistency. >>> >>> Also, a reason for doing /bin/pwd -> pwd instead of the other way around >>> is because I believe build systems should make little assumptions on host >>> filesystem layout. Case in point, we do this kind of patching already in >>> NixOS. >> [...] >> Could you use $(abspath ...) instead of $(shell cd ... && /bin/pwd) ? >> [...] >> This one should use $(realpath ...) instead of $(abspath ...), I think. >> >> The difference between them is that >> $(realpath ...) returns an empty string if the given path does not exist. > > That sounds like possibly changing semantics. I'd prefer to keep the > patch as is, since I'm not familiar with the side effects of inserting > relative vs absolute paths here. Is that OK for you? > I prefer abspath/realpath. If you are reluctant to do it, I will take a look.
On 16 August 2017 at 17:31, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > 2017-08-12 21:00 GMT+09:00 Bjørn Forsman <bjorn.forsman@gmail.com>: >> On 12 August 2017 at 05:26, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: >>> [...] >>> The difference between them is that >>> $(realpath ...) returns an empty string if the given path does not exist. >> >> That sounds like possibly changing semantics. I'd prefer to keep the >> patch as is, since I'm not familiar with the side effects of inserting >> relative vs absolute paths here. Is that OK for you? > > I prefer abspath/realpath. > > If you are reluctant to do it, I will take a look. Yes please. I only care about getting rid of /bin/pwd (absolute path). Best regards, Bjørn Forsman -- 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 --git a/Documentation/ia64/xen.txt b/Documentation/ia64/xen.txt index c61a99f7c8bb..a12c74ce2773 100644 --- a/Documentation/ia64/xen.txt +++ b/Documentation/ia64/xen.txt @@ -41,7 +41,7 @@ Getting and Building Xen and Dom0 5. make initrd for Dom0/DomU # make -C linux-2.6.18-xen.hg ARCH=ia64 modules_install \ - O=$(/bin/pwd)/build-linux-2.6.18-xen_ia64 + O=$(pwd)/build-linux-2.6.18-xen_ia64 # mkinitrd -f /boot/efi/efi/redhat/initrd-2.6.18.8-xen.img \ 2.6.18.8-xen --builtin mptspi --builtin mptbase \ --builtin mptscsih --builtin uhci-hcd --builtin ohci-hcd \ diff --git a/Makefile b/Makefile index b4fb9a1d1594..64e72eba5701 100644 --- a/Makefile +++ b/Makefile @@ -131,7 +131,7 @@ ifneq ($(KBUILD_OUTPUT),) # check that the output directory actually exists saved-output := $(KBUILD_OUTPUT) KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \ - && /bin/pwd) + && pwd) $(if $(KBUILD_OUTPUT),, \ $(error failed to create output directory "$(saved-output)")) @@ -978,7 +978,7 @@ ifdef CONFIG_HEADERS_CHECK $(Q)$(MAKE) -f $(srctree)/Makefile headers_check endif ifdef CONFIG_GDB_SCRIPTS - $(Q)ln -fsn `cd $(srctree) && /bin/pwd`/scripts/gdb/vmlinux-gdb.py + $(Q)ln -fsn `cd $(srctree) && pwd`/scripts/gdb/vmlinux-gdb.py endif ifdef CONFIG_TRIM_UNUSED_KSYMS $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ @@ -1237,7 +1237,7 @@ _modinst_: @rm -rf $(MODLIB)/kernel @rm -f $(MODLIB)/source @mkdir -p $(MODLIB)/kernel - @ln -s `cd $(srctree) && /bin/pwd` $(MODLIB)/source + @ln -s `cd $(srctree) && pwd` $(MODLIB)/source @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \ rm -f $(MODLIB)/build ; \ ln -s $(CURDIR) $(MODLIB)/build ; \ @@ -1629,11 +1629,11 @@ image_name: # Clear a bunch of variables before executing the submake tools/: FORCE $(Q)mkdir -p $(objtree)/tools - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && pwd) subdir=tools -C $(src)/tools/ tools/%: FORCE $(Q)mkdir -p $(objtree)/tools - $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && /bin/pwd) subdir=tools -C $(src)/tools/ $* + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(shell cd $(objtree) && pwd) subdir=tools -C $(src)/tools/ $* # Single targets # --------------------------------------------------------------------------- diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile index 8b00031f5349..f1ac5db46932 100644 --- a/scripts/gdb/linux/Makefile +++ b/scripts/gdb/linux/Makefile @@ -1,6 +1,6 @@ always := gdb-scripts -SRCTREE := $(shell cd $(srctree) && /bin/pwd) +SRCTREE := $(shell cd $(srctree) && pwd) $(obj)/gdb-scripts: ifneq ($(KBUILD_SRC),)
Several places already use pwd and rely on $PATH lookup. Moving the remaining /bin/pwd users over for consistency. Also, a reason for doing /bin/pwd -> pwd instead of the other way around is because I believe build systems should make little assumptions on host filesystem layout. Case in point, we do this kind of patching already in NixOS. Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> --- Documentation/ia64/xen.txt | 2 +- Makefile | 10 +++++----- scripts/gdb/linux/Makefile | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-)