Lines Matching defs:obj

114 init_pltgot(Obj_Entry *obj)
116 if (obj->pltgot != NULL) {
117 obj->pltgot[1] = (Elf_Addr) obj;
118 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
124 reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags,
141 if (obj != obj_rtld) {
142 cache = calloc(obj->dynsymcount, sizeof(SymCache));
147 relalim = (const Elf_Rela *)((caddr_t)obj->rela + obj->relasize);
148 for (rela = obj->rela; rela < relalim; rela++) {
162 def = find_symdef(ELF_R_SYM(rela->r_info), obj,
182 obj->non_plt_gnu_ifunc = true;
194 obj->path);
209 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
235 if (!obj->mainprog) {
237 "relocation in shared library", obj->path);
257 obj->path);
277 obj->path);
295 *where = (Elf_Addr)(obj->relocbase + rela->r_addend);
304 " in non-PLT relocations\n", obj->path,
317 reloc_plt(Obj_Entry *obj)
322 relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
323 for (rela = obj->pltrela; rela < relalim; rela++) {
329 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
330 *where += (Elf_Addr)obj->relocbase;
334 obj->irelative = true;
348 reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
353 if (obj->jmpslots_done)
355 relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
356 for (rela = obj->pltrela; rela < relalim; rela++) {
363 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
364 def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
369 obj->gnu_ifunc = true;
373 reloc_jmpslot(where, target, defobj, obj, (const Elf_Rel *)rela);
385 obj->jmpslots_done = true;
390 reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate)
395 if (!obj->irelative)
397 relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
398 for (rela = obj->pltrela; rela < relalim; rela++) {
406 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend);
407 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
415 obj->irelative = false;
420 reloc_gnu_ifunc(Obj_Entry *obj, int flags, RtldLockState *lockstate)
425 if (!obj->gnu_ifunc)
427 relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
428 for (rela = obj->pltrela; rela < relalim; rela++) {
435 where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
436 def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
445 reloc_jmpslot(where, target, defobj, obj, (const Elf_Rel *)rela);
449 obj->gnu_ifunc = false;