linux-mips
[Top] [All Lists]

Re: Libc in CVS

To: linux-mips@fnet.fr
Subject: Re: Libc in CVS
From: ralf@uni-koblenz.de
Date: Mon, 24 Nov 1997 18:16:31 +0100
Cc: ewt@redhat.com, Alan Cox <alan@lxorguk.ukuu.org.uk>, linux@cthulhu.engr.sgi.com
In-reply-to: <Pine.LNX.3.95.971124105430.7590F-100000@lacrosse.redhat.com>; from Erik Troan on Mon, Nov 24, 1997 at 10:55:25AM -0500
References: <19971124141804.17724@lappi.waldorf-gmbh.de> <Pine.LNX.3.95.971124105430.7590F-100000@lacrosse.redhat.com>
Sender: owner-linux@cthulhu.engr.sgi.com
On Mon, Nov 24, 1997 at 10:55:25AM -0500, Erik Troan wrote:
> On Mon, 24 Nov 1997 ralf@lappi.waldorf-gmbh.de wrote:
> > For rpm the trick is easy, just don't use a static linked binary.
> > Unfortunately the Redhat guys seem to think static binaries are a good
> > idea and install a static rpm by default.  Which it is not, not even
> > without a buggy dynamic linker.
> 
> A static RPM has saved my ass *many* times, and it would irresponsible
> for us not to ship it static.

I'm not arguing against static binaries because we've got a bug in the
libs.

 - static binaries contain syscalls and therefore make it very difficult,
   if not impossible to modify the kernel interfaces.

   The SVID btw., explicitly forbids embedding syscalls into ABI compliant
   binaries.  While SVID compliance is not directly mandatory for Linux,
   binary compatibility issues with IRIX (or Solaris or ...) etc. might
   somewhen enforce modifications to the syscall interface resulting in
   broken static binaries.

 - many static binaries will use dlopen() to load _shared_ libraries under
   certain circumstances.  Rpm is just one of them.  For example try with
   your static rpm

     rm -f /lib/*.so*
     rpm --install ftp://ftp.whitehat.org/libc-2.0.5-.rpm

   Won't work, because you don't have your shared libc and libnss anymore ...
   I admit that this type of desaster recovery was nicer with Linux libc
   which doesn't do the dlopen() thing.

> Glibc ought to be able to generate static binaries. If it can't, it's broken.

Yes, and the bugs have been fixed.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>