Linux/FreeBSD: Enable building without AESNI support by setting environment variable DISABLE_AESNI to 1 during build or passing NOAESNI=1 to make command
This comes following Github issue #892 and which should be solved thanks to this.
This commit is contained in:
parent
be5bcbf42f
commit
d417b2806c
|
@ -330,7 +330,9 @@ void DetectX86Features()
|
|||
g_hasSSE42 = g_hasSSE2 && (cpuid1[2] & (1 << 20));
|
||||
g_hasSSE41 = g_hasSSE2 && (cpuid1[2] & (1 << 19));
|
||||
g_hasSSSE3 = g_hasSSE2 && (cpuid1[2] & (1<<9));
|
||||
#ifndef CRYPTOPP_DISABLE_AESNI
|
||||
g_hasAESNI = g_hasSSE2 && (cpuid1[2] & (1<<25));
|
||||
#endif
|
||||
g_hasCLMUL = g_hasSSE2 && (cpuid1[2] & (1<<1));
|
||||
|
||||
#if !defined (_UEFI) && ((defined(__AES__) && defined(__PCLMUL__)) || defined(__INTEL_COMPILER) || CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE)
|
||||
|
|
|
@ -209,7 +209,9 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#define CRYPTOPP_CPUID_AVAILABLE
|
||||
#ifndef CRYPTOPP_DISABLE_AESNI
|
||||
#define TC_AES_HW_CPU
|
||||
#endif
|
||||
|
||||
// these should not be used directly
|
||||
extern volatile int g_x86DetectionDone;
|
||||
|
|
31
src/Makefile
31
src/Makefile
|
@ -143,6 +143,7 @@ export PLATFORM_UNSUPPORTED := 0
|
|||
|
||||
export CPU_ARCH ?= unknown
|
||||
export SIMD_SUPPORTED := 0
|
||||
export DISABLE_AESNI ?= 0
|
||||
|
||||
ARCH ?= $(shell uname -m)
|
||||
|
||||
|
@ -176,6 +177,9 @@ ifeq "$(origin NOSSE2)" "command line"
|
|||
SIMD_SUPPORTED := 0
|
||||
endif
|
||||
|
||||
ifeq "$(origin NOAESNI)" "command line"
|
||||
DISABLE_AESNI := 1
|
||||
endif
|
||||
|
||||
#------ Linux configuration ------
|
||||
|
||||
|
@ -197,11 +201,16 @@ ifeq "$(shell uname -s)" "Linux"
|
|||
CFLAGS += -msse2
|
||||
CXXFLAGS += -msse2
|
||||
|
||||
GCC_GTEQ_440 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40400)
|
||||
GCC_GTEQ_430 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40300)
|
||||
ifeq "$(GCC_GTEQ_440)" "1"
|
||||
CFLAGS += -maes
|
||||
CXXFLAGS += -maes
|
||||
ifeq "$(DISABLE_AESNI)" "1"
|
||||
CFLAGS += -mno-aes -DCRYPTOPP_DISABLE_AESNI
|
||||
CXXFLAGS += -mno-aes -DCRYPTOPP_DISABLE_AESNI
|
||||
else
|
||||
GCC_GTEQ_440 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40400)
|
||||
GCC_GTEQ_430 := $(shell expr `$(CC) -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/' -e 's/^[0-9]\{1,2\}$$/&0000/'` \>= 40300)
|
||||
ifeq "$(GCC_GTEQ_440)" "1"
|
||||
CFLAGS += -maes
|
||||
CXXFLAGS += -maes
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq "$(GCC_GTEQ_430)" "1"
|
||||
|
@ -365,8 +374,16 @@ ifeq "$(shell uname -s)" "FreeBSD"
|
|||
endif
|
||||
|
||||
ifeq "$(SIMD_SUPPORTED)" "1"
|
||||
CFLAGS += -msse2 -maes
|
||||
CXXFLAGS += -msse2 -maes
|
||||
CFLAGS += -msse2
|
||||
CXXFLAGS += -msse2
|
||||
|
||||
ifeq "$(DISABLE_AESNI)" "1"
|
||||
CFLAGS += -mno-aes -DCRYPTOPP_DISABLE_AESNI
|
||||
CXXFLAGS += -mno-aes -DCRYPTOPP_DISABLE_AESNI
|
||||
else
|
||||
CFLAGS += -maes
|
||||
CXXFLAGS += -maes
|
||||
endif
|
||||
|
||||
ifeq "$(origin SSSE3)" "command line"
|
||||
CFLAGS += -mssse3
|
||||
|
|
|
@ -47,12 +47,16 @@ ifeq "$(PLATFORM)" "MacOSX"
|
|||
OBJSEX += ../Crypto/sha512_sse4.oo
|
||||
else ifeq "$(CPU_ARCH)" "x86"
|
||||
OBJS += ../Crypto/Aes_x86.o
|
||||
ifeq "$(DISABLE_AESNI)" "0"
|
||||
OBJS += ../Crypto/Aes_hw_cpu.o
|
||||
endif
|
||||
OBJS += ../Crypto/sha256-x86-nayuki.o
|
||||
OBJS += ../Crypto/sha512-x86-nayuki.o
|
||||
else ifeq "$(CPU_ARCH)" "x64"
|
||||
OBJS += ../Crypto/Aes_x64.o
|
||||
ifeq "$(DISABLE_AESNI)" "0"
|
||||
OBJS += ../Crypto/Aes_hw_cpu.o
|
||||
endif
|
||||
OBJS += ../Crypto/Twofish_x64.o
|
||||
OBJS += ../Crypto/Camellia_x64.o
|
||||
OBJS += ../Crypto/Camellia_aesni_x64.o
|
||||
|
|
Loading…
Reference in New Issue