https://bugs.winehq.org/show_bug.cgi?id=52821
Bug ID: 52821 Summary: Missing support of C++20 Semaphores in built-in Wine C++ runtime Product: Wine Version: 7.6 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msvcp Assignee: wine-bugs@winehq.org Reporter: kle@bluewin.ch Distribution: ---
Hi all
Right at the beginning it should be noted that the following error may have been already described.
There seems to exist currently no support of C++20 Semaphores in Wines built-in C++ library. I noticed this limitation with two applications. The following "msvcp140_atomic_wait.dll" related error message is shown when this issue occurs. Both apps crash right after.
CXBX-R Xbox emulator (starting with build 374ba5e):
wine: Call from 7B011586 to unimplemented function msvcp140_atomic_wait.dll.__std_atomic_wait_direct, aborting wine: Call from 7B011586 to unimplemented function msvcp140_atomic_wait.dll.__std_atomic_notify_one_direct, aborting
PCSX-Redux PSX emulator (all newer builds since 4317):
wine: Call from 0000000000272B9E to unimplemented function msvcp140_atomic_wait.dll.__std_atomic_wait_direct, aborting wine: Unimplemented function msvcp140_atomic_wait.dll.__std_atomic_wait_direct called at address 0000000000272B9E (thread 010c), starting debugger... wine: Call from 0000000000272B9E to unimplemented function msvcp140_atomic_wait.dll.__std_atomic_notify_one_direct, aborting
Both applications worked before the "std::binary_semaphore" C++20 type was introduced.
It is confirmed for Wine 7.0 that it can handle this situation when vcrun2019 (native MS Visual C++ 2019) is installed via winetricks. But for whatever reason this stopped to work in later Wine 7.x devel versions.
A further workaround was to put a native "msvcp140_atomic_wait.dll" into the program folder. I can confirm that this helped at least for a while in conjunction with the PCSX-Redux emulator. But also here this tweak stopped to work in later Wine 7.x devel versions.
More information can be found at the CXBX-R GitHub issue page: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/2347