Subject: Re: dlopen and C++ (NetBSD 1.4.x)
To: None <tech-toolchain@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-toolchain
Date: 08/04/2000 02:17:41
In article <200007282004.e6SK4AR05217@rumolt.teuto.de>,
Martin Husemann <martin@rumolt.teuto.de> wrote:
> > I've tried compiling the .so without the -nostdlib and without the manual
> > inclusion of /usr/lib/c++rt0.o, but I get a whole passel of 
> > "RRS text relocation" warnings when I try to turn the .so into a shared
> > library, and I still get the undefined symbol error.
> 
> Ok, there are two problems in here. The attached shar builds without
> a warning on 1.5C (-current) and probably 1.5_Alpha. It actually works
> as expected. On 1.4.3_Alpha it results in lots of RRS text relocation warnings
> and fails on i386/a.out: the symbol you look up in the shared library needs
> an underscore prepended: "_base_factory". With this, it works there too.
> 
> So: check for the underscores (is there a "portable" way to do this besides
> autoconf?) and ignore the RSS relocations.
> 
> If you don't link in the necessary libs, how do you supposed your module
> would be loadable? One could argue that the linker should fail when creating
> the .so file...

#ifdef __ELF__
no underscore
#else
underscore
#endif

christos