Subject: Re: dlopen() status
To: James Macnicol <James.Macnicol@faceng.anu.edu.au>
From: Todd Vierling <tv@wasabisystems.com>
List: port-alpha
Date: 01/05/2001 18:43:20
On Sat, 6 Jan 2001, James Macnicol wrote:

: dlsym(RTLD_DEFAULT, symname);
:
: (to get the address of a function defined in the program, or more likely, one
: of the shared libs. that has been loaded via. dlopen() at runtime).  This
: doesn't appear to be possible (no definition in dlfcn.h).  I have tried
: substituting NULL for RTLD_DEFAULT (the only obvious thing I can think of)
: but dlsym() is returning NULL for things it should be able to find.

If it's in the main program, you will need to link your program with the
option:

cc ... -Wl,-E

(or more verbosely,)

cc ... -Wl,--export-dynamic

Without this, the shared symbol table of the resultant executable will not
exist.

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  Wasabi NetBSD:  Run with it.
-- NetBSD 1.5 now available on CD-ROM  --  http://www.wasabisystems.com/