freebsd-dev/libexec/rtld-aout
Nate Williams 468f82b316 Run-time linker speedups - Round One
Implemented symbol memorizing to reduce the number of calls to lookup(),
making relocation go faster.  While relocating a given shared object,
the dynamic linker maintains a memorizing vector that is directly
indexed by the symbol number in the relocation entry.  The first time a
given symbol is looked up, the memorizing vector is filled in with a
pointer to the symbol table entry, and a pointer to the so_map of the
shared object in which the symbol was defined.  On subsequent uses of
the same symbol, that information is retrieved directly from the
memorizing vector, without calling lookup() again.

A symbol that is referenced in a relocation entry is typically
referenced in many relocation entries, so this memorizing reduces the
number of calls to lookup() dramatically.  The overall improvement in
the speed of dynamic linking is also dramatic -- as much as a factor of
three for programs that use many shared libaries.

Submitted by:	jdp@polstra.com "John Polstra"
1995-10-25 16:16:35 +00:00
..
i386 Weak symbol support from NetBSD. This should bring us in sync with the 1995-03-04 17:49:20 +00:00
Makefile Import Paul Kranenburg's man page for ld.so (aka. rtld). 1995-08-26 13:17:39 +00:00
md-prologue.c Imported NetBSD's ld for shared libs. 1993-11-03 23:41:59 +00:00
rtld.1 This is a FreeBSD manpage, not a NetBSD manpage. :) 1995-10-05 05:16:52 +00:00
rtld.1aout This is a FreeBSD manpage, not a NetBSD manpage. :) 1995-10-05 05:16:52 +00:00
rtld.c Run-time linker speedups - Round One 1995-10-25 16:16:35 +00:00
shlib.c Removed /usr/local/lib from the standard library search path to be 1995-03-19 21:20:09 +00:00