@@ -246,9 +246,32 @@ if test "x$CXXFLAGS_overridden" = "xno"; then
246
246
# Check for optional instruction set support. Enabling these does _not_ imply that all code will
247
247
# be compiled with them, rather that specific objects/libs may use them after checking for runtime
248
248
# compatibility.
249
- AX_CHECK_COMPILE_FLAG ( [ -msse4.2] ,[ [ enable_sse42=yes; SSE42_CXXFLAGS="-msse4.2"] ] ,,[ [ $CXXFLAG_WERROR] ] )
249
+ AX_CHECK_COMPILE_FLAG ( [ -msse4.2] ,[ [ SSE42_CXXFLAGS="-msse4.2"] ] ,,[ [ $CXXFLAG_WERROR] ] )
250
250
251
251
fi
252
+
253
+ TEMP_CXXFLAGS="$CXXFLAGS"
254
+ CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS"
255
+ AC_MSG_CHECKING ( for assembler crc32 support )
256
+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ [
257
+ #include <stdint.h>
258
+ #if defined(_MSC_VER)
259
+ #include <intrin.h>
260
+ #elif defined(__GNUC__) && defined(__SSE4_2__)
261
+ #include <nmmintrin.h>
262
+ #endif
263
+ ] ] ,[ [
264
+ uint64_t l = 0;
265
+ l = _mm_crc32_u8(l, 0);
266
+ l = _mm_crc32_u32(l, 0);
267
+ l = _mm_crc32_u64(l, 0);
268
+ return l;
269
+ ] ] ) ] ,
270
+ [ AC_MSG_RESULT ( yes ) ; enable_hwcrc32=yes] ,
271
+ [ AC_MSG_RESULT ( no ) ]
272
+ )
273
+ CXXFLAGS="$TEMP_CXXFLAGS"
274
+
252
275
CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
253
276
254
277
AC_ARG_WITH ( [ utils] ,
@@ -1132,7 +1155,7 @@ AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes])
1132
1155
AM_CONDITIONAL([ USE_LCOV] ,[ test x$use_lcov = xyes] )
1133
1156
AM_CONDITIONAL([ GLIBC_BACK_COMPAT] ,[ test x$use_glibc_compat = xyes] )
1134
1157
AM_CONDITIONAL([ HARDEN] ,[ test x$use_hardening = xyes] )
1135
- AM_CONDITIONAL([ ENABLE_SSE42 ] ,[ test x$enable_sse42 = xyes] )
1158
+ AM_CONDITIONAL([ ENABLE_HWCRC32 ] ,[ test x$enable_hwcrc32 = xyes] )
1136
1159
1137
1160
AC_DEFINE ( CLIENT_VERSION_MAJOR , _CLIENT_VERSION_MAJOR , [ Major version] )
1138
1161
AC_DEFINE ( CLIENT_VERSION_MINOR , _CLIENT_VERSION_MINOR , [ Minor version] )
0 commit comments