|
|
@ -554,33 +554,14 @@ fi |
|
|
|
if test x$use_boost = xyes; then |
|
|
|
|
|
|
|
dnl Check for boost libs |
|
|
|
AX_BOOST_BASE |
|
|
|
dnl We need Boost >= 1.62 to fix a potential security bug (https://github.com/zcash/zcash/issues/1241) |
|
|
|
AX_BOOST_BASE([1.62]) |
|
|
|
AX_BOOST_SYSTEM |
|
|
|
AX_BOOST_FILESYSTEM |
|
|
|
AX_BOOST_PROGRAM_OPTIONS |
|
|
|
AX_BOOST_THREAD |
|
|
|
AX_BOOST_CHRONO |
|
|
|
|
|
|
|
|
|
|
|
if test x$use_reduce_exports = xyes; then |
|
|
|
AC_MSG_CHECKING([for working boost reduced exports]) |
|
|
|
TEMP_CPPFLAGS="$CPPFLAGS" |
|
|
|
CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS" |
|
|
|
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ |
|
|
|
@%:@include <boost/version.hpp> |
|
|
|
]], [[ |
|
|
|
#if BOOST_VERSION >= 104900 |
|
|
|
// Everything is okay |
|
|
|
#else |
|
|
|
# error Boost version is too old |
|
|
|
#endif |
|
|
|
]])],[ |
|
|
|
AC_MSG_RESULT(yes) |
|
|
|
],[ |
|
|
|
AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.]) |
|
|
|
]) |
|
|
|
CPPFLAGS="$TEMP_CPPFLAGS" |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
if test x$use_reduce_exports = xyes; then |
|
|
@ -621,60 +602,7 @@ if test x$use_tests = xyes; then |
|
|
|
fi |
|
|
|
|
|
|
|
if test x$use_boost = xyes; then |
|
|
|
|
|
|
|
BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB" |
|
|
|
|
|
|
|
dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however |
|
|
|
dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if |
|
|
|
dnl a working version is available, else fall back to sleep. sleep was removed |
|
|
|
dnl after 1.56. |
|
|
|
dnl If neither is available, abort. |
|
|
|
TEMP_LIBS="$LIBS" |
|
|
|
LIBS="$BOOST_LIBS $LIBS" |
|
|
|
TEMP_CPPFLAGS="$CPPFLAGS" |
|
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
|
|
|
#include <boost/thread/thread.hpp> |
|
|
|
#include <boost/version.hpp> |
|
|
|
]],[[ |
|
|
|
#if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200) |
|
|
|
boost::this_thread::sleep_for(boost::chrono::milliseconds(0)); |
|
|
|
#else |
|
|
|
choke me |
|
|
|
#endif |
|
|
|
]])], |
|
|
|
[boost_sleep=yes; |
|
|
|
AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])], |
|
|
|
[boost_sleep=no]) |
|
|
|
LIBS="$TEMP_LIBS" |
|
|
|
CPPFLAGS="$TEMP_CPPFLAGS" |
|
|
|
|
|
|
|
if test x$boost_sleep != xyes; then |
|
|
|
TEMP_LIBS="$LIBS" |
|
|
|
LIBS="$BOOST_LIBS $LIBS" |
|
|
|
TEMP_CPPFLAGS="$CPPFLAGS" |
|
|
|
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
|
|
|
#include <boost/version.hpp> |
|
|
|
#include <boost/thread.hpp> |
|
|
|
#include <boost/date_time/posix_time/posix_time_types.hpp> |
|
|
|
]],[[ |
|
|
|
#if BOOST_VERSION <= 105600 |
|
|
|
boost::this_thread::sleep(boost::posix_time::milliseconds(0)); |
|
|
|
#else |
|
|
|
choke me |
|
|
|
#endif |
|
|
|
]])], |
|
|
|
[boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])], |
|
|
|
[boost_sleep=no]) |
|
|
|
LIBS="$TEMP_LIBS" |
|
|
|
CPPFLAGS="$TEMP_CPPFLAGS" |
|
|
|
fi |
|
|
|
|
|
|
|
if test x$boost_sleep != xyes; then |
|
|
|
AC_MSG_ERROR(No working boost sleep implementation found.) |
|
|
|
fi |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
if test x$use_pkgconfig = xyes; then |
|
|
|