Skip to content

Compilation of MUE wallet fails on Arch Linux (boost 1.66) #3

@tterpelle

Description

@tterpelle

Compilation of the MUE wallet fails on Arch Linux when the boost packages are at version 1.66.

...
  CXX      libbitcoin_server_a-txmempool.o
  CXX      libbitcoin_server_a-validationinterface.o
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp: In instantiation of ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::in_place(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type, boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*, boost::multi_index::detail::ordered_non_unique_tag) const [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByDescendantScore; SuperMeta = boost::multi_index::detail::nth_layer<2, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_non_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type = const CTxMemPoolEntry&; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > >]’:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:825:17:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByDescendantScore; SuperMeta = boost::multi_index::detail::nth_layer<2, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_non_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:860:25:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
/usr/include/boost/multi_index_container.hpp:823:25:   required from ‘bool boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::modify_(Modifier&, boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/index_base.hpp:278:34:   required from ‘bool boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_modify_(Modifier&, boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:419:61:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator, Modifier) [with Modifier = update_descendant_state; KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator = boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
txmempool.cpp:128:87:   required from here
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1181:7: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByDescendantScore}) (const CTxMemPoolEntry&, CTxMemPoolEntry&)’
       if(comp_(key(v),key(y->value())))return false;
       ^~
In file included from txmempool.cpp:6:0:
txmempool.h:245:10: note: candidate: bool CompareTxMemPoolEntryByDescendantScore::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:245:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByDescendantScore*}’ as ‘this’ argument discards qualifiers
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1186:25: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByDescendantScore}) (CTxMemPoolEntry&, const CTxMemPoolEntry&)’
     return y==header()||!comp_(key(y->value()),key(v));
In file included from txmempool.cpp:6:0:
txmempool.h:245:10: note: candidate: bool CompareTxMemPoolEntryByDescendantScore::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:245:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByDescendantScore*}’ as ‘this’ argument discards qualifiers
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp: In instantiation of ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::in_place(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type, boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*, boost::multi_index::detail::ordered_non_unique_tag) const [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByEntryTime; SuperMeta = boost::multi_index::detail::nth_layer<3, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_non_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type = const CTxMemPoolEntry&; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > >]’:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:860:25:   recursively required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByDescendantScore; SuperMeta = boost::multi_index::detail::nth_layer<2, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_non_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:860:25:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
/usr/include/boost/multi_index_container.hpp:823:25:   required from ‘bool boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::modify_(Modifier&, boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/index_base.hpp:278:34:   required from ‘bool boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_modify_(Modifier&, boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:419:61:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator, Modifier) [with Modifier = update_descendant_state; KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator = boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
txmempool.cpp:128:87:   required from here
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1181:7: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByEntryTime}) (const CTxMemPoolEntry&, CTxMemPoolEntry&)’
       if(comp_(key(v),key(y->value())))return false;
       ^~
In file included from txmempool.cpp:6:0:
txmempool.h:296:10: note: candidate: bool CompareTxMemPoolEntryByEntryTime::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:296:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByEntryTime*}’ as ‘this’ argument discards qualifiers
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1186:25: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByEntryTime}) (CTxMemPoolEntry&, const CTxMemPoolEntry&)’
     return y==header()||!comp_(key(y->value()),key(v));
In file included from txmempool.cpp:6:0:
txmempool.h:296:10: note: candidate: bool CompareTxMemPoolEntryByEntryTime::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:296:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByEntryTime*}’ as ‘this’ argument discards qualifiers
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp: In instantiation of ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::in_place(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type, boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*, boost::multi_index::detail::ordered_unique_tag) const [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByScore; SuperMeta = boost::multi_index::detail::nth_layer<4, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::value_param_type = const CTxMemPoolEntry&; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > >; typename SuperMeta::type::node_type = boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> >]’:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:860:25:   recursively required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = boost::multi_index::identity<CTxMemPoolEntry>; Compare = CompareTxMemPoolEntryByDescendantScore; SuperMeta = boost::multi_index::detail::nth_layer<2, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_non_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:860:25:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify_(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type*) [with KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
/usr/include/boost/multi_index_container.hpp:823:25:   required from ‘bool boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::modify_(Modifier&, boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::multi_index_container<Value, IndexSpecifierList, Allocator>::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/index_base.hpp:278:34:   required from ‘bool boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_modify_(Modifier&, boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type*) [with Modifier = update_descendant_state; Value = CTxMemPoolEntry; IndexSpecifierList = boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >; Allocator = std::allocator<CTxMemPoolEntry>; boost::multi_index::detail::index_base<Value, IndexSpecifierList, Allocator>::final_node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > >]’
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:419:61:   required from ‘bool boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::modify(boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator, Modifier) [with Modifier = update_descendant_state; KeyFromValue = mempoolentry_txid; Compare = std::less<uint256>; SuperMeta = boost::multi_index::detail::nth_layer<1, CTxMemPoolEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<mempoolentry_txid>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByDescendantScore>, boost::multi_index::ordered_non_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique<boost::multi_index::identity<CTxMemPoolEntry>, CompareTxMemPoolEntryByScore> >, std::allocator<CTxMemPoolEntry> >; TagList = boost::mpl::vector0<mpl_::na>; Category = boost::multi_index::detail::ordered_unique_tag; AugmentPolicy = boost::multi_index::detail::null_augment_policy; boost::multi_index::detail::ordered_index_impl<KeyFromValue, Compare, SuperMeta, TagList, Category, AugmentPolicy>::iterator = boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >; typename SuperMeta::type::node_type = boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > >]’
txmempool.cpp:128:87:   required from here
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1167:10: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByScore}) (CTxMemPoolEntry&, const CTxMemPoolEntry&)’
       if(!comp_(key(y->value()),key(v)))return false;
In file included from txmempool.cpp:6:0:
txmempool.h:282:10: note: candidate: bool CompareTxMemPoolEntryByScore::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:282:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByScore*}’ as ‘this’ argument discards qualifiers
In file included from /usr/include/boost/multi_index/ordered_index.hpp:17:0,
                 from txmempool.h:21,
                 from txmempool.cpp:6:
/usr/include/boost/multi_index/detail/ord_index_impl.hpp:1172:23: error: no match for call to ‘(const key_compare {aka const CompareTxMemPoolEntryByScore}) (const CTxMemPoolEntry&, CTxMemPoolEntry&)’
     return y==header()||comp_(key(v),key(y->value()));
In file included from txmempool.cpp:6:0:
txmempool.h:282:10: note: candidate: bool CompareTxMemPoolEntryByScore::operator()(const CTxMemPoolEntry&, const CTxMemPoolEntry&) <near match>
     bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
          ^~~~~~~~
txmempool.h:282:10: note:   passing ‘const key_compare* {aka const CompareTxMemPoolEntryByScore*}’ as ‘this’ argument discards qualifiers
  CXX      libbitcoin_server_a-versionbits.o
make[2]: *** [Makefile:5871: libbitcoin_server_a-txmempool.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/monetaryunit/arch/pkgbuilds/src/MUECore/src'
make[1]: *** [Makefile:9046: all-recursive] Error 1
make[1]: Leaving directory '/monetaryunit/arch/pkgbuilds/src/MUECore/src'
make: *** [Makefile:651: all-recursive] Error 1
==> ERROR: A failure occurred in build().

If I downgrade packages boost and boost-libs to version 1.65 the build succeeds.

To downgrade packages on Arch, follow their wiki page:

pacman -U https://archive.archlinux.org/packages/b/boost/boost-1.65.1-3-x86_64.pkg.tar.xz https://archive.archlinux.org/packages/b/boost-libs/boost-libs-1.65.1-3-x86_64.pkg.tar.xz

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions