Lines Matching defs:obj

115 init_pltgot(Obj_Entry *obj)
117 if (obj->pltgot != NULL) {
118 obj->pltgot[1] = (Elf_Addr) obj;
119 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
125 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 rellim = (const Elf_Rel *)((caddr_t) obj->rel + obj->relsize);
148 for (rel = obj->rel; rel < rellim; rel++) {
157 def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj,
167 obj->non_plt_gnu_ifunc = true;
178 obj->path);
193 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
217 if (!obj->mainprog) {
219 "relocation in shared library", obj->path);
227 *where += (Elf_Addr)obj->relocbase;
243 obj->path);
261 " in non-PLT relocations\n", obj->path,
274 reloc_plt(Obj_Entry *obj)
279 rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
280 for (rel = obj->pltrel; rel < rellim; rel++) {
286 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
287 *where += (Elf_Addr)obj->relocbase;
291 obj->irelative = true;
305 reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
310 if (obj->jmpslots_done)
312 rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
313 for (rel = obj->pltrel; rel < rellim; rel++) {
320 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
321 def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj,
326 obj->gnu_ifunc = true;
330 reloc_jmpslot(where, target, defobj, obj, rel);
343 obj->jmpslots_done = true;
350 const struct Struct_Obj_Entry *obj, const struct Struct_Obj_Entry *refobj,
362 reloc_iresolve(Obj_Entry *obj, RtldLockState *lockstate)
368 if (!obj->irelative)
370 rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
371 for (rel = obj->pltrel; rel < rellim; rel++) {
374 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
376 target = call_ifunc_resolver(obj->relocbase + *where);
382 obj->irelative = false;
387 reloc_gnu_ifunc(Obj_Entry *obj, int flags, RtldLockState *lockstate)
392 if (!obj->gnu_ifunc)
394 rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
395 for (rel = obj->pltrel; rel < rellim; rel++) {
402 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
403 def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj,
412 reloc_jmpslot(where, target, defobj, obj, rel);
417 obj->gnu_ifunc = false;