Subject: Re: Getting Mozilla to run under NetBSD
To: Tom Ivar Helbekkmo <tih@nhh.no>
From: Frank van der Linden <frank@wins.uva.nl>
List: port-i386
Date: 12/07/1998 16:06:02
On Mon, Dec 07, 1998 at 07:54:37AM +0100, Tom Ivar Helbekkmo wrote:
> should actually cause the constructor (that's what they're called,
> right?) inside the given struct definition for ImageManagerInit to be
> called before main() even runs.  If my shaky understanding of things
> is right, /usr/lib/c++rt0.o has something to do with this, and is
> supposed to be included in the shared library that the above code
> resides in, in order for this to happen.  This isn't done during the
> build of Mozilla.
> 
> However, if I try to add c++rt0.o to the set of object files supplied
> to ld for the building of the shared library in question, I end up
> with another error situation:  Mozilla then doesn't even try to start,
> but fails very quickly with the error message:
> 
> 	failed to initialize shared libraries [Service unavailable]

You're right to include c++rt0.o, because it contains __init and __fini
functions, which are called automagically when a shared library
is loaded and unloaded (the latter can happen through dlclose()).

I don't know why the global dlopen() fails, that looks like a bug. It
happens for me too when running mozilla-current on i386-current with egcs,
and I haven't looked into it any further.

- Frank