This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: My proposal for the libgcc runtime ABI (ia64 gcc/glibc is broken.)
- To: Richard Earnshaw <rearnsha at arm dot com>
- Subject: Re: My proposal for the libgcc runtime ABI (ia64 gcc/glibc is broken.)
- From: Jason R Thorpe <thorpej at zembu dot com>
- Date: Fri, 14 Jul 2000 10:03:04 -0700
- Cc: Alexandre Oliva <aoliva at redhat dot com>,"H . J . Lu" <hjl at valinux dot com>, Ulrich Drepper <drepper at cygnus dot com>,law at cygnus dot com, Mark Kettenis <kettenis at wins dot uva dot nl>,rth at twiddle dot net, libc-hacker at sourceware dot cygnus dot com, gcc at gcc dot gnu dot org
- Organization: Zembu Labs, Inc.
- References: <20000714092511.A794@dr-evil.z.zembu.com> <200007141646.RAA14818@cam-mail2.cambridge.arm.com>
- Reply-To: thorpej at zembu dot com
On Fri, Jul 14, 2000 at 05:46:22PM +0100, Richard Earnshaw wrote:
> Yes. They are still there. And because of the way shared libs work I
> believe they have to be. Consider something like __divsi3 and then assume
> that it isn't in libc.so and that we don't have a shared libgcc. There
> are two ways the linker could work:
>
> 1) The linker doesn't resolve symbols from shared libs into archives: If
> it is needed by libc.so and it weren't needed by the application the
> linker wouldn't put it into the application. So we would get a run-time
> fault when the symbol isn't found.
>
> 2) The linker does resolve symbols from shared libs into archives: this
> would result in every symbol possibly needed by libc from libgcc getting
> put into the static part of the application even if it weren't needed for
> that application (the linker can't pick apart the dependencies of the
> shared lib). This leads to code bloat since now we include __divsi3 in
> our app even if we never call it.
Err... ok, now I think I'm confused.
Looking at NetBSD shared library build rules, we basically see what
amounts to:
ld -x -shared -soname libc.so.12 -o libc.so.12.62 \
/usr/lib/crtbeginS.o \
--whole-archive libc_pic.a --no-while-archive \
/usr/lib/crtendS.o
Hm, are you referring to just the quad support library? Otherwise,
what kinds of compiler support routines would libgcc be providing on
e.g. the Alpha?
--
-- Jason R. Thorpe <thorpej@zembu.com>