[Bug 283126] emulators/mame: fix build with clang 18 and 19

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 04 Dec 2024 15:00:28 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283126

            Bug ID: 283126
           Summary: emulators/mame: fix build with clang 18 and 19
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: dim@FreeBSD.org
                CC: agh@riseup.net
             Flags: maintainer-feedback?(agh@riseup.net)
                CC: agh@riseup.net

During the exp-run for bug 283013 ("update LLVM_DEFAULT to 18") it
turned out that emulators/mame fails to compile, with an error similar
to:

  ../../../../../3rdparty/sol2/sol/sol.hpp:19875:31: error: address of
overloaded function 'call' does not match required type 'int (lua_State *)'
   19875 |                                 lua_CFunction freefunc =
&function_detail::upvalue_this_member_variable<C, Fx>::template
call<is_yielding, no_trampoline>;
         |                                                          
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Upstream fixed this with [1] and [2].

Similarly, compiling it with clang 19, we run into another error:

  ../../../../../3rdparty/sol2/sol/sol.hpp:6755:10: error: no member named
'construct' in 'optional<type-parameter-0-0 &>'
   2191 |                         this->construct(std::forward<Args>(args)...);
        |                         ~~~~  ^

Upstream fixed this with [3].

Apply these upstream fixes using PATCH_SITES and PATCHFILES.

[1] https://github.com/mamedev/mame/commit/4da99a13f5c
[2] https://github.com/mamedev/mame/commit/b7e0fa72b92
[3] https://github.com/mamedev/mame/commit/c75845b1ef0

-- 
You are receiving this mail because:
You are the assignee for the bug.