Lines Matching refs:obj
21 init_pltgot(Obj_Entry *obj) in init_pltgot() argument
23 if (obj->pltgot != NULL) { in init_pltgot()
24 obj->pltgot[1] = (Elf_Addr) obj; in init_pltgot()
25 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start; in init_pltgot()
136 reloc_nonplt_object(Obj_Entry *obj, const Elf_Rel *rel, SymCache *cache, in reloc_nonplt_object() argument
145 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_nonplt_object()
163 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
167 tmp = (Elf_Addr)obj->relocbase + def->st_value in reloc_nonplt_object()
174 obj->path, where, in reloc_nonplt_object()
175 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
182 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
183 obj->path, (void *)*where, where, defobj->path); in reloc_nonplt_object()
190 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
205 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
206 obj->path, (void *)tmp, where, defobj->path); in reloc_nonplt_object()
211 tmp = *where + (Elf_Addr)obj->relocbase; in reloc_nonplt_object()
215 (Elf_Addr)obj->relocbase; in reloc_nonplt_object()
218 dbg("RELATIVE in %s --> %p", obj->path, in reloc_nonplt_object()
229 if (!obj->mainprog) { in reloc_nonplt_object()
232 obj->path); in reloc_nonplt_object()
239 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
251 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
252 obj->path, (void *)tmp); in reloc_nonplt_object()
256 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
268 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
269 obj->path, (void *)tmp); in reloc_nonplt_object()
274 def = find_symdef(symnum, obj, &defobj, flags, cache, in reloc_nonplt_object()
279 if (!defobj->tls_static && !allocate_tls_offset(obj)) in reloc_nonplt_object()
288 obj->strtab + obj->symtab[symnum].st_name, in reloc_nonplt_object()
289 obj->path, (void *)tmp); in reloc_nonplt_object()
298 obj->strtab + obj->symtab[symnum].st_name); in reloc_nonplt_object()
301 obj->path, (u_long) ELF_R_TYPE(rel->r_info)); in reloc_nonplt_object()
311 reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, in reloc_non_plt() argument
320 if (obj == obj_rtld) in reloc_non_plt()
330 cache = calloc(obj->dynsymcount, sizeof(SymCache)); in reloc_non_plt()
333 rellim = (const Elf_Rel *)((const char *)obj->rel + obj->relsize); in reloc_non_plt()
334 for (rel = obj->rel; rel < rellim; rel++) { in reloc_non_plt()
335 if (reloc_nonplt_object(obj, rel, cache, flags, lockstate) < 0) in reloc_non_plt()
349 reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused) in reloc_plt() argument
354 rellim = (const Elf_Rel *)((const char *)obj->pltrel + in reloc_plt()
355 obj->pltrelsize); in reloc_plt()
356 for (rel = obj->pltrel; rel < rellim; rel++) { in reloc_plt()
361 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_plt()
362 *where += (Elf_Addr )obj->relocbase; in reloc_plt()
372 reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate) in reloc_jmpslots() argument
381 rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize); in reloc_jmpslots()
382 for (rel = obj->pltrel; rel < rellim; rel++) { in reloc_jmpslots()
384 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_jmpslots()
385 def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, in reloc_jmpslots()
393 reloc_jmpslot(where, target, defobj, obj, in reloc_jmpslots()
397 obj->jmpslots_done = true; in reloc_jmpslots()
403 reloc_iresolve(Obj_Entry *obj __unused, in reloc_iresolve()
412 reloc_iresolve_nonplt(Obj_Entry *obj __unused, in reloc_iresolve_nonplt()
421 reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused, in reloc_gnu_ifunc()
431 const Obj_Entry *defobj __unused, const Obj_Entry *obj __unused, in reloc_jmpslot()