Merged revisions 76403 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76403 | ronald.oussoren | 2009-11-19 17:25:21 +0100 (Thu, 19 Nov 2009) | 14 lines

  Fix for issue #7085

  On MacOSX 10.6 the CoreFoundation framework must be initialized on the main
  thread, the constructor function in that framework will cause an SIGABRT when
  it is called on any other thread.

  Because a number of extension link (indirectly) to CoreFoundation and the
  Python core itself didn't the interpreter crashed when importing some
  extensions, such as _locale, on a secondary thread.

  This fix ensures that Python is linked to CoreFoundation on OSX, which results
  in the CoreFoundation constructor being called when Python is loaded. This
  does not require code changes.
........
This commit is contained in:
Ronald Oussoren 2009-11-19 16:37:33 +00:00
parent 2f0ff2acd3
commit 5511442f78
3 changed files with 33 additions and 16 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 2.6.5
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #7085: Fix crash when importing some extensions in a thread
on MacOSX 10.6.
- Issue #7070: Fix round bug for large odd integer arguments. - Issue #7070: Fix round bug for large odd integer arguments.
- Issue #7078: Set struct.__doc__ from _struct.__doc__. - Issue #7078: Set struct.__doc__ from _struct.__doc__.

39
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Revision: 75132 . # From configure.in Revision: 75747 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for python 2.6. # Generated by GNU Autoconf 2.61 for python 2.6.
# #
@ -3855,7 +3855,7 @@ else
{ echo "$as_me:$LINENO: result: no" >&5 { echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; } echo "${ECHO_T}no" >&6; }
fi fi
rm -f conftest* rm -f -r conftest*
@ -5394,7 +5394,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
else else
ac_cv_header_stdc=no ac_cv_header_stdc=no
fi fi
rm -f conftest* rm -f -r conftest*
fi fi
@ -5415,7 +5415,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
else else
ac_cv_header_stdc=no ac_cv_header_stdc=no
fi fi
rm -f conftest* rm -f -r conftest*
fi fi
@ -6513,7 +6513,7 @@ _ACEOF
fi fi
rm -f conftest* rm -f -r conftest*
{ echo "$as_me:$LINENO: result: $was_it_defined" >&5 { echo "$as_me:$LINENO: result: $was_it_defined" >&5
echo "${ECHO_T}$was_it_defined" >&6; } echo "${ECHO_T}$was_it_defined" >&6; }
@ -7043,7 +7043,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
else else
ac_cv_type_uid_t=no ac_cv_type_uid_t=no
fi fi
rm -f conftest* rm -f -r conftest*
fi fi
{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 { echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
@ -14163,7 +14163,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
else else
unistd_defines_pthreads=no unistd_defines_pthreads=no
fi fi
rm -f conftest* rm -f -r conftest*
{ echo "$as_me:$LINENO: result: $unistd_defines_pthreads" >&5 { echo "$as_me:$LINENO: result: $unistd_defines_pthreads" >&5
echo "${ECHO_T}$unistd_defines_pthreads" >&6; } echo "${ECHO_T}$unistd_defines_pthreads" >&6; }
@ -15777,7 +15777,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "yes" >/dev/null 2>&1; then $EGREP "yes" >/dev/null 2>&1; then
ipv6type=$i ipv6type=$i
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
kame) kame)
@ -15800,7 +15800,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
ipv6libdir=/usr/local/v6/lib ipv6libdir=/usr/local/v6/lib
ipv6trylibc=yes ipv6trylibc=yes
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
linux-glibc) linux-glibc)
@ -15821,7 +15821,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
ipv6type=$i; ipv6type=$i;
ipv6trylibc=yes ipv6trylibc=yes
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
linux-inet6) linux-inet6)
@ -15859,7 +15859,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
ipv6lib=inet6; ipv6lib=inet6;
ipv6libdir=/usr/local/v6/lib ipv6libdir=/usr/local/v6/lib
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
v6d) v6d)
@ -15882,7 +15882,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
ipv6libdir=/usr/local/v6/lib; ipv6libdir=/usr/local/v6/lib;
BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
zeta) zeta)
@ -15904,7 +15904,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
ipv6lib=inet6; ipv6lib=inet6;
ipv6libdir=/usr/local/v6/lib ipv6libdir=/usr/local/v6/lib
fi fi
rm -f conftest* rm -f -r conftest*
;; ;;
esac esac
@ -23497,7 +23497,7 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF _ACEOF
fi fi
rm -f conftest* rm -f -r conftest*
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */ /* confdefs.h. */
@ -23516,7 +23516,7 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF _ACEOF
fi fi
rm -f conftest* rm -f -r conftest*
fi fi
@ -23786,7 +23786,7 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF _ACEOF
fi fi
rm -f conftest* rm -f -r conftest*
fi fi
@ -24938,6 +24938,13 @@ do
THREADHEADERS="$THREADHEADERS \$(srcdir)/$h" THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
done done
if test $ac_sys_system = Darwin
then
LIBS="$LIBS -framework CoreFoundation"
fi
SRCDIRS="Parser Grammar Objects Python Modules Mac" SRCDIRS="Parser Grammar Objects Python Modules Mac"
{ echo "$as_me:$LINENO: checking for build directories" >&5 { echo "$as_me:$LINENO: checking for build directories" >&5

View File

@ -3841,6 +3841,13 @@ do
THREADHEADERS="$THREADHEADERS \$(srcdir)/$h" THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
done done
if test $ac_sys_system = Darwin
then
LIBS="$LIBS -framework CoreFoundation"
fi
AC_SUBST(SRCDIRS) AC_SUBST(SRCDIRS)
SRCDIRS="Parser Grammar Objects Python Modules Mac" SRCDIRS="Parser Grammar Objects Python Modules Mac"
AC_MSG_CHECKING(for build directories) AC_MSG_CHECKING(for build directories)