mirror of https://git.tukaani.org/xz.git
CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
The option is enabled by default, but will only be visible to a user listing cache variables or using a CMake GUI application if the immintrin.h header file is found. This mirrors our Autotools build --disable-clmul-crc functionality.
This commit is contained in:
parent
5056bc5107
commit
1695021e4a
|
@ -802,12 +802,17 @@ if(HAVE_IMMINTRIN_H)
|
|||
tuklib_add_definition_if(liblzma HAVE__MM_MOVEMASK_EPI8)
|
||||
|
||||
# CLMUL intrinsic:
|
||||
option(ALLOW_CLMUL_CRC "Allow carryless multiplication for CRC \
|
||||
calculation if supported by the system" ON)
|
||||
|
||||
if(ALLOW_CLMUL_CRC)
|
||||
check_c_source_compiles("
|
||||
#include <immintrin.h>
|
||||
#if defined(__e2k__) && __iset__ < 6
|
||||
# error
|
||||
#endif
|
||||
#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__)
|
||||
#if (defined(__GNUC__) || defined(__clang__)) \
|
||||
&& !defined(__EDG__)
|
||||
__attribute__((__target__(\"ssse3,sse4.1,pclmul\")))
|
||||
#endif
|
||||
__m128i my_clmul(__m128i a)
|
||||
|
@ -820,6 +825,7 @@ if(HAVE_IMMINTRIN_H)
|
|||
HAVE_USABLE_CLMUL)
|
||||
tuklib_add_definition_if(liblzma HAVE_USABLE_CLMUL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Support -fvisiblity=hidden when building shared liblzma.
|
||||
# These lines do nothing on Windows (even under Cygwin).
|
||||
|
|
Loading…
Reference in New Issue