Lines Matching refs:rela
78 const Elf_Rela *rela; in do_copy_relocations() local
85 relalim = (const Elf_Rela *)((const char *) dstobj->rela + in do_copy_relocations()
87 for (rela = dstobj->rela; rela < relalim; rela++) { in do_copy_relocations()
98 if (ELF_R_TYPE(rela->r_info) != R_PPC_COPY) { in do_copy_relocations()
102 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations()
103 dstsym = dstobj->symtab + ELF_R_SYM(rela->r_info); in do_copy_relocations()
107 req.ventry = fetch_ventry(dstobj, ELF_R_SYM(rela->r_info)); in do_copy_relocations()
142 const Elf_Rela *rela = NULL, *relalim; in reloc_non_plt_self() local
152 rela = (const Elf_Rela *)(relocbase+dynp->d_un.d_ptr); in reloc_non_plt_self()
163 relalim = (const Elf_Rela *)((const char *)rela + relasz); in reloc_non_plt_self()
164 for (; rela < relalim; rela++) { in reloc_non_plt_self()
165 where = (Elf_Addr *)(relocbase + rela->r_offset); in reloc_non_plt_self()
166 *where = (Elf_Addr)(relocbase + rela->r_addend); in reloc_non_plt_self()
176 const Elf_Rela *rela, SymCache *cache, int flags, RtldLockState *lockstate) in reloc_nonplt_object() argument
186 switch (ELF_R_TYPE(rela->r_info)) { in reloc_nonplt_object()
194 def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, in reloc_nonplt_object()
211 switch (ELF_R_TYPE(rela->r_info)) { in reloc_nonplt_object()
239 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_nonplt_object()
241 switch (ELF_R_TYPE(rela->r_info)) { in reloc_nonplt_object()
248 if (*where != symval + rela->r_addend) { in reloc_nonplt_object()
249 *where = symval + rela->r_addend; in reloc_nonplt_object()
274 + (Elf_Addr *)(def->st_value + rela->r_addend in reloc_nonplt_object()
278 *where += (Elf_Addr)(def->st_value + rela->r_addend in reloc_nonplt_object()
282 symval = (Elf_Addr)(obj->relocbase + rela->r_addend); in reloc_nonplt_object()
319 ELF_R_TYPE(rela->r_info)); in reloc_nonplt_object()
334 const Elf_Rela *rela; in reloc_non_plt() local
354 relalim = (const Elf_Rela *)((const char *)obj->rela + obj->relasize); in reloc_non_plt()
355 for (rela = obj->rela; rela < relalim; rela++) { in reloc_non_plt()
356 if (reloc_nonplt_object(obj_rtld, obj, rela, cache, flags, in reloc_non_plt()
385 reloc_plt_object(Obj_Entry *obj, const Elf_Rela *rela) in reloc_plt_object() argument
387 Elf_Word *where = (Elf_Word *)(obj->relocbase + rela->r_offset); in reloc_plt_object()
393 reloff = rela - obj->pltrela; in reloc_plt_object()
446 const Elf_Rela *rela; in reloc_plt() local
453 for (rela = obj->pltrela; rela < relalim; rela++) { in reloc_plt()
454 if (ELF_R_TYPE(rela->r_info) == R_PPC_IRELATIVE) { in reloc_plt()
465 assert(ELF_R_TYPE(rela->r_info) == R_PPC_JMP_SLOT); in reloc_plt()
467 if (reloc_plt_object(obj, rela) < 0) { in reloc_plt()
491 const Elf_Rela *rela; in reloc_jmpslots() local
498 for (rela = obj->pltrela; rela < relalim; rela++) { in reloc_jmpslots()
500 if (ELF_R_TYPE(rela->r_info) == R_PPC_IRELATIVE) in reloc_jmpslots()
502 assert(ELF_R_TYPE(rela->r_info) == R_PPC_JMP_SLOT); in reloc_jmpslots()
503 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots()
504 def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, in reloc_jmpslots()
523 (const Elf_Rel *) rela); in reloc_jmpslots()
541 const Elf_Rela *rela = (const Elf_Rela *) rel; in reloc_jmpslot() local
582 int reloff = rela - obj->pltrela; in reloc_jmpslot()
623 const Elf_Rela *rela; in reloc_iresolve() local
629 relalim = (const Elf_Rela *)((const char *)obj->rela + obj->relasize); in reloc_iresolve()
630 for (rela = obj->rela; rela < relalim; rela++) { in reloc_iresolve()
631 if (ELF_R_TYPE(rela->r_info) == R_PPC_IRELATIVE) { in reloc_iresolve()
632 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve()
633 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve()
647 for (rela = obj->pltrela; rela < relalim; rela++) { in reloc_iresolve()
648 if (ELF_R_TYPE(rela->r_info) == R_PPC_IRELATIVE) { in reloc_iresolve()
649 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve()
650 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve()
676 const Elf_Rela *rela; in reloc_gnu_ifunc() local
684 for (rela = obj->pltrela; rela < relalim; rela++) { in reloc_gnu_ifunc()
685 if (ELF_R_TYPE(rela->r_info) == R_PPC_JMP_SLOT) { in reloc_gnu_ifunc()
686 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_gnu_ifunc()
687 def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, in reloc_gnu_ifunc()
697 (const Elf_Rel *)rela); in reloc_gnu_ifunc()