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>