Skip to content
This repository has been archived by the owner on Apr 24, 2022. It is now read-only.

upgrade boost to 1.77 and upgrade hunter to v0.23.320 #2396

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

y001j
Copy link

@y001j y001j commented Dec 25, 2021

No description provided.

Copy link

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In file included from include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 from include/boost/smart_ptr/detail/yield_k.hpp:23,
                 from include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 from include/boost/smart_ptr/detail/spinlock.hpp:42,
                 from include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 from include/boost/smart_ptr/shared_ptr.hpp:29,
                 from include/boost/shared_ptr.hpp:17,
                 from include/boost/date_time/time_clock.hpp:17,
                 from include/boost/date_time/posix_time/posix_time_types.hpp:10,
                 from include/boost/asio/time_traits.hpp:23,
                 from include/boost/asio/detail/timer_queue_ptime.hpp:22,
                 from include/boost/asio/detail/deadline_timer_service.hpp:31,
                 from include/boost/asio/basic_deadline_timer.hpp:25,
                 from include/boost/asio.hpp:27,
                 from /build/source/libpoolprotocols/stratum/EthStratumClient.h:6,
                 from /build/source/libpoolprotocols/stratum/EthStratumClient.cpp:5:
include/boost/bind.hpp:36:1: note: '#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.'
/build/source/libpoolprotocols/getwork/EthGetworkClient.cpp: In member function 'void EthGetworkClient::begin_connect()':
/build/source/libpoolprotocols/getwork/EthGetworkClient.cpp:107: error: '_1' was not declared in this scope
  107 |                             m_io_strand, m_io_strand.wrap(boost::bind(&EthGetworkClient::handle_connect, this, _1))));
      |

Building with Boost 1.69 still works.

target_link_libraries(poolprotocols PRIVATE devcore ethminer-buildinfo ethash::ethash Boost::system jsoncpp_lib_static OpenSSL::SSL OpenSSL::Crypto)
target_link_libraries(poolprotocols PRIVATE devcore ethminer-buildinfo ethash::ethash Boost::system jsoncpp_static OpenSSL::SSL OpenSSL::Crypto)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our linker can't find jsoncpp anymore now. Please mention changes like these in a changelog, readme or similar.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in e55fbdc

Copy link

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds and runs fine with boost 1.7 but it doesn't build with 1.6 anymore:

In file included from include/boost/bind.hpp:22,
                 from include/boost/thread/detail/thread.hpp:30,
                 from include/boost/thread/thread_only.hpp:22,
                 from include/boost/thread/thread.hpp:12,
                 from include/boost/thread.hpp:13,
                 from /build/source/libpoolprotocols/../libethcore/Miner.h:31,
                 from /build/source/libpoolprotocols/getwork/../PoolClient.h:7,
                 from /build/source/libpoolprotocols/getwork/EthGetworkClient.h:13,
                 from /build/source/libpoolprotocols/getwork/EthGetworkClient.cpp:1:
include/boost/bind/bind.hpp: In instantiation of 'void boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<void>, F&, A&, int) [with F = boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>; A = boost::_bi::rrlist1<const boost::system::error_code&>; A1 = boost::_bi::value<EthGetworkClient*>; A2 = boost::_bi::value<std::_Placeholder<1> >]':
include/boost/bind/bind.hpp:1306:18:   required from 'boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(A1&&) [with A1 = const boost::system::error_code&; R = void; F = boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>; L = boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > >; boost::_bi::bind_t<R, F, L>::result_type = void]'
include/boost/asio/detail/bind_handler.hpp:65:13:   required from 'void boost::asio::detail::binder1<Handler, Arg1>::operator()() [with Handler = boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >; Arg1 = boost::system::error_code]'
include/boost/asio/handler_invoke_hook.hpp:69:11:   required from 'void boost::asio::asio_handler_invoke(Function&, ...) [with Function = boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::system::error_code>]'
include/boost/asio/detail/handler_invoke_helpers.hpp:37:22:   required from 'void boost_asio_handler_invoke_helpers::invoke(Function&, Context&) [with Function = boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::system::error_code>; Context = boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >]'
include/boost/asio/detail/bind_handler.hpp:106:44:   required from 'void boost::asio::detail::asio_handler_invoke(Function&, boost::asio::detail::binder1<Handler, Arg1>*) [with Function = boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::system::error_code>; Handler = boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >; Arg1 = boost::system::error_code]'
include/boost/asio/detail/handler_invoke_helpers.hpp:37:22:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
include/boost/asio/detail/handler_work.hpp:55:23:   required from 'void boost::asio::detail::handler_work<Handler, Executor>::complete(Function&, Handler&) [with Function = boost::asio::detail::binder1<boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>, boost::system::error_code>; Handler = boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>; Executor = boost::asio::io_context::executor_type]'
include/boost/asio/detail/reactive_socket_connect_op.hpp:100:17:   required from 'static void boost::asio::detail::reactive_socket_connect_op<Handler>::do_complete(void*, boost::asio::detail::operation*, const boost::system::error_code&, std::size_t) [with Handler = boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>; boost::asio::detail::operation = boost::asio::detail::scheduler_operation; std::size_t = long unsigned int]'
include/boost/asio/detail/reactive_socket_connect_op.hpp:66:38:   required from 'boost::asio::detail::reactive_socket_connect_op<Handler>::reactive_socket_connect_op(boost::asio::detail::socket_type, Handler&) [with Handler = boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>; boost::asio::detail::socket_type = int]'
include/boost/asio/detail/reactive_socket_service.hpp:509:11:   required from 'void boost::asio::detail::reactive_socket_service<Protocol>::async_connect(boost::asio::detail::reactive_socket_service<Protocol>::implementation_type&, const endpoint_type&, Handler&) [with Handler = boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>; Protocol = boost::asio::ip::tcp; boost::asio::detail::reactive_socket_service<Protocol>::endpoint_type = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>]'
include/boost/asio/basic_socket.hpp:891:38:   required from 'typename boost::asio::async_result<typename std::decay<_Functor>::type, void(boost::system::error_code)>::return_type boost::asio::basic_socket<Protocol>::async_connect(const endpoint_type&, ConnectHandler&&) [with ConnectHandler = boost::asio::executor_binder<boost::asio::detail::wrapped_handler<boost::asio::io_context::strand, boost::_bi::bind_t<void, boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>, boost::_bi::list2<boost::_bi::value<EthGetworkClient*>, boost::_bi::value<std::_Placeholder<1> > > >, boost::asio::detail::is_continuation_if_running>, boost::asio::io_context::executor_type>; Protocol = boost::asio::ip::tcp; typename boost::asio::async_result<typename std::decay<_Functor>::type, void(boost::system::error_code)>::return_type = void; boost::asio::basic_socket<Protocol>::endpoint_type = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>]'
/build/source/libpoolprotocols/getwork/EthGetworkClient.cpp:107:141:   required from here
include/boost/bind/bind.hpp:319:35: error: no match for call to '(boost::_mfi::mf1<void, EthGetworkClient, const boost::system::error_code&>) (EthGetworkClient*&, std::_Placeholder<1>&)'

This isn't a concern for our use-case but distros with different release cycles and backport policies might have issues with the hard dependency on boost 1.7.

@danieleftodi
Copy link

to be able to build this with VSC 2022 on windows 10, I had to change the version to 1.78 of boost (read that they added better support for it in 1.78).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants