OLD | NEW |
1 | 1 |
2 /* Support for dynamic loading of extension modules on Mac OS X | 2 /* Support for dynamic loading of extension modules on Mac OS X |
3 ** All references to "NeXT" are for historical reasons. | 3 ** All references to "NeXT" are for historical reasons. |
4 */ | 4 */ |
5 | 5 |
6 #include "Python.h" | 6 #include "Python.h" |
7 #include "importdl.h" | 7 #include "importdl.h" |
8 | 8 |
9 #include <mach-o/dyld.h> | 9 #include <mach-o/dyld.h> |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 ** have it, so the USE_DYLD_GLOBAL_NAMESPACE define determines which behaviour | 24 ** have it, so the USE_DYLD_GLOBAL_NAMESPACE define determines which behaviour |
25 ** you get. | 25 ** you get. |
26 */ | 26 */ |
27 | 27 |
28 #ifdef USE_DYLD_GLOBAL_NAMESPACE | 28 #ifdef USE_DYLD_GLOBAL_NAMESPACE |
29 #define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW|NSLINKMODULE_OPTION_RETURN_ON_ER
ROR | 29 #define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW|NSLINKMODULE_OPTION_RETURN_ON_ER
ROR |
30 #else | 30 #else |
31 #define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW| \ | 31 #define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW| \ |
32 NSLINKMODULE_OPTION_RETURN_ON_ERROR|NSLINKMODULE_OPTION_PRIVATE | 32 NSLINKMODULE_OPTION_RETURN_ON_ERROR|NSLINKMODULE_OPTION_PRIVATE |
33 #endif | 33 #endif |
34 dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, | 34 dl_funcptr _PyImport_GetDynLoadFunc(const char *shortname, |
35 const char *pathname, FILE *fp) | 35 const char *pathname, FILE *fp) |
36 { | 36 { |
37 dl_funcptr p = NULL; | 37 dl_funcptr p = NULL; |
38 char funcname[258]; | 38 char funcname[258]; |
39 NSObjectFileImageReturnCode rc; | 39 NSObjectFileImageReturnCode rc; |
40 NSObjectFileImage image; | 40 NSObjectFileImage image; |
41 NSModule newModule; | 41 NSModule newModule; |
42 NSSymbol theSym; | 42 NSSymbol theSym; |
43 const char *errString; | 43 const char *errString; |
44 char errBuf[512]; | 44 char errBuf[512]; |
45 | 45 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC c
ode */ | 105 /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC c
ode */ |
106 PyErr_Format(PyExc_ImportError, | 106 PyErr_Format(PyExc_ImportError, |
107 "Loaded module does not contain symbol %.200s", | 107 "Loaded module does not contain symbol %.200s", |
108 funcname); | 108 funcname); |
109 return NULL; | 109 return NULL; |
110 } | 110 } |
111 #endif | 111 #endif |
112 p = (dl_funcptr)NSAddressOfSymbol(theSym); | 112 p = (dl_funcptr)NSAddressOfSymbol(theSym); |
113 return p; | 113 return p; |
114 } | 114 } |
OLD | NEW |