Re: [Buildroot] [RFC PATCH 2/3] make: Drop `type -p ...' fallback
From: Cyril Bur <hidden>
Date: 2021-10-28 13:52:40
On Tue, 12 Oct 2021 00:00:24 +0200 Petr Vorel [off-list ref] wrote:
`command -v' is good enough as it's POSIX. For easier debugging previous problems removed separately.
On doing some reading[1] I've discovered that this is a minefield. Having said that, I'm pretty sure what currently happens isn't good either. My only concern might be that theres old RHEL (its always RHEL ;)) systems out there which could break. Some of my coleagues use old RHEL VMs for their build machines. I'm going to try and see if I can get access but I wouldn't hold up the patch waiting. I've given this patch applied with the previous one a test and is working fine on my system. I'm wondering if my tested by tag is appropriate for the previous patch since I haven't tested it in isolation. uname -a Linux 5.14.12-arch1-1 #1 SMP PREEMPT Wed, 13 Oct 2021 16:58:16 +0000 x86_64 GNU/Linux make --version GNU Make 4.3 Built for x86_64-pc-linux-gnu /bin/sh --version GNU bash, version 5.1.8(1)-release (x86_64-pc-linux-gnu) [1] https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then Tested-by: Cyril Bur <redacted> Reviewed-by: Cyril Bur <redacted>
Signed-off-by: Petr Vorel <redacted>
quoted hunk ↗ jump to hunk
--- Makefile | 22 +++++++++++----------- package/Makefile.in | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-)diff --git a/Makefile b/Makefile index 2317655272..81b7173974 100644 --- a/Makefile +++ b/Makefile@@ -284,12 +284,12 @@ HOSTAS := as endif ifndef HOSTCC HOSTCC := gcc -HOSTCC := $(shell $(SHELL) -c "command -v '$(HOSTCC)' || type -p'$(HOSTCC)' || echo gcc") +HOSTCC := $(shell $(SHELL) -c "command -v '$(HOSTCC)' || echo gcc") endif HOSTCC_NOCCACHE := $(HOSTCC) ifndef HOSTCXX HOSTCXX := g++ -HOSTCXX := $(shell $(SHELL) -c "command -v '$(HOSTCXX)' || type -p '$(HOSTCXX)' || echo g++") +HOSTCXX := $(shell $(SHELL) -c "command -v '$(HOSTCXX)' || echo g++") endif HOSTCXX_NOCCACHE := $(HOSTCXX) ifndef HOSTCPP@@ -310,15 +310,15 @@ endif ifndef HOSTRANLIB HOSTRANLIB := ranlib endif -HOSTAR := $(shell '$(SHELL)' -c "command -v '$(HOSTAR)' || type -p'$(HOSTAR)' || echo ar") -HOSTAS := $(shell '$(SHELL)' -c "command -v '$(HOSTAS)' || type -p '$(HOSTAS)' || echo as") -HOSTCPP := $(shell '$(SHELL)' -c "command -v '$(HOSTCPP)' || type -p '$(HOSTCPP)' || echo cpp") -HOSTLD := $(shell '$(SHELL)' -c "command -v '$(HOSTLD)' || type -p '$(HOSTLD)' || echo ld") -HOSTLN := $(shell '$(SHELL)' -c "command -v '$(HOSTLN)' || type -p '$(HOSTLN)' || echo ln") -HOSTNM := $(shell '$(SHELL)' -c "command -v '$(HOSTNM)' || type -p '$(HOSTNM)' || echo nm") -HOSTOBJCOPY := $(shell '$(SHELL)' -c "command -v '$(HOSTOBJCOPY)' || type -p '$(HOSTOBJCOPY)' || echo objcopy") -HOSTRANLIB := $(shell '$(SHELL)' -c "command -v '$(HOSTRANLIB)' || type -p '$(HOSTRANLIB)' || echo ranlib") -SED := $(shell $(SHELL) -c "command -v sed || type -p sed") -i -e +HOSTAR := $(shell '$(SHELL)' -c "command -v '$(HOSTAR)' || echo ar") +HOSTAS := $(shell '$(SHELL)' -c "command -v '$(HOSTAS)' || echo as") +HOSTCPP := $(shell '$(SHELL)' -c "command -v '$(HOSTCPP)' || echo cpp") +HOSTLD := $(shell '$(SHELL)' -c "command -v '$(HOSTLD)' || echo ld") +HOSTLN := $(shell '$(SHELL)' -c "command -v '$(HOSTLN)' || echo ln") +HOSTNM := $(shell '$(SHELL)' -c "command -v '$(HOSTNM)' || echo nm") +HOSTOBJCOPY := $(shell '$(SHELL)' -c "command -v '$(HOSTOBJCOPY)' || echo objcopy") +HOSTRANLIB := $(shell '$(SHELL)' -c "command -v '$(HOSTRANLIB)' || echo ranlib") +SED := $(shell $(SHELL) -c "command -v sed") -i -e export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE diff --git a/package/Makefile.in b/package/Makefile.in index 2ba4d8b381..4e993ecd5f 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -4,7 +4,7 @@ endif ifndef HOSTMAKE HOSTMAKE = $(MAKE) endif -HOSTMAKE := $(shell $(SHELL) -c "command -v '$(HOSTMAKE)' || type -p '$(HOSTMAKE)' || echo make") +HOSTMAKE := $(shell $(SHELL) -c "command -v '$(HOSTMAKE)' || echo make") # If BR2_JLEVEL is 0, scale the maximum concurrency with the number of # CPUs. An additional job is used in order to keep processors busy@@ -222,8 +222,8 @@ else TARGET_STRIP = /bin/true STRIPCMD = $(TARGET_STRIP) endif -INSTALL := $(shell $(SHELL) -c "command -v install || type -pinstall") -UNZIP := $(shell $(SHELL) -c "command -v unzip || type -p unzip") -q +INSTALL := $(shell $(SHELL) -c "command -v install") +UNZIP := $(shell $(SHELL) -c "command -v unzip") -q APPLY_PATCHES = PATH=$(HOST_DIR)/bin:$$PATH support/scripts/apply-patches.sh $(if $(QUIET),-s)
_______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot