40% slowdown with dynamic /bin/sh
peterjeremy at optushome.com.au
Tue Nov 25 00:18:24 PST 2003
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.
More information about the freebsd-current