Opened 3 years ago
Closed 3 years ago
#64064 closed defect (fixed)
mame @0.238: builds fail across-the-board
Reported by: | mascguy (Christopher Nielsen) | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | Cc: | ||
Port: | mame |
Description
The latest release of Mame is failing to build across-the-board, due to the following errors.
Compiling src/tools/imgtool/modules/cybiko.cpp... In file included from ../../../../../src/emu/http.cpp:1: In file included from ../../../../../src/emu/emu.h:21: In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/list:178: /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:4321:5: error: static_assert failed due to requirement 'is_constructible<basic_waitable_timer<system_clock, wait_traits<system_clock> >, executor_type>::value' "Can't construct object in make_shared" static_assert( is_constructible<_Tp, _Args...>::value, "Can't construct object in make_shared" ); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:4706:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > >::make_shared<asio::io_context::executor_type>' requested here return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...); ^ In file included from ../../../../../src/emu/http.cpp:18: ../../../../../src/lib/util/server_ws_impl.hpp:364:22: note: in instantiation of function template specialization 'std::__1::make_shared<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >, asio::io_context::executor_type>' requested here auto timer = std::make_shared<asio::system_timer>(connection->socket->get_executor()); ^ ../../../../../src/lib/util/server_ws_impl.hpp:383:17: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::get_timeout_timer' requested here auto timer = get_timeout_timer(connection, config.timeout_request); ^ ../../../../../src/lib/util/server_ws_impl.hpp:707:6: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read_handshake' requested here read_handshake(connection); ^ In file included from ../../../../../src/emu/http.cpp:1: In file included from ../../../../../src/emu/emu.h:21: In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/list:178: /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:2153:9: error: no matching constructor for initialization of 'asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' : __value_(_VSTD::forward<_Args>(_VSTD::get<_Indexes>(__args))...) {} ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:2255:9: note: in instantiation of function template specialization 'std::__1::__compressed_pair_elem<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >, 1, false>::__compressed_pair_elem<asio::io_context::executor_type &&, 0>' requested here _Base2(__pc, _VSTD::move(__second_args), ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:3668:16: note: in instantiation of function template specialization 'std::__1::__compressed_pair<std::__1::allocator<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > >, asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > >::__compressed_pair<std::__1::allocator<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > > &, asio::io_context::executor_type &&>' requested here : __data_(piecewise_construct, _VSTD::forward_as_tuple(__a), ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:4327:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >, std::__1::allocator<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > > >::__shared_ptr_emplace<asio::io_context::executor_type>' requested here ::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...); ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:4706:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> > >::make_shared<asio::io_context::executor_type>' requested here return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...); ^ In file included from ../../../../../src/emu/http.cpp:18: ../../../../../src/lib/util/server_ws_impl.hpp:364:22: note: in instantiation of function template specialization 'std::__1::make_shared<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >, asio::io_context::executor_type>' requested here auto timer = std::make_shared<asio::system_timer>(connection->socket->get_executor()); ^ ../../../../../src/lib/util/server_ws_impl.hpp:383:17: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::get_timeout_timer' requested here auto timer = get_timeout_timer(connection, config.timeout_request); ^ ../../../../../src/lib/util/server_ws_impl.hpp:707:6: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read_handshake' requested here read_handshake(connection); ^ In file included from ../../../../../src/emu/http.cpp:18: In file included from ../../../../../src/lib/util/server_ws_impl.hpp:9: In file included from ../../../../../src/osd/asio.h:34: In file included from /opt/local/include/asio.hpp:29: In file included from /opt/local/include/asio/basic_socket_iostream.hpp:24: In file included from /opt/local/include/asio/basic_socket_streambuf.hpp:44: In file included from /opt/local/include/asio/steady_timer.hpp:22: /opt/local/include/asio/basic_waitable_timer.hpp:176:12: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'asio::io_context &' for 1st argument explicit basic_waitable_timer(asio::io_context& io_context) ^ /opt/local/include/asio/basic_waitable_timer.hpp:231:3: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' for 1st argument basic_waitable_timer(basic_waitable_timer&& other) ^ /opt/local/include/asio/basic_waitable_timer.hpp:692:3: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'const asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' for 1st argument basic_waitable_timer(const basic_waitable_timer&) ASIO_DELETED; ^ /opt/local/include/asio/basic_waitable_timer.hpp:191:3: note: candidate constructor not viable: requires 2 arguments, but 1 was provided basic_waitable_timer(asio::io_context& io_context, ^ /opt/local/include/asio/basic_waitable_timer.hpp:210:3: note: candidate constructor not viable: requires 2 arguments, but 1 was provided basic_waitable_timer(asio::io_context& io_context, ^ Compiling src/mame/drivers/imds2.cpp... In file included from ../../../../../src/emu/http.cpp:1: In file included from ../../../../../src/emu/emu.h:21: In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/list:178: /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:3128:32: error: no matching constructor for initialization of 'asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../../../../src/emu/http.cpp:18: ../../../../../src/lib/util/server_ws_impl.hpp:655:34: note: in instantiation of function template specialization 'std::__1::make_unique<asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >, asio::io_context::executor_type>' requested here connection->timer_idle= std::make_unique<asio::system_timer>(connection->socket->get_executor()); ^ ../../../../../src/lib/util/server_ws_impl.hpp:616:4: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::timer_idle_init' requested here timer_idle_init(connection); ^ ../../../../../src/lib/util/server_ws_impl.hpp:448:9: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::connection_open' requested here connection_open(connection, regex_endpoint.second); ^ ../../../../../src/lib/util/server_ws_impl.hpp:396:6: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::write_handshake' requested here write_handshake(connection, read_buffer); ^ ../../../../../src/lib/util/server_ws_impl.hpp:707:6: note: in instantiation of member function 'webpp::SocketServerBase<asio::basic_stream_socket<asio::ip::tcp> >::read_handshake' requested here read_handshake(connection); ^ In file included from ../../../../../src/emu/http.cpp:18: In file included from ../../../../../src/lib/util/server_ws_impl.hpp:9: In file included from ../../../../../src/osd/asio.h:34: In file included from /opt/local/include/asio.hpp:29: In file included from /opt/local/include/asio/basic_socket_iostream.hpp:24: In file included from /opt/local/include/asio/basic_socket_streambuf.hpp:44: In file included from /opt/local/include/asio/steady_timer.hpp:22: /opt/local/include/asio/basic_waitable_timer.hpp:176:12: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'asio::io_context &' for 1st argument explicit basic_waitable_timer(asio::io_context& io_context) ^ /opt/local/include/asio/basic_waitable_timer.hpp:231:3: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' for 1st argument basic_waitable_timer(basic_waitable_timer&& other) ^ /opt/local/include/asio/basic_waitable_timer.hpp:692:3: note: candidate constructor not viable: no known conversion from 'asio::io_context::executor_type' to 'const asio::basic_waitable_timer<std::__1::chrono::system_clock, asio::wait_traits<std::__1::chrono::system_clock> >' for 1st argument basic_waitable_timer(const basic_waitable_timer&) ASIO_DELETED; ^ /opt/local/include/asio/basic_waitable_timer.hpp:191:3: note: candidate constructor not viable: requires 2 arguments, but 1 was provided basic_waitable_timer(asio::io_context& io_context, ^ /opt/local/include/asio/basic_waitable_timer.hpp:210:3: note: candidate constructor not viable: requires 2 arguments, but 1 was provided basic_waitable_timer(asio::io_context& io_context, ^
These may relate to use of features from the C++20 standard, but need to do some digging. For now, reverting to the previous upstream release.
Change History (6)
comment:1 Changed 3 years ago by Christopher Nielsen <mascguy@…>
comment:2 follow-up: 3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
But it built on your system before you committed it?
comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)
Replying to ryandesign:
But it built on your system before you committed it?
Alas, no, I didn't wait the full 60+ minutes for it to build locally. (At least not this time.)
Ah well, that tarnishes the near-perfect build history for this port, since I took on maintainership. Sigh...
comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)
It looks like upstream is still specifying use of C++ 2017 for the compile standard, so that rules out C++ 2020.
May have to reach out to upstream, to get their thoughts/ideas...
comment:5 Changed 3 years ago by mascguy (Christopher Nielsen)
Also checked brew, but their formula still uses previous version (0.237). So no help there either.
comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Based on local testing, this issue is resolved with the newest release (0.239). Verified both with local testing, as well as one of the ARM buildbots.
https://github.com/macports/macports-ports/commit/4c409d6e1df504b6aad3e49ba553727205173799
In d4a3afa03173b7e878db6ced6fe231554e7e4718/macports-ports (master):