Lines Matching refs:obj

67 _rtld_digest_dynamic(const char *execname, Obj_Entry *obj)  in _rtld_digest_dynamic()  argument
70 Needed_Entry **needed_tail = &obj->needed; in _rtld_digest_dynamic()
81 dbg(("headers: digesting PT_DYNAMIC at %p", obj->dynamic)); in _rtld_digest_dynamic()
82 for (dynp = obj->dynamic; dynp->d_tag != DT_NULL; ++dynp) { in _rtld_digest_dynamic()
87 obj->rel = (const Elf_Rel *) in _rtld_digest_dynamic()
88 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
108 obj->rela = (const Elf_Rela *) in _rtld_digest_dynamic()
109 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
127 obj->symtab = (const Elf_Sym *) in _rtld_digest_dynamic()
128 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
136 obj->strtab = (const char *) in _rtld_digest_dynamic()
137 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
141 obj->strsize = dynp->d_un.d_val; in _rtld_digest_dynamic()
145 obj->verneed = (const Elf_Verneed *) in _rtld_digest_dynamic()
146 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
150 obj->verneednum = dynp->d_un.d_val; in _rtld_digest_dynamic()
154 obj->verdef = (const Elf_Verdef *) in _rtld_digest_dynamic()
155 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
159 obj->verdefnum = dynp->d_un.d_val; in _rtld_digest_dynamic()
163 obj->versyms = (const Elf_Versym *) in _rtld_digest_dynamic()
164 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
170 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
173 obj->nbuckets = UINT32_MAX; in _rtld_digest_dynamic()
175 obj->nbuckets = hashtab[0]; in _rtld_digest_dynamic()
176 obj->nchains = hashtab[1]; in _rtld_digest_dynamic()
177 obj->buckets = hashtab + 2; in _rtld_digest_dynamic()
178 obj->chains = obj->buckets + obj->nbuckets; in _rtld_digest_dynamic()
183 if (obj->nbuckets) { in _rtld_digest_dynamic()
184 fast_divide32_prepare(obj->nbuckets, in _rtld_digest_dynamic()
185 &obj->nbuckets_m, in _rtld_digest_dynamic()
186 &obj->nbuckets_s1, in _rtld_digest_dynamic()
187 &obj->nbuckets_s2); in _rtld_digest_dynamic()
197 nep->obj = NULL; in _rtld_digest_dynamic()
206 obj->pltgot = (Elf_Addr *) in _rtld_digest_dynamic()
207 (obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
211 obj->textrel = true; in _rtld_digest_dynamic()
215 obj->symbolic = true; in _rtld_digest_dynamic()
239 obj->init_array = in _rtld_digest_dynamic()
240 (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
242 obj->init_array)); in _rtld_digest_dynamic()
246 obj->init_arraysz = dynp->d_un.d_val / sizeof(fptr_t); in _rtld_digest_dynamic()
248 obj->init_arraysz)); in _rtld_digest_dynamic()
260 obj->fini_array = in _rtld_digest_dynamic()
261 (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
263 obj->fini_array)); in _rtld_digest_dynamic()
267 obj->fini_arraysz = dynp->d_un.d_val / sizeof(fptr_t); in _rtld_digest_dynamic()
269 obj->fini_arraysz)); in _rtld_digest_dynamic()
288 obj->local_gotno = dynp->d_un.d_val; in _rtld_digest_dynamic()
292 obj->symtabno = dynp->d_un.d_val; in _rtld_digest_dynamic()
296 obj->gotsym = dynp->d_un.d_val; in _rtld_digest_dynamic()
309 obj->glink = (Elf_Addr)(uintptr_t)obj->relocbase + dynp->d_un.d_ptr; in _rtld_digest_dynamic()
313 obj->gotptr = (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); in _rtld_digest_dynamic()
318 obj->z_now = in _rtld_digest_dynamic()
320 obj->z_nodelete = in _rtld_digest_dynamic()
322 obj->z_initfirst = in _rtld_digest_dynamic()
324 obj->z_noopen = in _rtld_digest_dynamic()
330 obj->rellim = (const Elf_Rel *)((const uint8_t *)obj->rel + relsz); in _rtld_digest_dynamic()
331 obj->relalim = (const Elf_Rela *)((const uint8_t *)obj->rela + relasz); in _rtld_digest_dynamic()
333 obj->pltrel = (const Elf_Rel *)(obj->relocbase + pltrel); in _rtld_digest_dynamic()
334 obj->pltrellim = (const Elf_Rel *)(obj->relocbase + pltrel + pltrelsz); in _rtld_digest_dynamic()
335 obj->pltrelalim = 0; in _rtld_digest_dynamic()
338 if (obj->rellim && obj->pltrel && in _rtld_digest_dynamic()
339 obj->rellim > obj->pltrel && in _rtld_digest_dynamic()
340 obj->rellim <= obj->pltrellim) in _rtld_digest_dynamic()
341 obj->rellim = obj->pltrel; in _rtld_digest_dynamic()
343 obj->pltrela = (const Elf_Rela *)(obj->relocbase + pltrel); in _rtld_digest_dynamic()
344 obj->pltrellim = 0; in _rtld_digest_dynamic()
345 obj->pltrelalim = (const Elf_Rela *)(obj->relocbase + pltrel + pltrelsz); in _rtld_digest_dynamic()
348 if (obj->relalim && obj->pltrela && in _rtld_digest_dynamic()
349 obj->relalim > obj->pltrela && in _rtld_digest_dynamic()
350 obj->relalim <= obj->pltrelalim) in _rtld_digest_dynamic()
351 obj->relalim = obj->pltrela; in _rtld_digest_dynamic()
356 obj->init = (Elf_Addr) obj->relocbase + init; in _rtld_digest_dynamic()
358 obj->fini = (Elf_Addr) obj->relocbase + fini; in _rtld_digest_dynamic()
362 _rtld_add_paths(execname, &obj->rpaths, obj->strtab + in _rtld_digest_dynamic()
366 _rtld_object_add_name(obj, obj->strtab + in _rtld_digest_dynamic()
380 Obj_Entry *obj; in _rtld_digest_phdr() local
386 obj = _rtld_obj_new(); in _rtld_digest_phdr()
392 obj->phdr = (void *)(uintptr_t)ph->p_vaddr; in _rtld_digest_phdr()
393 obj->phsize = ph->p_memsz; in _rtld_digest_phdr()
394 obj->relocbase = (caddr_t)((uintptr_t)phdr - (uintptr_t)ph->p_vaddr); in _rtld_digest_phdr()
396 obj->phdr, phdr, obj->phsize, obj->relocbase)); in _rtld_digest_phdr()
401 vaddr = (Elf_Addr)(uintptr_t)(obj->relocbase + ph->p_vaddr); in _rtld_digest_phdr()
405 obj->interp = (const char *)(uintptr_t)vaddr; in _rtld_digest_phdr()
414 obj->vaddrbase = round_down(vaddr); in _rtld_digest_phdr()
415 obj->mapbase = (caddr_t)(uintptr_t)obj->vaddrbase; in _rtld_digest_phdr()
416 obj->textsize = round_up(vaddr + ph->p_memsz) - in _rtld_digest_phdr()
417 obj->vaddrbase; in _rtld_digest_phdr()
419 obj->mapsize = round_up(vaddr + ph->p_memsz) - in _rtld_digest_phdr()
420 obj->vaddrbase; in _rtld_digest_phdr()
429 obj->dynamic = (Elf_Dyn *)(uintptr_t)vaddr; in _rtld_digest_phdr()
437 obj->tlsindex = 1; in _rtld_digest_phdr()
438 obj->tlssize = ph->p_memsz; in _rtld_digest_phdr()
439 obj->tlsalign = ph->p_align; in _rtld_digest_phdr()
440 obj->tlsinitsize = ph->p_filesz; in _rtld_digest_phdr()
441 obj->tlsinit = (void *)(uintptr_t)ph->p_vaddr; in _rtld_digest_phdr()
449 obj->exidx_start = (void *)(uintptr_t)vaddr; in _rtld_digest_phdr()
450 obj->exidx_sz = ph->p_memsz; in _rtld_digest_phdr()
460 obj->entry = entry; in _rtld_digest_phdr()
461 return obj; in _rtld_digest_phdr()