Apparently, On Wed, Dec 19, 2001 at 09:46:46PM +0100,
        Bernd Walter said words to the effect of;

> On Wed, Dec 19, 2001 at 08:06:20PM +0100, Maxime Henrion wrote:
> > Bernd Walter wrote:
> > > How can I add initalisation code to a library without needing to
> > > call a function in the using application?
> > > What I saw is that libc does something like this but havn't found
> > > the starting point of this.
> > 
> > There are two special functions for that : _init() which will be called
> > when the object is loaded, and _fini() which will be called when it is
> > released.
> 
> I can see that symbol defined in libc.so.5 but no reference in the libc
> source code.
> All I see are several *_init functions.
> Are they all called from within an autocreated _init function?
> If yes in which order?

The _init and _fini functions call global constructors and destructors
(in c++).  There's a gcc extension for making a constructor in C, put
__attribute__((constructor)) in the prototype.  The dynamic linker
will call them when it loads the library.

I don't know if the order that they're called in is defined or not.

> 
> -- 
> B.Walter              COSMO-Project         http://www.cosmo-project.de
> [EMAIL PROTECTED]         Usergroup           [EMAIL PROTECTED]
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to