On Tue, Jan 16, 2001 at 11:44:48AM +0200, Danie Roux wrote: [snip] | | I then went and look at the source rpm. They have this patch in there: | | --- Python-1.5.2/Python/importdl.c.global Sat Jul 17 16:52:26 1999 | +++ Python-1.5.2/Python/importdl.c Sat Jul 17 16:53:19 1999 | @@ -441,13 +441,13 @@ | #ifdef RTLD_NOW | /* RTLD_NOW: resolve externals now | (i.e. core dump now if some are missing) */ | - void *handle = dlopen(pathname, RTLD_NOW); | + void *handle = dlopen(pathname, RTLD_NOW | RTLD_GLOBAL); | #else | void *handle; | if (Py_VerboseFlag) | printf("dlopen(\"%s\", %d);\n", pathname, | - RTLD_LAZY); | - handle = dlopen(pathname, RTLD_LAZY); | + RTLD_LAZY | RTLD_GLOBAL); | + handle = dlopen(pathname, RTLD_LAZY | RTLD_GLOBAL); | #endif /* RTLD_NOW */ | if (handle == NULL) { | PyErr_SetString(PyExc_ImportError, dlerror()); |
The only difference here is the addtion (via bitwise or-ing) of the RTLD_GLOBAL flag. Check with some documentation and see what RTLD_GLOBAL flag means and how it affects the dlopen functions. I imagine this function is a part of glibc. Can anyone else help here? -D