-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Closed
Description
Expected: make to compile and build OK
What happens: Make fails to build the miner:
Making all in src
CXX libbitcoin_server_a-miner.o
In file included from miner.cpp:6:
In file included from ./miner.h:10:
In file included from ./txmempool.h:25:
In file included from /usr/local/include/boost/multi_index/ordered_index.hpp:17:
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:1181:10: error: no matching function for call to object of type
'const key_compare' (aka 'const CompareModifiedEntry')
if(comp_(key(v),key(y->value())))return false;
^~~~~
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:825:9: note: in instantiation of member function
'boost::multi_index::detail::ordered_index_impl<boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry,
boost::multi_index::detail::nth_layer<2, CTxMemPoolModifiedEntry,
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter, mpl_::na>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >, boost::mpl::v_item<ancestor_score, boost::mpl::vector0<mpl_::na>, 0>,
boost::multi_index::detail::ordered_non_unique_tag, boost::multi_index::detail::null_augment_policy>::in_place' requested here
b=in_place(x->value(),x,Category());
^
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:860:18: note: in instantiation of member function
'boost::multi_index::detail::ordered_index_impl<boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry,
boost::multi_index::detail::nth_layer<2, CTxMemPoolModifiedEntry,
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter, mpl_::na>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >, boost::mpl::v_item<ancestor_score, boost::mpl::vector0<mpl_::na>, 0>,
boost::multi_index::detail::ordered_non_unique_tag, boost::multi_index::detail::null_augment_policy>::modify_' requested here
if(!super::modify_(x)){
^
/usr/local/include/boost/multi_index_container.hpp:823:18: note: in instantiation of member function
'boost::multi_index::detail::ordered_index_impl<modifiedentry_iter, CompareCTxMemPoolIter, boost::multi_index::detail::nth_layer<1,
CTxMemPoolModifiedEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter,
mpl_::na>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >, boost::mpl::vector0<mpl_::na>,
boost::multi_index::detail::ordered_unique_tag, boost::multi_index::detail::null_augment_policy>::modify_' requested here
if(!super::modify_(x)){
^
/usr/local/include/boost/multi_index/detail/index_base.hpp:278:21: note: in instantiation of function template specialization
'boost::multi_index::multi_index_container<CTxMemPoolModifiedEntry,
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter, mpl_::na>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >::modify_<update_for_parent_inclusion>' requested here
{return final().modify_(mod,x);}
^
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:418:18: note: in instantiation of function template specialization
'boost::multi_index::detail::index_base<CTxMemPoolModifiedEntry,
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter, mpl_::na>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >::final_modify_<update_for_parent_inclusion>' requested here
return this->final_modify_(
^
miner.cpp:269:31: note: in instantiation of function template specialization
'boost::multi_index::detail::ordered_index_impl<modifiedentry_iter, CompareCTxMemPoolIter, boost::multi_index::detail::nth_layer<1,
CTxMemPoolModifiedEntry, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<modifiedentry_iter, CompareCTxMemPoolIter,
mpl_::na>, boost::multi_index::ordered_non_unique<boost::multi_index::tag<ancestor_score, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na>, boost::multi_index::identity<CTxMemPoolModifiedEntry>, CompareModifiedEntry>, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na>, std::__1::allocator<CTxMemPoolModifiedEntry> >, boost::mpl::vector0<mpl_::na>,
boost::multi_index::detail::ordered_unique_tag, boost::multi_index::detail::null_augment_policy>::modify<update_for_parent_inclusion>'
requested here
mapModifiedTx.modify(mit, update_for_parent_inclusion(it));
^
./miner.h:74:10: note: candidate function not viable: 'this' argument has type 'const key_compare' (aka 'const CompareModifiedEntry'), but
method is not marked const
bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
^
In file included from miner.cpp:6:
In file included from ./miner.h:10:
In file included from ./txmempool.h:25:
In file included from /usr/local/include/boost/multi_index/ordered_index.hpp:17:
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:1186:26: error: no matching function for call to object of type
'const key_compare' (aka 'const CompareModifiedEntry')
return y==header()||!comp_(key(y->value()),key(v));
^~~~~
./miner.h:74:10: note: candidate function not viable: 'this' argument has type 'const key_compare' (aka 'const CompareModifiedEntry'), but
method is not marked const
bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
^
2 errors generated.
make[2]: *** [libbitcoin_server_a-miner.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
How to reproduce: Follow the OSX install instructions readme
Version of core: v0.15.1 (7b57bc9)
Type of machine: MacbookAir 2015
Extra information: Seems like an issue with boost:
/usr/local/include/boost/multi_index/detail/ord_index_impl.hpp:1186:26: error: no matching function for call to object of type
'const key_compare' (aka 'const CompareModifiedEntry')
return y==header()||!comp_(key(y->value()),key(v));
Note that running brew install boost --c++11 as indicated in the OSX install readme throws the following warning:
Warning: boost: this formula has no --c++11 option so it will be ignored!