@@ -79,10 +79,16 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|i386|i686")
79
79
ENDIF ()
80
80
ENDIF ()
81
81
ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64" )
82
- IF (CMAKE_C_COMPILER_ID STREQUAL " GNU" )
83
- include (CheckCXXSourceCompiles )
82
+ IF (CMAKE_C_COMPILER_ID MATCHES "Clang| GNU" )
83
+ include (CheckCSourceCompiles )
84
84
85
- CHECK_CXX_SOURCE_COMPILES("
85
+ CHECK_C_COMPILER_FLAG(-march=armv8-a+crc+crypto HAVE_ARMV8_CRC_CRYPTO_MARCH)
86
+ IF (HAVE_ARMV8_CRC_CRYPTO_MARCH)
87
+ SET (SAVE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} " )
88
+ SET (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -march=armv8-a+crc+crypto" )
89
+ ENDIF ()
90
+
91
+ CHECK_C_SOURCE_COMPILES("
86
92
#define CRC32CX(crc, value) __asm__(\" crc32cx %w[c], %w[c], %x[v]\" :[c]\" +r\" (crc):[v]\" r\" (value))
87
93
asm(\" .arch_extension crc\" );
88
94
unsigned int foo(unsigned int ret) {
@@ -99,7 +105,7 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
99
105
#endif
100
106
}" HAVE_ARMV8_CRC)
101
107
102
- CHECK_CXX_SOURCE_COMPILES ("
108
+ CHECK_C_SOURCE_COMPILES ("
103
109
asm(\" .arch_extension crypto\" );
104
110
unsigned int foo(unsigned int ret) {
105
111
__asm__(\" pmull v2.1q, v2.1d, v1.1d\" );
@@ -115,10 +121,8 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
115
121
#endif
116
122
}" HAVE_ARMV8_CRYPTO)
117
123
118
- CHECK_C_COMPILER_FLAG(-march=armv8-a+crc+crypto HAVE_ARMV8_CRC_CRYPTO_MARCH)
119
-
120
124
IF (HAVE_ARMV8_CRC_CRYPTO_MARCH)
121
- CHECK_INCLUDE_FILE(arm_acle.h HAVE_ARM_ACLE_H -march=armv8-a+crc+crypto )
125
+ CHECK_INCLUDE_FILE(arm_acle.h HAVE_ARM_ACLE_H)
122
126
IF (HAVE_ARM_ACLE_H)
123
127
ADD_DEFINITIONS (-DHAVE_ARMV8_CRC_CRYPTO_INTRINSICS)
124
128
ENDIF ()
@@ -131,6 +135,8 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
131
135
SET (MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32_arm64.c)
132
136
SET_SOURCE_FILES_PROPERTIES (crc32/crc32_arm64.c PROPERTIES
133
137
COMPILE_FLAGS "-march=armv8-a+crc+crypto" )
138
+
139
+ SET (CMAKE_REQUIRED_FLAGS "${SAVE_CMAKE_REQUIRED_FLAGS} " )
134
140
ENDIF ()
135
141
ENDIF ()
136
142
ENDIF ()
0 commit comments