aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2022-06-21 10:44:40 +0100
committerfanquake <fanquake@gmail.com>2022-06-23 17:29:37 +0100
commit880d4aaf81f3d5d7fbb915905c2e61b816a6a747 (patch)
tree910fcf6b2809ab6976efdcf4a632d0620163c027 /configure.ac
parent1bdbbbdc46c4e50bf07bc362e7e391ea1a53ea2f (diff)
downloadbitcoin-880d4aaf81f3d5d7fbb915905c2e61b816a6a747.tar.xz
build: use BOOST_NO_CXX98_FUNCTION_BASE to suppress warnings
Boost conatiner_hash (included via functional -> multi_index) uses std::unary_function, which was deprecated in C++11, and "removed" in C++17. It's use causes wanrings with newer compilers, i.e GCC 12.1. ```bash /bitcoin/depends/aarch64-unknown-linux-gnu/include/boost/container_hash/hash.hpp:131:33: warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations] 131 | struct hash_base : std::unary_function<T, std::size_t> {}; | ^~~~~~~~~~~~~~ In file included from /usr/include/c++/12/bits/unique_ptr.h:37, from /usr/include/c++/12/memory:76, from ./init.h:10, from init.cpp:10: /usr/include/c++/12/bits/stl_function.h:117:12: note: declared here 117 | struct unary_function ``` Use the MACRO outlined in https://github.com/boostorg/container_hash/issues/22, to prevent it's use. BOOST_NO_CXX98_FUNCTION_BASE: > The standard library no longer supports std::unary_function and std::binary_function. > They were deprecated in C++11 and is removed from C++14. See: https://github.com/boostorg/config/pull/430 https://en.cppreference.com/w/cpp/utility/functional/unary_function https://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac5
1 files changed, 5 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 682923096d..0e1968f5c4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1461,6 +1461,11 @@ if test "$use_boost" = "yes"; then
dnl we don't use multi_index serialization
BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION"
+ dnl Prevent use of std::unary_function, which was removed in C++17,
+ dnl and will generate warnings with newer compilers.
+ dnl See: https://github.com/boostorg/container_hash/issues/22.
+ BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_NO_CXX98_FUNCTION_BASE"
+
if test "$enable_debug" = "yes" || test "$enable_fuzz" = "yes"; then
BOOST_CPPFLAGS="$BOOST_CPPFLAGS -DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE"
fi