freebsd-dev/gnu/usr.bin/ld
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
ldconfig Reset the umask before creating the output file; otherwise running 1995-08-16 06:31:50 +00:00
ldd Updated to recent version of Paul K.'s shlib code. This code has better 1994-12-23 22:31:35 +00:00
rtld Run-time linker speedups - Round One 1995-10-25 16:16:35 +00:00
sparc Weak symbol support from NetBSD. This should bring us in sync with the 1995-03-04 17:49:20 +00:00
cplus-dem.c Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
etc.c Changes from Paul Kranenburg which bring us into sync with his sources: 1994-06-15 22:41:19 +00:00
ld.1 Updated to recent version of Paul K.'s shlib code. This code has better 1994-12-23 22:31:35 +00:00
ld.1aout Updated to recent version of Paul K.'s shlib code. This code has better 1994-12-23 22:31:35 +00:00
ld.c Remove LD_NOSTD_PATH implementation, it isn't works and 1995-10-24 06:48:16 +00:00
ld.h Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
lib.c Fix checks for open() failing. open() may successfully return 0. 1995-09-28 19:43:22 +00:00
Makefile Stop using gnumalloc. 1995-09-22 14:14:32 +00:00
PORTING New file from pk to aid new in developing the shlib code for new 1994-12-23 22:56:08 +00:00
rrs.c Weak symbol support from NetBSD. This should bring us in sync with the 1995-03-04 17:49:20 +00:00
shlib.c Removed /usr/local/lib from the standard library search path to be 1995-03-19 21:20:09 +00:00
symbol.c Updated to recent version of Paul K.'s shlib code. This code has better 1994-12-23 22:31:35 +00:00
symseg.h Remove trailing whitespace. 1995-05-30 05:05:38 +00:00
TODO Added the TODO file. Also wanted to announce the previous change to rtld.c 1993-12-09 17:53:08 +00:00
warnings.c Weak symbol support from NetBSD. This should bring us in sync with the 1995-03-04 17:49:20 +00:00
xbits.c This is Paul K's latest set of ld changes. A commit was necessary at this 1994-02-13 20:43:13 +00:00