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

Reply via email to