Home | History | Annotate | Download | only in alpha
History log of /src/libexec/ld.elf_so/arch/alpha/rtld_start.S
RevisionDateAuthorComments
 1.17  18-Apr-2025  riastradh ld.elf_so on alpha: Add support for secureplt.

ok thorpej

PR port-alpha/57511: ld.elf_so(1) does not support secure PLT for alpha
PR port-alpha/57717: Alpha linker generates LOAD segments (and
generates warnings about them)
 1.16  18-Feb-2004  enami Salvage the instruction to save the pointer to ps_strings for later use
so that setproctitle() works again. The problem reported by Naoki Fukaumi
on japanese mailing list.

Approved by: Ross Harvey
 1.15  05-Oct-2002  mycroft Minor cleanup.
 1.14  12-Sep-2002  mycroft Update comments.
 1.13  12-Sep-2002  mycroft Pass the calculated relocation offset down to _rtld().
 1.12  11-Sep-2002  mycroft We don't use _GLOBAL_OFFSET_TABLE_ any more, so don't .global it.
 1.11  11-Sep-2002  mycroft Implement _rtld_relocate_nonplt_self() on Alpha.
 1.10  08-Sep-2002  thorpej Fix a serious performance problem for large programs on the Alpha.

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
for those GOT entries that the dynamic linker can't fixup.

Fix from FreeBSD.

Note that now that we patch up the PLT, we need to put back the "imb"
that was removed from the binder exit path.
 1.9  04-Sep-2002  mycroft There is no need to do an imb after each call to the binder, because we only
patch the GOT, not the PLT. However, do an imb when setting up the PLT thunk,
just in case.
 1.8  14-Dec-2001  thorpej branches: 1.8.2;
Garbage-collect the OLD_GOT stuff.
 1.7  13-Dec-2001  thorpej Supply two lazy binding routines for Alpha: one that works with the
old PLT format, and one that works with the new.

XXX We currently always use _rtld_bind_start_old() in
_rtld_setup_alpha_pltgot(). We need to add code to peek
into one of the PLT entries to see which format it's in
and pick the correct binding routine.
 1.6  13-Dec-2001  thorpej Use numeric labels.
 1.5  13-Dec-2001  thorpej * Add a linker script which provides a _GOT_END_ symbol that we can
use to find the end of the GOT, rather than relying on _DYNAMIC
to immediately follow the GOT. (A change in current binutils
moved _DYNAMIC, and thus would have broken our Alpha ld.elf_so).
* Add #ifdef'd out code to deal with the new PLT format.
 1.4  28-May-2001  nathanw Correct spelling in a comment.
 1.3  19-Apr-1999  thorpej branches: 1.3.8;
Simplify _rtld_start() a little, and shave some cycles. Spefically, there's
no need to save the stack pointer. Just push the space for the cleanup
and obj_main pointers before calling _rtld(), and pop it after loading those
pointers into the appropriate argument registers for the program entry point.
 1.2  18-Apr-1999  thorpej Tidy this up a little.
 1.1  16-Dec-1996  cgd First cut at an ELF shared loader. Originally from John Polstra's FreeBSD elf
kit, then hacked on by Matt Thomas <matt@3am-software.com>, then by me (to
make it work with new versions of the toolchain, etc.). This runs, but it's
in serious need of cleaning and/or a fair bit of reworking. See the README
file for more information, and a list of things to do.
 1.3.8.1  09-Dec-2001  he Pull up revision 1.4 (requested by skrll):
Add init/fini section support in crtbegin and crtend, and introduce
support for DWARF2 exception handling. Fixes PR#12865, PR#13488,
PR#13489, and PR#13491. Also fix ld.elf_so to deal appropriately.
 1.8.2.2  28-May-2004  tron Apply patch (request by skrll in ticket #1702):
Bring "ld.elf_so" (mostly) in sync with NetBSD-current:
- MI and MD (e.g. under NetBSD-alpha) performance improvements
- RTLD_SELF, RTLD_NEXT, RTLD_DEFAULT support
- much better structured code
- closes PR bin/25464
 1.8.2.1  30-Nov-2002  he Pull up revision 1.9 (requested by thorpej in ticket #774):
There is no need to do an imb after each call to the binder,
because we only patch the GOT, not the PLT. However, do
an imb when setting up the PLT thunk, just in case.

RSS XML Feed