Add Power8 support to Makefile

pull/507/head
Jeffrey Walton 2017-09-09 20:33:06 -04:00
parent 66c84a9af4
commit 9276b95221
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 24 additions and 5 deletions

View File

@ -30,10 +30,11 @@ else
GREP ?= grep GREP ?= grep
endif endif
IS_X86 := $(shell uname -m | $(GREP) -v "x86_64" | $(GREP) -i -c -E "i.86|x86|i86") IS_X86 := $(shell uname -m | $(GREP) -v "64" | $(GREP) -i -c -E "i.86|x86|i86")
IS_X64 := $(shell uname -m | $(GREP) -i -c -E "(_64|d64)") IS_X64 := $(shell uname -m | $(GREP) -i -c -E "(_64|d64)")
IS_PPC := $(shell uname -m | $(GREP) -i -c "ppc|power") IS_PPC32 := $(shell uname -m | $(GREP) -i -v "64" | $(GREP) -i -c -E "ppc|power")
IS_ARM32 := $(shell uname -m | $(GREP) -i -c -E 'armhf|arm7l|eabihf') IS_PPC64 := $(shell uname -m | $(GREP) -i -c -E "ppc64|power64")
IS_ARM32 := $(shell uname -m | $(GREP) -i -v "64" | $(GREP) -i -c -E 'armhf|arm7l|eabihf')
IS_ARM64 := $(shell uname -m | $(GREP) -i -c 'aarch64') IS_ARM64 := $(shell uname -m | $(GREP) -i -c 'aarch64')
IS_ARMV8 ?= $(shell uname -m | $(GREP) -i -c -E 'aarch32|aarch64') IS_ARMV8 ?= $(shell uname -m | $(GREP) -i -c -E 'aarch32|aarch64')
IS_NEON ?= $(shell uname -m | $(GREP) -i -c -E 'armv7|armv8|aarch32|aarch64') IS_NEON ?= $(shell uname -m | $(GREP) -i -c -E 'armv7|armv8|aarch32|aarch64')
@ -321,11 +322,11 @@ ifeq ($(IS_ARMV8),1)
NEON_FLAG = -march=armv8-a NEON_FLAG = -march=armv8-a
endif endif
HAVE_CRC = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crc -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRC32) HAVE_CRC = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crc -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRC32)
ifeq ($(HAVE_NEON),1) ifeq ($(HAVE_CRC),1)
CRC_FLAG = -march=armv8-a+crc CRC_FLAG = -march=armv8-a+crc
endif endif
HAVE_CRYPTO = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crypto -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRYPTO) HAVE_CRYPTO = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crypto -dM -E - 2>/dev/null | $(GREP) -i -c __ARM_FEATURE_CRYPTO)
ifeq ($(HAVE_NEON),1) ifeq ($(HAVE_CRYPTO),1)
AES_FLAG = -march=armv8-a+crypto AES_FLAG = -march=armv8-a+crypto
GCM_FLAG = -march=armv8-a+crypto GCM_FLAG = -march=armv8-a+crypto
SHA_FLAG = -march=armv8-a+crypto SHA_FLAG = -march=armv8-a+crypto
@ -333,6 +334,24 @@ ifeq ($(IS_ARMV8),1)
endif endif
# PowerPC and PowerPC-64 # PowerPC and PowerPC-64
ifneq ($(IS_PPC32)$(IS_PPC64),00)
# GCC and some compatibles
HAVE_CRYPTO = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -mcpu=power8 -dM -E - 2>/dev/null | $(GREP) -i -c __CRYPTO)
ifeq ($(HAVE_CRYPTO),1)
AES_FLAG = -mcpu=power8
GCM_FLAG = -mcpu=power8
SHA_FLAG = -mcpu=power8
endif
# IBM XL C/C++
HAVE_CRYPTO = $(shell $(CXX) $(CXXFLAGS) -qshowmacros -qarch=pwr8 -qaltivec rijndael.cpp -dM -E 2>/dev/null | $(GREP) -i -c __CRYPTO)
ifeq ($(HAVE_CRYPTO),1)
AES_FLAG = -qarch=pwr8 -qaltivec
GCM_FLAG = -qarch=pwr8 -qaltivec
SHA_FLAG = -qarch=pwr8 -qaltivec
endif
endif
# IBM XL C/C++ compiler
ifeq ($(XLC_COMPILER),1) ifeq ($(XLC_COMPILER),1)
# http://www-01.ibm.com/support/docview.wss?uid=swg21007500 # http://www-01.ibm.com/support/docview.wss?uid=swg21007500
ifeq ($(findstring -qrtti,$(CXXFLAGS)),) ifeq ($(findstring -qrtti,$(CXXFLAGS)),)