Subject: Re: C shared lib question
To: None <thorpej@shagadelic.org>
From: Eduardo E. Horvath <eeh@one-o.com>
List: tech-toolchain
Date: 03/10/2000 08:46:37
> On Fri, Mar 10, 2000 at 01:07:20AM +0000, Christos Zoulas wrote:
> 
>  > > Well, that is sucky.  The linker is supposed to recognize those and stuff
>  > > them into the .init and .fini sections.
>  > 
>  > Is it? I don't think so. I thought that you needed:
>  > 
>  > extern void _init(void) __attribute__((section(".init")));
> 
> Well, you don't need this in the Solaris toolchain, at least.  The
> Solaris kernel, for example, has _init() and _fini() routines with
> no such attributes (they don't use GCC, after all :-) in several
> device drivers...

That's the Solaris _kernel_.  I don't believe that the same is true of
the Solaris userland.  That's done through some magic in `krtld' and
is designed specifically for dynamically loadable device drivers.
I'll have to go and dump the ELF headers on some drivers, but I don't
think that they make use of `.init' and `.fini' sections for this
functionality.  So I'd say you're comparing apples and oranges here.

=========================================================================
Eduardo Horvath				eeh@netbsd.org
	"I need to find a pithy new quote." -- me