http://bugs.winehq.org/show_bug.cgi?id=33990
Bug #: 33990 Summary: MSVC 2013 std::mutex crashes Product: Wine Version: 1.6-rc4 Platform: x86-64 OS/Version: Mac OS X Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: chris@kode54.net Classification: Unclassified
Created attachment 45165 --> http://bugs.winehq.org/attachment.cgi?id=45165 Source code which, when compiled with MSVC 2012 or 2013 with v*_xp SDK, crashes.
A simple program using std::mutex, compiled with MSVC 2012 or 2013, crashes wine on execution. I have attached the source code.
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #1 from Chris Moeller chris@kode54.net 2013-07-08 19:32:02 CDT --- Created attachment 45166 --> http://bugs.winehq.org/attachment.cgi?id=45166 MSVC 2013 compiled binary of the attached source code
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #2 from Chris Moeller chris@kode54.net 2013-07-08 19:34:36 CDT --- Here is a log, too large to attach:
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #3 from Chris Moeller chris@kode54.net 2013-07-08 20:42:42 CDT --- Ugh, I reduced the problem to a more specific case. It's failing on Concurrency::critical_section, which is imported from concrt.h, and I think I know why:
typedef void * _CONCRT_BUFFER;
// Critical section requires windows.h. Hide the implementation so that // user code need not include windows.h _CONCRT_BUFFER _M_criticalSection[(4 * sizeof(void *) + 2 * sizeof(long) + sizeof(_CONCRT_BUFFER) - 1) / sizeof(_CONCRT_BUFFER)];
Posting a new example and log.
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #4 from Chris Moeller chris@kode54.net 2013-07-08 20:44:10 CDT --- Created attachment 45168 --> http://bugs.winehq.org/attachment.cgi?id=45168 Wine error/fixme log from critical_section test program
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #5 from Chris Moeller chris@kode54.net 2013-07-08 20:44:51 CDT --- Created attachment 45169 --> http://bugs.winehq.org/attachment.cgi?id=45169 Newer crash test, compiled with MSVC 2012 update 3
http://bugs.winehq.org/show_bug.cgi?id=33990
--- Comment #6 from Chris Moeller chris@kode54.net 2013-07-08 20:45:58 CDT --- Created attachment 45170 --> http://bugs.winehq.org/attachment.cgi?id=45170 Newer test, based on Concurrency::critical_section
Concurrency::critical_section appears to make assumptions about the size and layout of the system CRITICAL_SECTION structure
https://bugs.winehq.org/show_bug.cgi?id=33990
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source, testcase
--- Comment #7 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.37 or newer) wine? If so, please attach the terminal output in 1.7.37 (see http://wiki.winehq.org/FAQ#get_log).
https://bugs.winehq.org/show_bug.cgi?id=33990
Chris Moeller chris@kode54.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #8 from Chris Moeller chris@kode54.net --- This crash appears to be resolved, due to GetNumaHighestNodeNumber being semi-stubbed with a minimal implementation which will prevent the MSVC 2012+ STL from crashing or at least throwing an exception that many programs won't bother to catch.
https://bugs.winehq.org/show_bug.cgi?id=33990
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.38.