This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: libiberty reports: "undefined reference to dlopen"
On Tue, Jul 03, 2001 at 04:49:32PM -0400, Jeff W. wrote:
> On Tue, 3 Jul 2001, H . J . Lu wrote:
>
> > > cplus-dem.o(.text+0xae7): undefined reference to `dlopen'
> > > cplus-dem.o(.text+0xaf6): undefined reference to `dlerror'
> > > cplus-dem.o(.text+0xb1b): undefined reference to `dlsym'
> > > cplus-dem.o(.text+0xb2c): undefined reference to `dlerror'
> > > collect2: ld returned 1 exit status
> > >
> >
> > It looks like Debian uses a strange binutils. As far as I know,
> > those dlxxx functions are only used in my Linux binutils. But in
> > my Linux binutils, they shiuld be marked as weak undefined:
> >
> > # objdump --sym /usr/lib/libiberty.a | grep " dl"
> > 0000000000000000 w *UND* 0000000000000000 dlopen
> > 0000000000000000 w *UND* 0000000000000000 dlerror
> > 0000000000000000 w *UND* 0000000000000000 dlsym
> >
> > so that linker won't complain if they don't exist.
> >
> >
>
> I tried that, and I get the following:
>
> mnml:/usr/local/tau-2.9# objdump --sym /usr/lib/libiberty.a | grep " dl"
> 00000000 *UND* 00000000 dlopen
> 00000000 *UND* 00000000 dlerror
> 00000000 *UND* 00000000 dlsym
>
> Is there a way I can change it to how you've got yours set up? If not,
> how can I fix this problem? Like I said, I tried installing the .tar.gz
> version and still, same problems.
>
I have no ideas. I don't use Debian. It works for me. In cplus-dem.c,
there are
#if defined(HAVE_DLOPEN) && defined(HAVE_WEAK_SYMBOL) && defined(HAVE_DLFCN_H)
#include <dlfcn.h>
#pragma weak dlopen
#pragma weak dlsym
#pragma weak dlerror
#endif
H.J.