Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Nov 2003 19:18:18 +1100
From:      Peter Jeremy <peterjeremy@optushome.com.au>
To:        "E.B. Dreger" <eddy+public+spam@noc.everquick.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: 40% slowdown with dynamic /bin/sh
Message-ID:  <20031125081818.GD76478@server.vk2pj.dyndns.org>
In-Reply-To: <Pine.LNX.4.44.0311250449150.6304-100000@a.mx.ict1.everquick.net>
References:  <20031125025621.453732A8FC@canning.wemm.org> <Pine.LNX.4.44.0311250449150.6304-100000@a.mx.ict1.everquick.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 25, 2003 at 04:54:41AM +0000, E.B. Dreger wrote:
>What specific aspects of rtld are required to support NSS in
>static binaries?  dlopen(), fixups, and dlsym()?

All of the above.  The underlying problem is how to handle a
library call from within the NSS/PAM/whatever shared library.
This has been discussed in one of the recent threads but it
boils down to:
1) Static executables don't normally have any symbols available at
   runtime so it's difficult for a shared library to resolve symbols
   using definitions in the executable.
2) It is possible (likely?) that a shared library may reference a
   symbol that does not exist within the executable.
3) Loading libc.so etc to resolve a symbol means that there may be
   two distinct (and possibly different) instances of the same object
   associated with a process.  This may create problems where those
   objects have side-effects.

Peter



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031125081818.GD76478>