Lines Matching refs:obj
62 init_pltgot(Obj_Entry *obj) in init_pltgot() argument
64 if (obj->pltgot != NULL) { in init_pltgot()
65 obj->pltgot[1] = (Elf_Addr) obj; in init_pltgot()
66 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start; in init_pltgot()
179 reloc_nonplt_object(Obj_Entry *obj, const Elf_Rel *rel, SymCache *cache, in reloc_nonplt_object() argument
188 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_nonplt_object()
206 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
210 tmp = (Elf_Addr)obj->relocbase + def->st_value in reloc_nonplt_object()
217 obj->path, where, in reloc_nonplt_object()
218 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
225 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
226 obj->path, (void *)*where, where, defobj->path); in reloc_nonplt_object()
233 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
248 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
249 obj->path, (void *)tmp, where, defobj->path); in reloc_nonplt_object()
254 tmp = *where + (Elf_Addr)obj->relocbase; in reloc_nonplt_object()
258 (Elf_Addr)obj->relocbase; in reloc_nonplt_object()
261 dbg("RELATIVE in %s --> %p", obj->path, in reloc_nonplt_object()
272 if (!obj->mainprog) { in reloc_nonplt_object()
275 obj->path); in reloc_nonplt_object()
282 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
294 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
295 obj->path, (void *)tmp); in reloc_nonplt_object()
299 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
311 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
312 obj->path, (void *)tmp); in reloc_nonplt_object()
317 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
322 if (!defobj->tls_done && !allocate_tls_offset(obj)) in reloc_nonplt_object()
331 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
332 obj->path, (void *)tmp); in reloc_nonplt_object()
341 obj->strtab + obj->symtab[symnum].st_name); in reloc_nonplt_object()
344 obj->path, (u_long) ELF_R_TYPE(rel->r_info)); in reloc_nonplt_object()
354 reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, in reloc_non_plt() argument
363 if (obj == obj_rtld) in reloc_non_plt()
373 cache = calloc(obj->dynsymcount, sizeof(SymCache)); in reloc_non_plt()
376 rellim = (const Elf_Rel *)((const char *)obj->rel + obj->relsize); in reloc_non_plt()
377 for (rel = obj->rel; rel < rellim; rel++) { in reloc_non_plt()
378 if (reloc_nonplt_object(obj, rel, cache, flags, lockstate) < 0) in reloc_non_plt()
392 reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) in reloc_plt() argument
397 rellim = (const Elf_Rel *)((const char *)obj->pltrel + in reloc_plt()
398 obj->pltrelsize); in reloc_plt()
399 for (rel = obj->pltrel; rel < rellim; rel++) { in reloc_plt()
404 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_plt()
405 *where += (Elf_Addr )obj->relocbase; in reloc_plt()
415 reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate) in reloc_jmpslots() argument
424 rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize); in reloc_jmpslots()
425 for (rel = obj->pltrel; rel < rellim; rel++) { in reloc_jmpslots()
427 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_jmpslots()
428 def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, in reloc_jmpslots()
436 reloc_jmpslot(where, target, defobj, obj, in reloc_jmpslots()
440 obj->jmpslots_done = true; in reloc_jmpslots()
446 reloc_iresolve(Obj_Entry *obj __unused, in reloc_iresolve()
455 reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, in reloc_gnu_ifunc()
465 const Obj_Entry *defobj __unused, const Obj_Entry *obj __unused, in reloc_jmpslot()