Re: [PATCH] kbuild: /bin/pwd -> pwd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi.


2017-07-24 23:20 GMT+09:00 Bjørn Forsman <bjorn.forsman@xxxxxxxxx>:
> 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@xxxxxxxxx>


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@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



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




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux