freebsd-src/libexec/rtld-elf/i386
John Polstra 962fdc466a Fix a serious performance bug for large programs on the Alpha,
discovered by Hidetoshi Shimokawa.  Large programs need multiple
GOTs.  The lazy binding stub in the PLT can be reached from any of
these GOTs, but the dynamic linker only has enough information to
fix up the first GOT entry.  Thus calls through the other GOTs went
through the time-consuming lazy binding process on every call.

This fix rewrites the PLT entries themselves to bypass the lazy
binding.

Tested by Hidetoshi Shimokawa and Steve Price.

Reviewed by:	Doug Rabson <dfr@freebsd.org>
1999-06-25 02:53:59 +00:00
..
elf_rtld.x Eliminate all machine-dependent code from the main source body and 1999-04-09 00:28:43 +00:00
Makefile.inc Eliminate all machine-dependent code from the main source body and 1999-04-09 00:28:43 +00:00
reloc.c Fix a serious performance bug for large programs on the Alpha, 1999-06-25 02:53:59 +00:00
rtld_machdep.h Fix a serious performance bug for large programs on the Alpha, 1999-06-25 02:53:59 +00:00
rtld_start.S Add alpha support. 1998-09-04 19:03:57 +00:00