Mercurial > cpython-lru_cache-weakref
diff Python/dynload_shlib.c @ 28949:ac487a7f7f2c legacy-trunk
Patch #708495: Port more stuff to OpenVMS.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Sat, 03 May 2003 09:14:54 +0000 |
| parents | 5cbcfde3ad55 |
| children | e6379bda91d7 |
line wrap: on
line diff
--- a/Python/dynload_shlib.c Sat May 03 09:09:02 2003 +0000 +++ b/Python/dynload_shlib.c Sat May 03 09:14:54 2003 +0000 @@ -40,16 +40,27 @@ {".pyd", "rb", C_EXTENSION}, {".dll", "rb", C_EXTENSION}, #else +#ifdef __VMS + {".exe", "rb", C_EXTENSION}, + {".EXE", "rb", C_EXTENSION}, + {"module.exe", "rb", C_EXTENSION}, + {"MODULE.EXE", "rb", C_EXTENSION}, +#else {".so", "rb", C_EXTENSION}, {"module.so", "rb", C_EXTENSION}, #endif #endif +#endif {0, 0} }; static struct { dev_t dev; +#ifdef __VMS + ino_t ino[3]; +#else ino_t ino; +#endif void *handle; } handles[128]; static int nhandles = 0; @@ -87,7 +98,13 @@ } if (nhandles < 128) { handles[nhandles].dev = statb.st_dev; +#ifdef __VMS + handles[nhandles].ino[0] = statb.st_ino[0]; + handles[nhandles].ino[1] = statb.st_ino[1]; + handles[nhandles].ino[2] = statb.st_ino[2]; +#else handles[nhandles].ino = statb.st_ino; +#endif } } @@ -98,6 +115,17 @@ if (Py_VerboseFlag) printf("dlopen(\"%s\", %x);\n", pathname, dlopenflags); +#ifdef __VMS + /* VMS currently don't allow a pathname, use a logical name instead */ + /* Concatenate 'python_module_' and shortname */ + /* so "import vms.bar" will use the logical python_module_bar */ + /* As C module use only one name space this is probably not a */ + /* important limitation */ + PyOS_snprintf(pathbuf, sizeof(pathbuf), "python_module_%-.200s", + shortname); + pathname = pathbuf; +#endif + handle = dlopen(pathname, dlopenflags); if (handle == NULL) {
