]> granicus.if.org Git - python/commitdiff
remove the dynload_next.c file (closes bpo-32386) (#4957)
authorBenjamin Peterson <benjamin@python.org>
Fri, 22 Dec 2017 05:43:09 +0000 (21:43 -0800)
committerGitHub <noreply@github.com>
Fri, 22 Dec 2017 05:43:09 +0000 (21:43 -0800)
Python/dynload_next.c [deleted file]
configure
configure.ac

diff --git a/Python/dynload_next.c b/Python/dynload_next.c
deleted file mode 100644 (file)
index 83a8b2b..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/* Support for dynamic loading of extension modules on Mac OS X
-** All references to "NeXT" are for historical reasons.
-*/
-
-#include "Python.h"
-#include "importdl.h"
-
-#include <mach-o/dyld.h>
-
-const char *_PyImport_DynLoadFiletab[] = {".so", NULL};
-
-/*
-** Python modules are Mach-O MH_BUNDLE files. The best way to load these
-** is each in a private namespace, so you can load, say, a module bar and a
-** module foo.bar. If we load everything in the global namespace the two
-** initbar() symbols will conflict.
-** However, it seems some extension packages depend upon being able to access
-** each others' global symbols. There seems to be no way to eat our cake and
-** have it, so the USE_DYLD_GLOBAL_NAMESPACE define determines which behaviour
-** you get.
-*/
-
-#ifdef USE_DYLD_GLOBAL_NAMESPACE
-#define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW|NSLINKMODULE_OPTION_RETURN_ON_ERROR
-#else
-#define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW| \
-    NSLINKMODULE_OPTION_RETURN_ON_ERROR|NSLINKMODULE_OPTION_PRIVATE
-#endif
-dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,
-                                       const char *shortname,
-                                       const char *pathname, FILE *fp)
-{
-    dl_funcptr p = NULL;
-    char funcname[258];
-    NSObjectFileImageReturnCode rc;
-    NSObjectFileImage image;
-    NSModule newModule;
-    NSSymbol theSym;
-    const char *errString;
-    char errBuf[512];
-
-    PyOS_snprintf(funcname, sizeof(funcname), "_%.20s_%.200s", prefix, shortname);
-
-#ifdef USE_DYLD_GLOBAL_NAMESPACE
-    if (NSIsSymbolNameDefined(funcname)) {
-        theSym = NSLookupAndBindSymbol(funcname);
-        p = (dl_funcptr)NSAddressOfSymbol(theSym);
-        return p;
-    }
-#endif
-    rc = NSCreateObjectFileImageFromFile(pathname, &image);
-    switch(rc) {
-        default:
-        case NSObjectFileImageFailure:
-        case NSObjectFileImageFormat:
-            /* for these a message is printed on stderr by dyld */
-            errString = "Can't create object file image";
-        break;
-        case NSObjectFileImageSuccess:
-            errString = NULL;
-            break;
-        case NSObjectFileImageInappropriateFile:
-            errString = "Inappropriate file type for dynamic loading";
-            break;
-        case NSObjectFileImageArch:
-            errString = "Wrong CPU type in object file";
-            break;
-        case NSObjectFileImageAccess:
-            errString = "Can't read object file (no access)";
-            break;
-    }
-    if (errString == NULL) {
-        newModule = NSLinkModule(image, pathname, LINKOPTIONS);
-        if (newModule == NULL) {
-            int errNo;
-            const char *fileName, *moreErrorStr;
-            NSLinkEditErrors c;
-            NSLinkEditError( &c, &errNo, &fileName, &moreErrorStr );
-            PyOS_snprintf(errBuf, 512, "Failure linking new module: %s: %s",
-                            fileName, moreErrorStr);
-            errString = errBuf;
-        }
-    }
-    if (errString != NULL) {
-        PyErr_SetString(PyExc_ImportError, errString);
-        return NULL;
-    }
-#ifdef USE_DYLD_GLOBAL_NAMESPACE
-    if (!NSIsSymbolNameDefined(funcname)) {
-        /* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
-        /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */
-        PyErr_Format(PyExc_ImportError,
-                         "Loaded module does not contain symbol %.200s",
-                         funcname);
-        return NULL;
-    }
-    theSym = NSLookupAndBindSymbol(funcname);
-#else
-    theSym = NSLookupSymbolInModule(newModule, funcname);
-    if ( theSym == NULL ) {
-        /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */
-        PyErr_Format(PyExc_ImportError,
-                         "Loaded module does not contain symbol %.200s",
-                         funcname);
-        return NULL;
-    }
-#endif
-    p = (dl_funcptr)NSAddressOfSymbol(theSym);
-    return p;
-}
index 24ae25640918824014d282b33806458eb536726a..2728f67b577aa8b53f41d4d6117867423318c308 100755 (executable)
--- a/configure
+++ b/configure
@@ -778,6 +778,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -889,6 +890,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1141,6 +1143,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1278,7 +1289,7 @@ fi
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1431,6 +1442,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -9125,7 +9137,7 @@ then
                        LDCXXSHARED='$(CXX) -shared'
                else
                        LDSHARED='$(CC) -b'
-                       LDCXXSHARED='$(CXX) -shared'
+                       LDCXXSHARED='$(CXX) -b'
                fi ;;
        Darwin/1.3*)
                LDSHARED='$(CC) -bundle'
@@ -9872,6 +9884,7 @@ fi
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -11099,8 +11112,6 @@ then
        fi
        ;;
        hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
-       # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
-       Darwin/[0156]\..*) DYNLOADFILE="dynload_next.o";;
        *)
        # use dynload_shlib.c and dlopen() if we have it; otherwise stub
        # out any dynamic loading
index 48eaa2ae7f354989ce35c1c815d9248a94e2c821..027109c65d2169c68b0aff4e27397e1bc4778baa 100644 (file)
@@ -3373,8 +3373,6 @@ then
        fi
        ;;
        hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
-       # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
-       Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
        *)
        # use dynload_shlib.c and dlopen() if we have it; otherwise stub
        # out any dynamic loading