summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/checks.cmake4
-rw-r--r--src/crypto/mac/ghash/pclmulqdq/CMakeLists.txt4
2 files changed, 8 insertions, 0 deletions
diff --git a/cmake/checks.cmake b/cmake/checks.cmake
index cd80856..225c443 100644
--- a/cmake/checks.cmake
+++ b/cmake/checks.cmake
@@ -1,9 +1,13 @@
+include(CheckCCompilerFlag)
include(CheckCSourceCompiles)
include(CheckPrototypeDefinition)
include(CheckSymbolExists)
include(CheckTypeSize)
set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
+if(ARCH_X86 OR ARCH_X86_64)
+ check_c_compiler_flag("-mpclmul" HAVE_PCLMUL)
+endif(ARCH_X86 OR ARCH_X86_64)
check_c_source_compiles("
#include <sys/types.h>
diff --git a/src/crypto/mac/ghash/pclmulqdq/CMakeLists.txt b/src/crypto/mac/ghash/pclmulqdq/CMakeLists.txt
index a11ad02..59bc09d 100644
--- a/src/crypto/mac/ghash/pclmulqdq/CMakeLists.txt
+++ b/src/crypto/mac/ghash/pclmulqdq/CMakeLists.txt
@@ -1,4 +1,8 @@
if(ARCH_X86 OR ARCH_X86_64)
+ if(NOT HAVE_PCLMUL)
+ message(FATAL_ERROR "WITH_MAC_GHASH_PCLMULQDQ enabled, but there is no compiler support for -mpclmul")
+ endif(NOT HAVE_PCLMUL)
+
fastd_mac_impl(ghash pclmulqdq
ghash_pclmulqdq.c
ghash_pclmulqdq_impl.c