[Top] [All Lists]

Re: Libc in CVS

Subject: Re: Libc in CVS
Date: Mon, 24 Nov 1997 18:16:31 +0100
Cc:, Alan Cox <>,
In-reply-to: <>; from Erik Troan on Mon, Nov 24, 1997 at 10:55:25AM -0500
References: <> <>
On Mon, Nov 24, 1997 at 10:55:25AM -0500, Erik Troan wrote:
> On Mon, 24 Nov 1997 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

 - 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

   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.


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