mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-20 14:05:23 +01:00
build: add configure checks for minisketch
AC_DEFINE'd values won't be passed down to minisketch because it does not use bitcoin-config.h. Thus we need a way to know if we should manually add defines for minisketch files.
This commit is contained in:
parent
07f0a61ef7
commit
b2904ceb85
1 changed files with 28 additions and 4 deletions
32
configure.ac
32
configure.ac
|
@ -470,6 +470,24 @@ AX_CHECK_COMPILE_FLAG([-msse4.1],[[SSE41_CXXFLAGS="-msse4.1"]],,[[$CXXFLAG_WERRO
|
|||
AX_CHECK_COMPILE_FLAG([-mavx -mavx2],[[AVX2_CXXFLAGS="-mavx -mavx2"]],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-msse4 -msha],[[SHANI_CXXFLAGS="-msse4 -msha"]],,[[$CXXFLAG_WERROR]])
|
||||
|
||||
enable_clmul=
|
||||
AX_CHECK_COMPILE_FLAG([-mpclmul], [enable_clmul=yes], [], [$CXXFLAG_WERROR], [AC_LANG_PROGRAM([
|
||||
#include <stdint.h>
|
||||
#include <x86intrin.h>
|
||||
], [
|
||||
__m128i a = _mm_cvtsi64_si128((uint64_t)7);
|
||||
__m128i b = _mm_clmulepi64_si128(a, a, 37);
|
||||
__m128i c = _mm_srli_epi64(b, 41);
|
||||
__m128i d = _mm_xor_si128(b, c);
|
||||
uint64_t e = _mm_cvtsi128_si64(d);
|
||||
return e == 0;
|
||||
])])
|
||||
|
||||
if test x$enable_clmul = xyes; then
|
||||
CLMUL_CXXFLAGS="-mpclmul"
|
||||
AC_DEFINE(HAVE_CLMUL, 1, [Define this symbol if clmul instructions can be used])
|
||||
fi
|
||||
|
||||
TEMP_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS"
|
||||
AC_MSG_CHECKING(for SSE4.2 intrinsics)
|
||||
|
@ -950,19 +968,20 @@ AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
|
|||
#endif])
|
||||
|
||||
AC_MSG_CHECKING(for __builtin_clzl)
|
||||
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
|
||||
(void) __builtin_clzl(0);
|
||||
]])],
|
||||
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZL, 1, [Define this symbol if you have __builtin_clzl])],
|
||||
[ AC_MSG_RESULT(no)]
|
||||
[ AC_MSG_RESULT(yes); have_clzl=yes; AC_DEFINE(HAVE_BUILTIN_CLZL, 1, [Define this symbol if you have __builtin_clzl])],
|
||||
[ AC_MSG_RESULT(no); have_clzl=no;]
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(for __builtin_clzll)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
|
||||
(void) __builtin_clzll(0);
|
||||
]])],
|
||||
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZLL, 1, [Define this symbol if you have __builtin_clzll])],
|
||||
[ AC_MSG_RESULT(no)]
|
||||
[ AC_MSG_RESULT(yes); have_clzll=yes; AC_DEFINE(HAVE_BUILTIN_CLZLL, 1, [Define this symbol if you have __builtin_clzll])],
|
||||
[ AC_MSG_RESULT(no); have_clzll=no;]
|
||||
)
|
||||
|
||||
dnl Check for malloc_info (for memory statistics information in getmemoryinfo)
|
||||
|
@ -1763,6 +1782,10 @@ AM_CONDITIONAL([WORDS_BIGENDIAN],[test x$ac_cv_c_bigendian = xyes])
|
|||
AM_CONDITIONAL([USE_NATPMP],[test x$use_natpmp = xyes])
|
||||
AM_CONDITIONAL([USE_UPNP],[test x$use_upnp = xyes])
|
||||
|
||||
dnl for minisketch
|
||||
AM_CONDITIONAL([ENABLE_CLMUL],[test x$enable_clmul = xyes])
|
||||
AM_CONDITIONAL([HAVE_CLZ],[test x$have_clzl$have_clzll = xyesyes])
|
||||
|
||||
AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
|
||||
AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
|
||||
AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
|
||||
|
@ -1806,6 +1829,7 @@ AC_SUBST(SANITIZER_CXXFLAGS)
|
|||
AC_SUBST(SANITIZER_LDFLAGS)
|
||||
AC_SUBST(SSE42_CXXFLAGS)
|
||||
AC_SUBST(SSE41_CXXFLAGS)
|
||||
AC_SUBST(CLMUL_CXXFLAGS)
|
||||
AC_SUBST(AVX2_CXXFLAGS)
|
||||
AC_SUBST(SHANI_CXXFLAGS)
|
||||
AC_SUBST(ARM_CRC_CXXFLAGS)
|
||||
|
|
Loading…
Add table
Reference in a new issue