mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
Patch #497126: Always compile dl.
This commit is contained in:
parent
7198a525f3
commit
93227275dc
4 changed files with 17 additions and 7 deletions
|
|
@ -312,6 +312,7 @@ Fredrik Nehr
|
|||
Chad Netzer
|
||||
Max Neunhöffer
|
||||
George Neville-Neil
|
||||
Gustavo Niemeyer
|
||||
Oscar Nierstrasz
|
||||
Hrvoje Niksic
|
||||
Bill Noon
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ Core and builtins
|
|||
|
||||
Extension modules
|
||||
|
||||
- dl is now build on every system that has dlfcn.h. Failure in case
|
||||
of sizeof(int)!=sizeof(long)!=sizeof(void*) is delayed until dl.open
|
||||
is called.
|
||||
|
||||
Library
|
||||
|
||||
- ftplib: to safeguard the user's privacy, anonymous login will use
|
||||
|
|
|
|||
|
|
@ -158,6 +158,13 @@ dl_open(PyObject *self, PyObject *args)
|
|||
char *name;
|
||||
int mode;
|
||||
PyUnivPtr *handle;
|
||||
if (sizeof(int) != sizeof(long) ||
|
||||
sizeof(long) != sizeof(char *)) {
|
||||
PyErr_SetString(PyExc_SystemError,
|
||||
"module dl requires sizeof(int) == sizeof(long) == sizeof(char*)");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (PyArg_Parse(args, "z", &name))
|
||||
mode = RTLD_LAZY;
|
||||
else {
|
||||
|
|
@ -204,13 +211,6 @@ initdl(void)
|
|||
{
|
||||
PyObject *m, *d, *x;
|
||||
|
||||
if (sizeof(int) != sizeof(long) ||
|
||||
sizeof(long) != sizeof(char *)) {
|
||||
PyErr_SetString(PyExc_SystemError,
|
||||
"module dl requires sizeof(int) == sizeof(long) == sizeof(char*)");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Initialize object type */
|
||||
Dltype.ob_type = &PyType_Type;
|
||||
|
||||
|
|
|
|||
5
setup.py
5
setup.py
|
|
@ -567,6 +567,11 @@ class PyBuildExt(build_ext):
|
|||
define_macros = expat_defs,
|
||||
libraries = ['expat']) )
|
||||
|
||||
# Dynamic loading module
|
||||
dl_inc = find_file('dlfcn.h', [], inc_dirs)
|
||||
if dl_inc is not None:
|
||||
exts.append( Extension('dl', ['dlmodule.c']) )
|
||||
|
||||
# Platform-specific libraries
|
||||
if platform == 'linux2':
|
||||
# Linux-specific modules
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue