This is the mail archive of the
libc-hacker@cygnus.com
mailing list for the glibc project.
Re: libc/936: glibc2 - ld.so fails to load a program defining
- To: roland@frob.com
- Subject: Re: libc/936: glibc2 - ld.so fails to load a program defining
- From: Mark Kettenis <kettenis@wins.uva.nl>
- Date: Wed, 3 Feb 1999 01:51:53 +0100 (CET)
- CC: drepper@cygnus.com, zack@rabi.columbia.edu, libc-hacker@cygnus.com, bugs@gnu.org
- References: <199902022007.PAA21367@baalperazim.frob.com>
Date: Tue, 2 Feb 1999 15:07:24 -0500
From: Roland McGrath <roland@frob.com>
So, the dynamic linker defines symbols it needs for basic operation such as
open, mmap, etc. On Linux, these definitions all come from libc_pic.a and
so are identical to the definitions that will appear in libc.so. But on
the Hurd, many of these functions are much more complex than a simple
system call stub, so dl-sysdep.c defines special simpler versions of them
that will work *only* in the dynamic linker at startup time, and *cannot*
be used later; it defines these as weak symbols.
We even do this for Linux (and all other systems). See `elf/dl-minimal.c'.