> 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?

Uh, 'man dlopen' explains it very clearly.
To quote:
       Optionally,  RTLD_GLOBAL  may  be or'ed with flag, in which case
       the external symbols defined in the library will  be  made
       available to subsequently loaded libraries.

Jeez.

-- 
Applying computer technology is simply finding the right wrench to
  pound in the correct screw.

Jon Nelson
[EMAIL PROTECTED]



Reply via email to