Ping! Am 29.08.2015 um 23:00 schrieb Kai Tietz: > > Am 09.08.2015 19:17 schrieb "Mattias Engdegård" <matti...@acm.org > <mailto:matti...@acm.org>>: >> >> 7 aug 2015 kl. 14.50 skrev Rainer Emrich <rai...@emrich-ebersheim.de > <mailto:rai...@emrich-ebersheim.de>>: >> >> > This fixes the issue, libgom.sum attached. Can we have this in head and in >> > 4.x ? >> >> That is probably the expedient solution even if we eventually get libgomp > fixed. (The patch adds an extra cycle or two on some critical paths but I > suppose we can live with that.) > > Agreed. We need to support also versions without such fix.
diff --git a/mingw-w64-libraries/winpthreads/src/mutex.c b/mingw-w64-libraries/wi index fec341a..6e1b392 100644 --- a/mingw-w64-libraries/winpthreads/src/mutex.c +++ b/mingw-w64-libraries/winpthreads/src/mutex.c @@ -56,7 +56,10 @@ typedef struct { static bool is_static_initializer(pthread_mutex_t m) { - - return (uintptr_t)m >= (uintptr_t)-3; + /* Treat 0 as a static initializer as well (for normal mutexes), + to tolerate sloppy code in libgomp. (We should rather fix that code!) */ + intptr_t v = (intptr_t)m; + return v >= -3 && v <= 0; } /* Create and return the implementation part of a mutex from a static ------------------------------------------------------------------------------ _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public