From 2bf211696b8cd355856995ba821c74e67385b77d Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 23 Jun 2021 14:14:56 +0800 Subject: [PATCH 1/3] build: set minimum required Boost to 1.64.0 --- configure.ac | 2 +- doc/dependencies.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8cfa2d39e1..dfe636cbb4 100644 --- a/configure.ac +++ b/configure.ac @@ -1415,7 +1415,7 @@ fi if test x$use_boost = xyes; then dnl Check for Boost headers - AX_BOOST_BASE([1.58.0],[],[AC_MSG_ERROR([Boost is not available!])]) + AX_BOOST_BASE([1.64.0],[],[AC_MSG_ERROR([Boost is not available!])]) if test x$want_boost = xno; then AC_MSG_ERROR([[only libbitcoinconsensus can be built without boost]]) fi diff --git a/doc/dependencies.md b/doc/dependencies.md index 9754952221..a467759418 100644 --- a/doc/dependencies.md +++ b/doc/dependencies.md @@ -6,7 +6,7 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct | Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries) | | --- | --- | --- | --- | --- | --- | | Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No | | | -| Boost | [1.71.0](https://www.boost.org/users/download/) | [1.58.0](https://github.com/bitcoin/bitcoin/pull/19667) | No | | | +| Boost | [1.71.0](https://www.boost.org/users/download/) | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No | | | | Clang | | [5.0+](https://releases.llvm.org/download.html) (C++17 support) | | | | | Expat | [2.2.7](https://libexpat.github.io/) | | No | Yes | | | fontconfig | [2.12.1](https://www.freedesktop.org/software/fontconfig/release/) | | No | Yes | | From df2c93321765c7f77935fd92d31722d7b65a53db Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 23 Jun 2021 14:15:58 +0800 Subject: [PATCH 2/3] build: remove workaround for Boost and std::atomic --- configure.ac | 5 ----- 1 file changed, 5 deletions(-) diff --git a/configure.ac b/configure.ac index dfe636cbb4..e63abd5de4 100644 --- a/configure.ac +++ b/configure.ac @@ -1438,11 +1438,6 @@ if test x$use_boost = xyes; then BOOST_CPPFLAGS=SUPPRESS_WARNINGS($BOOST_CPPFLAGS) fi - dnl Boost 1.56 through 1.62 allow using std::atomic instead of its own atomic - dnl counter implementations. In 1.63 and later the std::atomic approach is default. - m4_pattern_allow(DBOOST_AC_USE_STD_ATOMIC) dnl otherwise it's treated like a macro - BOOST_CPPFLAGS="-DBOOST_SP_USE_STD_ATOMIC -DBOOST_AC_USE_STD_ATOMIC $BOOST_CPPFLAGS" - BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB" fi From 957f3584277d33b44b9f1618142f743e4083eb5d Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 23 Jun 2021 14:43:00 +0800 Subject: [PATCH 3/3] build: remove check for Boost Process header Now that we require Boost 1.64.0+, Boost Process will be available. --- configure.ac | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index e63abd5de4..88f91004af 100644 --- a/configure.ac +++ b/configure.ac @@ -1422,18 +1422,6 @@ if test x$use_boost = xyes; then AX_BOOST_SYSTEM AX_BOOST_FILESYSTEM - dnl Opt-in to Boost Process if external signer support is requested - if test "x$use_external_signer" != xno; then - AC_MSG_CHECKING(for Boost Process) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[ boost::process::child* child = new boost::process::child; delete child; ]])], - [ AC_MSG_RESULT(yes) - AC_DEFINE([ENABLE_EXTERNAL_SIGNER],,[define if external signer support is enabled]) - ], - [ AC_MSG_ERROR([Boost::Process is required for external signer support, but not available!])] - ) - fi - if test x$suppress_external_warnings != xno; then BOOST_CPPFLAGS=SUPPRESS_WARNINGS($BOOST_CPPFLAGS) fi @@ -1441,6 +1429,9 @@ if test x$use_boost = xyes; then BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB" fi +if test "x$use_external_signer" != xno; then + AC_DEFINE([ENABLE_EXTERNAL_SIGNER],,[define if external signer support is enabled]) +fi AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER], [test "x$use_external_signer" = "xyes"]) dnl Check for reduced exports