Subject: Re: Behavior of dlopen(NULL, 0)
To: Julio M. Merino Vidal <>
From: John Nemeth <>
List: tech-userlevel
Date: 05/19/2004 01:35:42
On Sep 6,  6:25pm, "Julio M. Merino Vidal" wrote:
} The problem itself is located in libglade2.  It does a dlopen(NULL, 0) to
} query the global symbol table of the program, looking for functions whose
} name is only known at runtime.  Many times, these functions are located in

     I've fallen rather far behind on my e-mail as you can probably tell,
but I just wanted to point out that Solaris 8's manpage says:

     If the value of pathname is 0, dlopen() provides a handle on
     a  global  symbol object. This object provides access to the
     symbols from an ordered set of  objects  consisting  of  the
     original  program image file, together with any dependencies
     loaded at program startup, and any objects that were  loaded
     using  dlopen()  together  with the RTLD_GLOBAL flag. As the
     latter set of objects can change during  process  execution,
     the set identified by handle can also change dynamically.

     To determine the scope of visibility for symbols loaded with
     a  dlopen() invocation, the mode parameter should be bitwise
     or'ed with one of the following values:

           The object's global symbols are made available for the
           relocation  processing  of  any other object. In addi-
           tion, symbol lookup using dlopen(0, mode) and an asso-
           ciated dlsym(), allows objects loaded with RTLD_GLOBAL
           to be searched.

}-- End of excerpt from "Julio M. Merino Vidal"