diff --git a/GNUmakefile b/GNUmakefile index bac9d41e..5e98825d 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -1052,8 +1052,9 @@ ifneq ($(IS_MINGW),0) INCL += resource.h endif -# Cryptogams AES for ARMv4 and above. We couple to ARMv7. +# Cryptogams source files. We couple to ARMv7. # Limit to Linux. The source files target the GNU assembler. +# Also see https://www.cryptopp.com/wiki/Cryptogams. ifeq ($(IS_ARM32)$(IS_LINUX),11) ifeq ($(CLANG_COMPILER),1) CRYPTOGAMS_ARMV7_FLAG = -march=armv7-a -Wa,--noexecstack @@ -1426,7 +1427,7 @@ endif # Dependencies # Cryptogams ARM asm implementation. AES needs -mthumb for Clang aes_armv4.o : aes_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_THUMB_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_THUMB_FLAG) -c) $< # SSSE3 or NEON available aria_simd.o : aria_simd.cpp @@ -1508,17 +1509,17 @@ rijndael_simd.o : rijndael_simd.cpp sha_simd.o : sha_simd.cpp $(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA1 asm implementation. sha1_armv4.o : sha1_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA256 asm implementation. sha256_armv4.o : sha256_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA512 asm implementation. sha512_armv4.o : sha512_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< sha3_simd.o : sha3_simd.cpp $(CXX) $(strip $(CXXFLAGS) $(SHA3_FLAG) -c) $< diff --git a/GNUmakefile-cross b/GNUmakefile-cross index 42c944e2..6f743f66 100755 --- a/GNUmakefile-cross +++ b/GNUmakefile-cross @@ -602,8 +602,9 @@ SRCS := cryptlib.cpp cpu.cpp integer.cpp $(filter-out cryptlib.cpp cpu.cpp integ # For Makefile.am; resource.h is Windows INCL := $(filter-out resource.h,$(sort $(wildcard *.h))) -# Cryptogams AES for ARMv4 and above. We couple to ARMv7. +# Cryptogams source files. We couple to ARMv7. # Limit to Linux. The source files target the GNU assembler. +# Also see https://www.cryptopp.com/wiki/Cryptogams. ifeq ($(IS_ARM32)$(IS_LINUX),11) ifeq ($(CLANG_COMPILER),1) CRYPTOGAMS_ARMV7_FLAG = -march=armv7-a -Wa,--noexecstack @@ -817,7 +818,7 @@ endif # Dependencies # Cryptogams ARM asm implementation. AES needs -mthumb for Clang aes_armv4.o : aes_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_THUMB_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_THUMB_FLAG) -c) $< cpu-features.o: cpu-features.h cpu-features.c $(CXX) $(strip $(CXXFLAGS) -fpermissive -c) cpu-features.c @@ -882,17 +883,17 @@ rijndael_simd.o : rijndael_simd.cpp sha_simd.o : sha_simd.cpp $(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA1 asm implementation. sha1_armv4.o : sha1_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA256 asm implementation. sha256_armv4.o : sha256_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< -# Cryptogams ARM asm implementation. +# Cryptogams SHA512 asm implementation. sha512_armv4.o : sha512_armv4.S - $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< + $(CXX) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARMV7_FLAG) -c) $< # SSE4.2/SHA-NI or ARMv8a available shacal2_simd.o : shacal2_simd.cpp diff --git a/config_asm.h b/config_asm.h index e891aafd..dc10e052 100644 --- a/config_asm.h +++ b/config_asm.h @@ -357,7 +357,7 @@ // about 50% faster than C/C++, and SHA implementation is about 30% faster // than C/C++. Define this to use the Cryptogams AES and SHA implementations // on GNU Linux systems. When defined, Crypto++ will use aes_armv4.S, -// sha1_armv4.S and sha256_armv4.S. +// sha1_armv4.S and sha256_armv4.S. https://www.cryptopp.com/wiki/Cryptogams. #if !defined(CRYPTOPP_DISABLE_ASM) && defined(__arm__) && defined(__linux__) # if defined(__GNUC__) || defined(__clang__) # define CRYPTOGAMS_ARM_AES 1