Subject: Re: lib/2758: crt0.o pulls in much of libc during linking
To: Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu>
From: J.T. Conklin <jtc@NetBSD.ORG>
List: netbsd-bugs
Date: 09/16/1996 11:17:32
> > >Description:
> > crt0.o is supposed to be a mostly-standalone module. NetBSD's
> > violates that rule because it uses strerror(), which uses catopen(),
> > which uses...you get the idea.
>
> Last I heart, 'crt0.o' was meant for use with shared binaries, but
> scrt0.o was meant for use with static ones. For them, those calls
> won't add much space at all to the size of the executable.
I believe this was the intent, but as has been noted elsewhere in this
discussion, gcc no longer links with scrt0.s. I gather this happened
when we were merging the netbsd changes into the FSF source tree.
But before we make this change, let's make sure it's correct. If I
understand things correctly, using scrt0.o as is makes it impossible
to dynamicly link in code to a staticly linked executable. I think
this could be a useful feature. So why not split the dl* functions
out into their own library so that dynamic linking can be made to
work from static libraries too?
--jtc