Opened 2 years ago

Closed 2 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 2 years ago by Christopher Nielsen <mascguy@…>

In d4a3afa03173b7e878db6ced6fe231554e7e4718/macports-ports (master):

mame: revert to 0.237, due to build failures
See: #64064

comment:2 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

But it built on your system before you committed it?

comment:3 in reply to:  2 Changed 2 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 2 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 2 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 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

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

Note: See TracTickets for help on using tickets.