Home | History | Annotate | Download | only in aarch64

Lines Matching refs:rela

146 _rtld_tlsdesc_fill(const Obj_Entry *obj, const Elf_Rela *rela, Elf_Addr *where, u_int flags)
151 unsigned long symnum = ELF_R_SYM(rela->r_info);
154 def = _rtld_find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
161 where[1] = rela->r_addend;
173 offs += rela->r_addend;
197 const Elf_Rela *rela = 0, *relalim;
204 rela = (const Elf_Rela *)(relocbase + dynp->d_un.d_ptr);
211 relalim = (const Elf_Rela *)((const uint8_t *)rela + relasz);
212 for (; rela < relalim; rela++) {
213 where = (Elf_Addr *)(relocbase + rela->r_offset);
225 for (const Elf_Rela *rela = obj->rela; rela < obj->relalim; rela++) {
230 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
232 switch (ELF_R_TYPE(rela->r_info)) {
238 symnum = ELF_R_SYM(rela->r_info);
251 switch (ELF_R_TYPE(rela->r_info)) {
258 rela->r_addend;
269 obj->ifunc_remaining_nonplt = obj->relalim - rela;
275 *where = (Elf_Addr)(obj->relocbase + rela->r_addend);
297 _rtld_tlsdesc_fill(obj, rela, where, 0);
301 *where = (Elf_Addr)(def->st_value + rela->r_addend);
322 rela->r_addend + sizeof(struct tls_tcb));
332 (u_long)ELF_R_SYM(rela->r_info),
333 (u_long)ELF_R_TYPE(rela->r_info),
334 (void *)rela->r_offset, (void *)rela->r_addend,
338 obj->path, (u_long) ELF_R_TYPE(rela->r_info));
352 for (const Elf_Rela *rela = obj->pltrela; rela < obj->pltrelalim; rela++) {
353 Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
355 assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JUMP_SLOT) ||
356 ELF_R_TYPE(rela->r_info) == R_TYPE(TLSDESC) ||
357 ELF_R_TYPE(rela->r_info) == R_TYPE(IRELATIVE));
359 switch (ELF_R_TYPE(rela->r_info)) {
366 _rtld_tlsdesc_fill(obj, rela, where, SYMLOOK_IN_PLT);
369 obj->ifunc_remaining = obj->pltrelalim - rela;
380 const Elf_Rela *rela;
384 rela = obj->pltrelalim - obj->ifunc_remaining;
386 if (ELF_R_TYPE(rela->r_info) == R_TYPE(IRELATIVE)) {
387 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
388 target = (Elf_Addr)(obj->relocbase + rela->r_addend);
399 _rtld_relocate_plt_object(const Obj_Entry *obj, const Elf_Rela *rela,
402 Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
407 switch (ELF_R_TYPE(rela->r_info)) {
409 def = _rtld_find_plt_symdef(ELF_R_SYM(rela->r_info), obj,
433 _rtld_tlsdesc_fill(obj, rela, where, SYMLOOK_IN_PLT);
443 const Elf_Rela *rela = obj->pltrela + relaidx;
447 int err = _rtld_relocate_plt_object(obj, rela, &new_value);
457 const Elf_Rela *rela;
460 for (rela = obj->pltrela; rela < obj->pltrelalim; rela++) {
461 err = _rtld_relocate_plt_object(obj, rela, NULL);