From 7f137b7d50c784230f0c0cca81894cbb829e62d0 Mon Sep 17 00:00:00 2001 From: Johanna Amann Date: Tue, 12 May 2020 12:03:10 -0700 Subject: [PATCH] Update architecture checks for highwayhash Now we use cmake to determine which compiler flags are set to determine which implementation of highwayhash to compile. This should be much more robust. Also - fix missing include on old ubuntus. --- CMakeLists.txt | 1 + cmake | 2 +- src/CMakeLists.txt | 8 ++++---- src/digest.h | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d4fe1c8279..1f1799645c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ endif () include(cmake/CommonCMakeConfig.cmake) include(cmake/FindClangTidy.cmake) +include(cmake/CheckCompilerArch.cmake) ######################################################################## ## Project/Build Configuration diff --git a/cmake b/cmake index d85153d8e0..e49c2eecc6 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit d85153d8e0e62fbd6f1125c498b2741f4bc987dc +Subproject commit e49c2eecc68f49490297c54c78fb8cff8fa83ac7 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5bb9269ff6..bd954635c2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -329,23 +329,23 @@ set(HH_SRCS 3rdparty/highwayhash/highwayhash/hh_portable.cc ) -if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") +if (${COMPILER_ARCHITECTURE} STREQUAL "arm") set_source_files_properties(${HH_SRCS} PROPERTIES COMPILE_FLAGS -mfloat-abi=hard -march=armv7-a -mfpu=neon) list(APPEND HH_SRCS 3rdparty/highwayhash/highwayhash/hh_neon.cc ) -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") +elseif (${COMPILER_ARCHITECTURE} STREQUAL "aarch64") list(APPEND HH_SRCS 3rdparty/highwayhash/highwayhash/hh_neon.cc ) -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)") +elseif (${COMPILER_ARCHITECTURE} STREQUAL "power") set_source_files_properties(3rdparty/highwayhash/highwayhash/hh_avx2.cc PROPERTIES COMPILE_FLAGS -mvsx) list(APPEND HH_SRCS 3rdparty/highwayhash/highwayhash/hh_vsc.cc ) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(AMD64|amd64)") +elseif(${COMPILER_ARCHITECTURE} STREQUAL "x86_64") set_source_files_properties(3rdparty/highwayhash/highwayhash/hh_avx2.cc PROPERTIES COMPILE_FLAGS -mavx2) set_source_files_properties(3rdparty/highwayhash/highwayhash/hh_sse41.cc PROPERTIES COMPILE_FLAGS diff --git a/src/digest.h b/src/digest.h index f5569179ff..8c3f7b0dce 100644 --- a/src/digest.h +++ b/src/digest.h @@ -11,6 +11,7 @@ #include #include // for u_char +#include #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER) #define EVP_MD_CTX_new EVP_MD_CTX_create