Do not abuse the global ARCH variable as a local temporary
Setting it with a simple "uname -m" just to be able to decide whether to compile getarch.c with -march=native
may actually keep getarch from doing a proper probe. Fixes a regression caused by
@@ -9,9 +9,11 @@ ifndef TOPDIR
TOPDIR = .
endif
-# If ARCH is not set, we use the host system's architecture.
+# If ARCH is not set, we use the host system's architecture for getarch compile options.
ifndef ARCH
-ARCH := $(shell uname -m)
+HOSTARCH := $(shell uname -m)
+else
+HOSTARCH = $(ARCH)
endif
# Catch conflicting usage of ARCH in some BSD environments
@@ -143,7 +145,7 @@ endif
# On x86_64 build getarch with march=native unless the compiler is PGI. This is required to detect AVX512 support in getarch.
-ifeq ($(ARCH), x86_64)
+ifeq ($(HOSTARCH), x86_64)
ifeq ($(findstring pgcc,$(HOSTCC)),)
GETARCH_FLAGS += -march=native
endif
