• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/libexec/rtld-elf/mips/

Lines Matching defs:obj

95 init_pltgot(Obj_Entry *obj)
98 if (obj->pltgot != NULL) {
99 obj->pltgot[0] = (Elf_Addr) &_rtld_bind_start;
100 if (GOT1_RESERVED_FOR_RTLD(obj->pltgot))
101 obj->pltgot[1] = (Elf_Addr) obj | GOT1_MASK;
103 if (obj->mips_pltgot != NULL) {
104 obj->mips_pltgot[0] = (Elf_Addr) &_rtld_pltbind_start;
105 obj->mips_pltgot[1] = (Elf_Addr) obj;
312 _mips_rtld_bind(Obj_Entry *obj, Elf_Size reloff)
314 Elf_Addr *got = obj->pltgot;
325 where = &got[obj->local_gotno + reloff - obj->gotsym];
326 def = find_symdef(reloff, obj, &defobj, SYMLOOK_IN_PLT, NULL,
333 obj->path,
343 reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags,
348 Elf_Addr *got = obj->pltgot;
357 if (obj == obj_rtld)
366 sym = obj->symtab;
370 dbg("%s: broken=%d", obj->path, broken);
378 got, obj->local_gotno, obj->relocbase);
379 for (; i < obj->local_gotno; i++) {
380 *got += (Elf_Addr)obj->relocbase;
383 sym = obj->symtab + obj->gotsym;
386 got, obj->symtabno);
388 for (i = obj->gotsym; i < obj->symtabno; i++) {
389 dbg(" doing got %d sym %p (%s, %lx)", i - obj->gotsym, sym,
390 sym->st_name + obj->strtab, (u_long) *got);
407 def = find_symdef(i, obj, &defobj, flags, NULL,
431 *got = sym->st_value + (Elf_Addr)obj->relocbase;
432 if ((Elf_Addr)(*got) == (Elf_Addr)obj->relocbase) {
434 i, obj->relocbase);
441 (Elf_Addr)obj->relocbase;
442 if ((Elf_Addr)(*got) == (Elf_Addr)obj->relocbase) {
444 i, obj->relocbase);
449 def = find_symdef(i, obj, &defobj, flags, NULL,
456 if ((Elf_Addr)(*got) == (Elf_Addr)obj->relocbase) {
458 i, obj->relocbase);
459 dbg("via first obj symbol %s",
460 obj->strtab + obj->symtab[i].st_name);
461 dbg("found in obj %p:%s",
471 got = obj->pltgot;
472 rellim = (const Elf_Rel *)((const char *)obj->rel + obj->relsize);
473 for (rel = obj->rel; rel < rellim; rel++) {
477 where = obj->relocbase + rel->r_offset;
494 def = obj->symtab + r_symndx;
496 if (r_symndx >= obj->gotsym) {
497 val += got[obj->local_gotno + r_symndx - obj->gotsym];
500 obj->strtab + def->st_name,
501 obj->path);
527 val += (Elf_Addr)obj->relocbase;
531 obj->strtab + def->st_name, obj->path);
544 if (!obj->mainprog) {
546 "relocation in shared library", obj->path);
562 def = find_symdef(r_symndx, obj, &defobj, flags, NULL,
571 obj->strtab + obj->symtab[r_symndx].st_name,
572 obj->path, (void *)old, (void*)val, defobj->path);
586 def = find_symdef(r_symndx, obj, &defobj, flags, NULL,
591 if (!defobj->tls_done && !allocate_tls_offset(obj))
598 obj->strtab + obj->symtab[r_symndx].st_name,
599 obj->path, (void*)old, (void *)val, defobj->path);
613 def = find_symdef(r_symndx, obj, &defobj, flags, NULL,
619 if (!defobj->tls_done && !allocate_tls_offset(obj))
627 obj->strtab + obj->symtab[r_symndx].st_name,
628 obj->path, (void*)old, (void *)val, defobj->path);
640 obj->strtab + obj->symtab[r_symndx].st_name);
643 obj->path, (u_long) ELF_R_TYPE(rel->r_info));
655 reloc_plt(Obj_Entry *obj, int flags __unused, RtldLockState *lockstate __unused)
660 rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize);
661 for (rel = obj->pltrel; rel < rellim; rel++) {
666 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
667 *where += (Elf_Addr )obj->relocbase;
683 reloc_jmpslots(Obj_Entry *obj, int flags, RtldLockState *lockstate)
690 rellim = (const Elf_Rel *)((const char *)obj->pltrel + obj->pltrelsize);
691 for (rel = obj->pltrel; rel < rellim; rel++) {
696 def = find_symdef(ELF_R_SYM(rel->r_info), obj,
703 where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
717 reloc_iresolve(Obj_Entry *obj __unused,
726 reloc_iresolve_nonplt(Obj_Entry *obj __unused,
735 reloc_gnu_ifunc(Obj_Entry *obj __unused, int flags __unused,
745 const Obj_Entry *defobj __unused, const Obj_Entry *obj __unused,