Skip to content

Commit c31161f

Browse files
committed
Merge bitcoin/bitcoin#22320: build: set minimum required Boost to 1.64.0
957f358 build: remove check for Boost Process header (fanquake) df2c933 build: remove workaround for Boost and std::atomic (fanquake) 2bf2116 build: set minimum required Boost to 1.64.0 (fanquake) Pull request description: Setting a newer minimum required Boost means we can remove the awkward header / compile check for Boost Process. If we don't do this, we should at-least make Boost Process being missing no longer a failure, otherwise anyone building using Boost < 1.64.0 would have to pass `--disable-external-signer` as well. The only system I can see that is affected here, (doesn't have new enough system packages) is Debian Oldstable. However, anyone compiling there, can use depends. They can also no-longer use the system GCC (6.0), and I'd assume would be using Clang 7, which would be the newest compiler available to them. It's extended, LTS support also end in 1 year from now, so anyone still using it should be considering upgrading. Debian Buster (Stable) has 1.67+, Ubuntu Bionic has 1.65+, any of the BSDs, recent Fedora, macOS etc all also have well and truly new enough Boost versions available. I think this is something we should just do for 22.0. If not, definitely for 23.0. Fixes #22319. Compiling Bitcoin Core should work, as `windows.h` will be included. Alternative to #22294. Would also close #22269. #19128 could be re-opened. ACKs for top commit: laanwj: Tested ACK 957f358 that this fixes #22269. MarcoFalke: review ACK 957f358 Tree-SHA512: a8ffa7933dce8bf994892ef16664103d7b4e1008e52628e9becb918a7727232dfb51b23100a82dc2b60cd9af5877abc32dc2d3754a7e1b3ac5410a92fdf393f3
2 parents bfa8858 + 957f358 commit c31161f

File tree

2 files changed

+5
-19
lines changed

2 files changed

+5
-19
lines changed

configure.ac

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1415,37 +1415,23 @@ fi
14151415
if test x$use_boost = xyes; then
14161416

14171417
dnl Check for Boost headers
1418-
AX_BOOST_BASE([1.58.0],[],[AC_MSG_ERROR([Boost is not available!])])
1418+
AX_BOOST_BASE([1.64.0],[],[AC_MSG_ERROR([Boost is not available!])])
14191419
if test x$want_boost = xno; then
14201420
AC_MSG_ERROR([[only libbitcoinconsensus can be built without boost]])
14211421
fi
14221422
AX_BOOST_SYSTEM
14231423
AX_BOOST_FILESYSTEM
14241424

1425-
dnl Opt-in to Boost Process if external signer support is requested
1426-
if test "x$use_external_signer" != xno; then
1427-
AC_MSG_CHECKING(for Boost Process)
1428-
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <boost/process.hpp>]],
1429-
[[ boost::process::child* child = new boost::process::child; delete child; ]])],
1430-
[ AC_MSG_RESULT(yes)
1431-
AC_DEFINE([ENABLE_EXTERNAL_SIGNER],,[define if external signer support is enabled])
1432-
],
1433-
[ AC_MSG_ERROR([Boost::Process is required for external signer support, but not available!])]
1434-
)
1435-
fi
1436-
14371425
if test x$suppress_external_warnings != xno; then
14381426
BOOST_CPPFLAGS=SUPPRESS_WARNINGS($BOOST_CPPFLAGS)
14391427
fi
14401428

1441-
dnl Boost 1.56 through 1.62 allow using std::atomic instead of its own atomic
1442-
dnl counter implementations. In 1.63 and later the std::atomic approach is default.
1443-
m4_pattern_allow(DBOOST_AC_USE_STD_ATOMIC) dnl otherwise it's treated like a macro
1444-
BOOST_CPPFLAGS="-DBOOST_SP_USE_STD_ATOMIC -DBOOST_AC_USE_STD_ATOMIC $BOOST_CPPFLAGS"
1445-
14461429
BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB"
14471430
fi
14481431

1432+
if test "x$use_external_signer" != xno; then
1433+
AC_DEFINE([ENABLE_EXTERNAL_SIGNER],,[define if external signer support is enabled])
1434+
fi
14491435
AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER], [test "x$use_external_signer" = "xyes"])
14501436

14511437
dnl Check for reduced exports

doc/dependencies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ These are the dependencies currently used by Bitcoin Core. You can find instruct
66
| Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries) |
77
| --- | --- | --- | --- | --- | --- |
88
| Berkeley DB | [4.8.30](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 4.8.x | No | | |
9-
| Boost | [1.71.0](https://www.boost.org/users/download/) | [1.58.0](https://github.com/bitcoin/bitcoin/pull/19667) | No | | |
9+
| Boost | [1.71.0](https://www.boost.org/users/download/) | [1.64.0](https://github.com/bitcoin/bitcoin/pull/22320) | No | | |
1010
| Clang | | [5.0+](https://releases.llvm.org/download.html) (C++17 support) | | | |
1111
| Expat | [2.2.7](https://libexpat.github.io/) | | No | Yes | |
1212
| fontconfig | [2.12.1](https://www.freedesktop.org/software/fontconfig/release/) | | No | Yes | |

0 commit comments

Comments
 (0)