Commit 82201744 authored by Anthony Baxter's avatar Anthony Baxter

Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)

to load extension modules and now provides the dl module. As a result,
sys.setdlopenflags() now works correctly on these systems. (SF patch
#1454844)
parent a50794b6
No related merge requests found
......@@ -945,7 +945,6 @@ _expectations = {
test_cd
test_cl
test_curses
test_dl
test_gdbm
test_gl
test_imgfile
......
......@@ -10,6 +10,7 @@ sharedlibs = [
('/usr/lib/libc.so', 'getpid'),
('/lib/libc.so.6', 'getpid'),
('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'),
]
for s, func in sharedlibs:
......
......@@ -478,6 +478,7 @@ Jean-Fran
Dan Pierson
Martijn Pieters
Franois Pinard
Zach Pincus
Michael Piotrowski
Iustin Pop
John Popplewell
......
......@@ -12,6 +12,12 @@ What's New in Python 2.5 alpha 2?
Core and builtins
-----------------
- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
to load extension modules and now provides the dl module. As a result,
sys.setdlopenflags() now works correctly on these systems. (SF patch
#1454844)
Extension Modules
-----------------
......
......@@ -10819,7 +10819,7 @@ echo "${ECHO_T}$enable_toolbox_glue" >&6
case $ac_sys_system/$ac_sys_release in
Darwin/[01234567].*)
Darwin/[01567]\..*)
OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
;;
Darwin/*)
......@@ -10829,7 +10829,7 @@ esac
case $ac_sys_system/$ac_sys_release in
Darwin/[01234567].*)
Darwin/[01567]\..*)
LIBTOOL_CRUFT="-framework System -lcc_dynamic -arch_only `arch`"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
......@@ -13980,7 +13980,8 @@ then
;;
BeOS*) DYNLOADFILE="dynload_beos.o";;
hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Darwin/*) DYNLOADFILE="dynload_next.o";;
# Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
Darwin/[0156]\..*) DYNLOADFILE="dynload_next.o";;
atheos*) DYNLOADFILE="dynload_atheos.o";;
*)
# use dynload_shlib.c and dlopen() if we have it; otherwise stub
......
......@@ -1259,7 +1259,7 @@ AC_MSG_RESULT($enable_toolbox_glue)
AC_SUBST(OTHER_LIBTOOL_OPT)
case $ac_sys_system/$ac_sys_release in
Darwin/@<:@01234567@:>@.*)
Darwin/@<:@01567@:>@\..*)
OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
;;
Darwin/*)
......@@ -1269,7 +1269,7 @@ esac
AC_SUBST(LIBTOOL_CRUFT)
case $ac_sys_system/$ac_sys_release in
Darwin/@<:@01234567@:>@.*)
Darwin/@<:@01567@:>@\..*)
LIBTOOL_CRUFT="-framework System -lcc_dynamic -arch_only `arch`"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
......@@ -2110,7 +2110,8 @@ then
;;
BeOS*) DYNLOADFILE="dynload_beos.o";;
hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Darwin/*) DYNLOADFILE="dynload_next.o";;
# Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
atheos*) DYNLOADFILE="dynload_atheos.o";;
*)
# use dynload_shlib.c and dlopen() if we have it; otherwise stub
......
......@@ -969,7 +969,7 @@ class PyBuildExt(build_ext):
if sys.maxint == 0x7fffffff:
# This requires sizeof(int) == sizeof(long) == sizeof(char*)
dl_inc = find_file('dlfcn.h', [], inc_dirs)
if (dl_inc is not None) and (platform not in ['atheos', 'darwin']):
if (dl_inc is not None) and (platform not in ['atheos']):
exts.append( Extension('dl', ['dlmodule.c']) )
# Thomas Heller's _ctypes module
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment