HomeFreeBSD

emulators/mame: fix build with clang 18 and 19

Description

emulators/mame: fix build with clang 18 and 19

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

PR: 283126
Approved by: agh@riseup.net (maintainer)
MFH: 2024Q4

(cherry picked from commit d76e4adce969f7a3da6e7398cca26dca70cec559)

Details

Provenance
dimAuthored on Dec 3 2024, 9:22 AM
Parents
R11:d90d859fe8ae: security/heimdal-devel: fix with stock clang and lld >= 16
Branches
Unknown
Tags
Unknown