changeset 17399:c2f3bfaf5fce

lock: work around pthread recursive mutexes bug in Mac OS X 10.6 * m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the compilation target is Mac OS X 10.6. Problem reported by parafin and Andoni Morales in <http://savannah.gnu.org/bugs/?37844> and <http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00007.html>.
author Daiki Ueno <ueno@gnu.org>
date Sat, 11 May 2013 10:40:55 +0900
parents 21bdea0c916e
children a10dbb80768a
files ChangeLog m4/lock.m4
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-05-11  Daiki Ueno  <ueno@gnu.org>
+
+	lock: work around pthread recursive mutexes bug in Mac OS X 10.6
+	* m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the
+	compilation target is Mac OS X 10.6.
+	Problem reported by parafin and Andoni Morales in
+	<http://savannah.gnu.org/bugs/?37844> and
+	<http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00007.html>.
+
 2013-05-11  Paul Eggert  <eggert@cs.ucla.edu>
 
 	mkdir-p: remove assumptions about umask and mode
--- a/m4/lock.m4
+++ b/m4/lock.m4
@@ -24,6 +24,9 @@
         [[
 #if __FreeBSD__ == 4
 error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
+       && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
+error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
 #else
 int x = (int)PTHREAD_MUTEX_RECURSIVE;
 return !x;