Message ID | 20230727145447.2701-3-anthony.perard@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | build: reduce number of $(shell) execution on make 4.4 | expand |
On 27.07.2023 16:54, Anthony PERARD wrote: > With GNU make 4.4, the number of execution of the command present in > these $(shell ) increased greatly. This is probably because as of make > 4.4, exported variable are also added to the environment of $(shell ) > construct. > > So to avoid having these command been run more than necessary, we > will replace ?= by an equivalent but with immediate expansion. > > Reported-by: Jason Andryuk <jandryuk@gmail.com> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
diff --git a/Config.mk b/Config.mk index c529b1ba19..dc3afaa47e 100644 --- a/Config.mk +++ b/Config.mk @@ -19,13 +19,17 @@ or = $(if $(strip $(1)),$(1),$(if $(strip $(2)),$(2),$(if $(strip $(3)),$( -include $(XEN_ROOT)/.config -XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \ +ifeq ($(origin XEN_COMPILE_ARCH), undefined) +XEN_COMPILE_ARCH := $(shell uname -m | sed -e s/i.86/x86_32/ \ -e s/i86pc/x86_32/ -e s/amd64/x86_64/ \ -e s/armv7.*/arm32/ -e s/armv8.*/arm64/ \ -e s/aarch64/arm64/) +endif XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH) -XEN_OS ?= $(shell uname -s) +ifeq ($(origin XEN_OS), undefined) +XEN_OS := $(shell uname -s) +endif CONFIG_$(XEN_OS) := y
With GNU make 4.4, the number of execution of the command present in these $(shell ) increased greatly. This is probably because as of make 4.4, exported variable are also added to the environment of $(shell ) construct. So to avoid having these command been run more than necessary, we will replace ?= by an equivalent but with immediate expansion. Reported-by: Jason Andryuk <jandryuk@gmail.com> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> --- Notes: v3: - replace evaluation on first use construct by immediate expansion which isn't likely to break and is clearer. Config.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)