+++ /dev/null
-\r
-/* Support for dynamic loading of extension modules */\r
-\r
-#include "dl.h"\r
-#include <errno.h>\r
-\r
-#include "Python.h"\r
-#include "importdl.h"\r
-\r
-#if defined(__hp9000s300)\r
-#define FUNCNAME_PATTERN "_init%.200s"\r
-#else\r
-#define FUNCNAME_PATTERN "init%.200s"\r
-#endif\r
-\r
-const struct filedescr _PyImport_DynLoadFiletab[] = {\r
- {SHLIB_EXT, "rb", C_EXTENSION},\r
- {"module"SHLIB_EXT, "rb", C_EXTENSION},\r
- {0, 0}\r
-};\r
-\r
-dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,\r
- const char *pathname, FILE *fp)\r
-{\r
- dl_funcptr p;\r
- shl_t lib;\r
- int flags;\r
- char funcname[258];\r
-\r
- flags = BIND_FIRST | BIND_DEFERRED;\r
- if (Py_VerboseFlag) {\r
- flags = BIND_FIRST | BIND_IMMEDIATE |\r
- BIND_NONFATAL | BIND_VERBOSE;\r
- printf("shl_load %s\n",pathname);\r
- }\r
- lib = shl_load(pathname, flags, 0);\r
- /* XXX Chuck Blake once wrote that 0 should be BIND_NOSTART? */\r
- if (lib == NULL) {\r
- char buf[256];\r
- if (Py_VerboseFlag)\r
- perror(pathname);\r
- PyOS_snprintf(buf, sizeof(buf), "Failed to load %.200s",\r
- pathname);\r
- PyErr_SetString(PyExc_ImportError, buf);\r
- return NULL;\r
- }\r
- PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, shortname);\r
- if (Py_VerboseFlag)\r
- printf("shl_findsym %s\n", funcname);\r
- if (shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p) == -1) {\r
- shl_unload(lib);\r
- p = NULL;\r
- }\r
- if (p == NULL && Py_VerboseFlag)\r
- perror(funcname);\r
-\r
- return p;\r
-}\r