New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undefined symbols "pstring_t<putf8_traits>::operator=(pstring_t<putf8_traits>&&)" #6004
Comments
Looks like a compiler issue. pstring<..> operator= is a default operator (pstring.h:130): You may try to rewirte pstring.h(130) to read |
@ryandesign: Any news on this? |
Closing this. Assume fixed. |
Not fixed. Please reopen. I am not able to build any version after 0.206 on macOS. My lack of response to an issue does not mean it is fixed.
When I make this change, the error is:
|
I don't know what to tell you. Every version of MAME this year up to and including the latest builds fine on macOS when done according to our build instructions (SDL2 installed as a framework and using our built-in versions of the 3rd party libraries). I don't think the USE_SYSTEM_LIB stuff should make a difference there (it's fine on Linux AFAIK), but it certainly seems to. |
This is not reproducible by any of our regular macOS developers, or when using clang on Linux. The template instantiations come after all the bodies are available. Your suggested change is syntactically invalid. It must be an issue with your environment. |
Can you folks confirm that Mame builds successfully under MacOS 10.13 through 10.15? I ask, as I'd like to assist Ryan with resolving this issue. Also, can you provide the Xcode versions you're building with, for each of those three MacOS releases? |
I can verify that every MAME release for at least the last 7 years built fine on the currently available macOS and Xcode version when it was released. I'm not set up to go all the way back to 10.13 right now, but the last release version should be fine that far back. |
Thank you for the confirmation! Thus far, I've been able to successfully build and run release 0.226, via MacPorts, on both MacOS 10.13 and 10.14. (And the 10.15 build is currently in-progress.) I'll reach out to Ryan privately, relative to his build issues. Thanks again for the reply! |
Thanks, I appreciate it! |
FWIW the CI uses macOS 10.15 currently. Example build log: https://github.com/mamedev/mame/runs/1419481415 |
As an update, builds also succeed on MacOS 10.15. However, builds fail on 10.12, with the same link error cited by Ryan. The following Xcode versions were used:
So, I'm wondering if this is an issue with the various Xcode 9.x releases, given that Ryan's build failed too? |
Thanks, I'm deliberately staying with Xcode 9.4.1 on 10.13.6 because Xcode 10 removes some ability to build 32-bit software. But I was able to build mame 0.226 on 10.13.6 using a newer open source clang 9.0.1 compiler from MacPorts. So perhaps something that was added/changed in mame 0.207 is incompatible with Apple clang versions prior to Xcode 10's. |
Note that current and future master versions require c++17 which require
reasonably recent versions of clang and hence xcode.
OG.
…On Sun, Nov 22, 2020 at 2:44 PM Ryan Schmidt ***@***.***> wrote:
Thanks, I'm deliberately staying with Xcode 9.4.1 on 10.13.6 because Xcode
10 removes some ability to build 32-bit software. But I was able to build
mame 0.226 on 10.13.6 using a newer open source clang 9.0.1 compiler from
MacPorts. So perhaps something that was added/changed in mame 0.207 is
incompatible with Apple clang versions prior to Xcode 10's.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#6004 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACGSF4IJFZJVWQ2L3OVABLLSREITJANCNFSM4JT2A6HQ>
.
|
We've encountered one more build issue, related to language translations: Portuguese_Brazil is failing, with the following errors from 'msgmerge':
The lines in question are:
The first message appears to be missing a 't', immediately following the first backslash. While the latter two messages appear to be split across lines, without an appropriate leading and trailing double quote per-line. Changing those as follows, fixes the issue:
I'm a bit rusty with respect to GNU gettext, but... are these legitimate errors? |
Those errors in the .po file should be fixed. |
Should I open a new issue, or would you folks prefer to? |
You could open a pull request, or wait for someone else to get to it. It’s not related to this issue, anyway. |
I've opened the following new issue, covering the translation error: Mame 0.226: Translations: Minor Portuguese_Brazil Message Issues #7510 Thanks again for all of your help folks! |
Thanks for the heads up. According to our information, Xcode 9.3 and later (Apple clang 902.0.39.1 and later) support C++17. So that still doesn't explain your apparent requirement of Xcode 10 / Apple Clang 1000. |
The requirement is specifically this: The issue is that the MacPorts Clang compiler uses the system libc++ rather than bringing along the one for that version of LLVM. So you can't get full C++17 support prior to 10.14 for things that are library features rather than language features. One workaround was discussed here (flat-out replacing the system's libc++) but that's not great. We may be able to change MAME to get around that particular requirement, I'm not familiar with the details there. |
I really don’t want to have to blacklist any more C++17 features than the ones listed in the announcement. Trying to support GCC 4.9 with its broken C++14 support was more trouble than it was worth. I don’t want to put the team through that again. |
Ah, ok. In that case, you really do require macOS 10.14 or later from here on out and this issue is moot. |
Gosh, it would be disappointing if Mame were now 10.14+ only. Though I certainly respect the need to move forward, and not spend countless hours trying to support older platforms. That said, if it were easily doable to support 10.12+ (or even 10.13+), that would be my vote. I haven't dug too deeply into the past discussion yet, but... is there any possibility of using an alternative to libc++, such as Boost? (Assuming the latter provides everything needed, that is...) |
Hello,
I am a MacPorts developer, and I was just trying to update our mame port to a newer version, but the newest I was able to update to was 0.206. 0.207 and later versions up to the latest at this time, 0.216, failed to build for me as follows:
This was on macOS 10.13.6 with Xcode 9.4.1. The clang version is:
I was passing these arguments to
make
:The text was updated successfully, but these errors were encountered: