diff options
author | fanquake <fanquake@gmail.com> | 2021-06-24 18:35:10 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2021-06-24 18:35:25 +0800 |
commit | c31161f4f79b6e1dc0f8bfc2a5e7815e8c55ed91 (patch) | |
tree | 97bb254dbdb1b45d59b50a5079be824baffc1a2c | |
parent | bfa885898a5f3260fd1628158d1d32093d61bd4a (diff) | |
parent | 957f3584277d33b44b9f1618142f743e4083eb5d (diff) |
Merge bitcoin/bitcoin#22320: build: set minimum required Boost to 1.64.0
957f3584277d33b44b9f1618142f743e4083eb5d build: remove check for Boost Process header (fanquake)
df2c93321765c7f77935fd92d31722d7b65a53db build: remove workaround for Boost and std::atomic (fanquake)
2bf211696b8cd355856995ba821c74e67385b77d 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 957f3584277d33b44b9f1618142f743e4083eb5d that this fixes #22269.
MarcoFalke:
review ACK 957f3584277d33b44b9f1618142f743e4083eb5d
Tree-SHA512: a8ffa7933dce8bf994892ef16664103d7b4e1008e52628e9becb918a7727232dfb51b23100a82dc2b60cd9af5877abc32dc2d3754a7e1b3ac5410a92fdf393f3
-rw-r--r-- | configure.ac | 22 | ||||
-rw-r--r-- | doc/dependencies.md | 2 |
2 files changed, 5 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac index 8cfa2d39e1..88f91004af 100644 --- a/configure.ac +++ b/configure.ac @@ -1415,37 +1415,23 @@ 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 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.hpp>]], - [[ 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 - 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 +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 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 | | |