Subject: Re: Behavior of dlopen(NULL, 0)
To: Julio M. Merino Vidal <jmmv@menta.net>
From: John Nemeth <jnemeth@victoria.tc.ca>
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:
RTLD_GLOBAL
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"