Patch #618347: Work around Solaris 2.6 pthread.h bug. Will backport to 2.2.
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index 556445e..c9f6957 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -3,11 +3,11 @@
#include <stdlib.h>
#include <string.h>
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR)
#define destructor xxdestructor
#endif
#include <pthread.h>
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR)
#undef destructor
#endif
#include <signal.h>
diff --git a/configure b/configure
index 9c995c3..181c983 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Revision: 1.348 .
+# From configure.in Revision: 1.349 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.53.
#
@@ -10885,6 +10885,17 @@
OSF1) LDLAST=-threads;;
esac
fi
+
+ if test "$posix_threads" = yes -a \
+ "$ac_sys_system" = "SunOS" -a \
+ "$ac_sys_release" = "5.6"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PTHREAD_DESTRUCTOR 1
+_ACEOF
+
+ fi
+
fi
# Check for enable-ipv6
diff --git a/configure.in b/configure.in
index 27462a6..fef6e22 100644
--- a/configure.in
+++ b/configure.in
@@ -1326,6 +1326,14 @@
OSF1) LDLAST=-threads;;
esac
fi
+
+ if test "$posix_threads" = yes -a \
+ "$ac_sys_system" = "SunOS" -a \
+ "$ac_sys_release" = "5.6"; then
+ AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
+ [Defined for Solaris 2.6 bug in pthread header.])
+ fi
+
fi
# Check for enable-ipv6
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 3622be8..f5cc30e 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -304,6 +304,9 @@
/* Define if you have GNU PTH threads. */
#undef HAVE_PTH
+/* Defined for Solaris 2.6 bug in pthread header. */
+#undef HAVE_PTHREAD_DESTRUCTOR
+
/* Define to 1 if you have the <pthread.h> header file. */
#undef HAVE_PTHREAD_H