Do not abuse the global ARCH variable as a local temporary
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Tue, 27 Aug 2019 20:52:17 +0000 (22:52 +0200)
committerGitHub <noreply@github.com>
Tue, 27 Aug 2019 20:52:17 +0000 (22:52 +0200)
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 #2231, a regression caused by #2110

Makefile.system

index a54282f..fe6be79 100644 (file)
@@ -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