40% slowdown with dynamic /bin/sh

Peter Jeremy 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.

Peter


More information about the freebsd-current mailing list