summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf/ia64/reloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rtld-elf/ia64/reloc.c')
-rw-r--r--libexec/rtld-elf/ia64/reloc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libexec/rtld-elf/ia64/reloc.c b/libexec/rtld-elf/ia64/reloc.c
index 86b7ce6..8ec6860 100644
--- a/libexec/rtld-elf/ia64/reloc.c
+++ b/libexec/rtld-elf/ia64/reloc.c
@@ -407,6 +407,18 @@ make_function_pointer(const Elf_Sym *sym, const Obj_Entry *obj)
return fptrs[index];
}
+void
+call_initfini_pointer(const Obj_Entry *obj, Elf_Addr target)
+{
+ struct fptr fptr;
+
+ fptr.gp = (Elf_Addr) obj->pltgot;
+ fptr.target = target;
+ dbg(" initfini: target=%p, gp=%p",
+ (void *) fptr.target, (void *) fptr.gp);
+ ((InitFunc) &fptr)();
+}
+
/* Initialize the special PLT entries. */
void
init_pltgot(Obj_Entry *obj)
OpenPOWER on IntegriCloud