| /src/libexec/ld.elf_so/arch/powerpc/ |
| ppc_reloc.c | 108 * For powerpc64, just copy the function descriptor to pltgot[0]. 110 if (obj->pltgot != NULL) { 111 obj->pltgot[0] = (Elf_Addr) _rtld_bind_start[0]; 112 obj->pltgot[1] = (Elf_Addr) _rtld_bind_start[1]; 113 obj->pltgot[2] = (Elf_Addr) obj; 140 dbg(("obj %s bss-plt pltgot=%p jmptab=%u start=%p obj=%p", 141 obj->path, obj->pltgot, 18 + N * 2, 144 pltcall = obj->pltgot; 151 pltresolve = obj->pltgot + 8; 385 Elf_Addr * const pltresolve = obj->pltgot + 8 [all...] |
| /src/libexec/ld.elf_so/arch/or1k/ |
| mdreloc.c | 62 obj->pltgot[1] = (Elf_Addr) obj; 63 obj->pltgot[2] = (Elf_Addr) _rtld_bind_start; 65 dbg(("obj %s plt pltgot=%p start=%p obj=%p", 66 obj->path, obj->pltgot, 67 (void *) obj->pltgot[1], (void *) obj->pltgot[2])); 259 assert(where >= (Elf_Word *)obj->pltgot); 260 assert(where < (Elf_Word *)obj->pltgot + (obj->pltrelalim - obj->pltrela));
|
| /src/libexec/ld.elf_so/arch/alpha/ |
| alpha_reloc.c | 95 * If we're using Alpha secureplt, the PLTGOT points to the 101 obj->pltgot[0] = (Elf_Addr) _rtld_bind_start_secureplt; 102 obj->pltgot[1] = (Elf_Addr) obj; 107 * The non-secureplt PLTGOT on the Alpha looks like this: 146 word0 = *(uint32_t *)(((char *) obj->pltgot) + 32); 150 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start_old; 151 obj->pltgot[3] = (Elf_Addr) obj; 155 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start; 156 obj->pltgot[3] = (Elf_Addr) obj; 437 * we *can* (and do) patch up this PLT entry; the PLTGOT [all...] |
| /src/libexec/ld.elf_so/arch/hppa/ |
| hppa_reloc.c | 187 Elf_Addr *pltgot; local 201 pltgot = NULL; 220 pltgot = (Elf_Addr *) 277 plabel->hppa_plabel_sl = (Elf_Addr)pltgot; 359 func_sl = (Elf_Addr)(defobj->pltgot); 400 Elf_Word *got = obj->pltgot; 444 hdbg(("setting DP to %p", obj->pltgot)); 445 _rtld_set_dp(obj->pltgot); 640 func_sl = (Elf_Addr)(obj->pltgot); 655 func_pc = ((Elf_Addr)(obj->pltgot)) - 16 [all...] |
| /src/libexec/ld.elf_so/arch/sparc64/ |
| mdreloc.c | 234 _rtld_install_plt(Elf_Word *pltgot, Elf_Addr proc) 236 pltgot[0] = SAVE; 237 pltgot[1] = SETHI_l0 | HIVAL(proc, 42); 238 pltgot[2] = SETHI_l1 | HIVAL(proc, 10); 239 pltgot[3] = OR_l0_l0 | LOVAL(proc, 32); 240 pltgot[4] = SLLX_l0_32_l0; 241 pltgot[5] = OR_l0_l1_l0; 242 pltgot[6] = JMPL_l0_o0 | LOVAL(proc, 0); 243 pltgot[7] = MOV_g1_o1; 267 Elf_Word *entry = (Elf_Word *)obj->pltgot; [all...] |
| /src/libexec/ld.elf_so/arch/mips/ |
| mips_reloc.c | 148 obj->pltgot[0] = (Elf_Addr) &_rtld_bind_start; 149 /* XXX only if obj->pltgot[1] & 0x80000000 ?? */ 150 obj->pltgot[1] = (Elf_Addr) obj; 250 Elf_Addr *got = obj->pltgot; 335 got = obj->pltgot; 510 Elf_Addr *got = obj->pltgot;
|
| /src/libexec/ld.elf_so/arch/sparc/ |
| mdreloc.c | 170 * PLTGOT is the PLT on the sparc. 180 obj->pltgot[0] = SAVE; 181 obj->pltgot[1] = CALL | 182 ((Elf_Addr) &_rtld_bind_start - (Elf_Addr) &obj->pltgot[1]) >> 2; 183 obj->pltgot[2] = NOP; 184 obj->pltgot[3] = (Elf_Addr) obj;
|
| /src/libexec/ld.elf_so/arch/m68k/ |
| mdreloc.c | 67 obj->pltgot[1] = (Elf_Addr) obj; 68 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/arch/riscv/ |
| mdreloc.c | 65 obj->pltgot[0] = (Elf_Addr) &_rtld_bind_start; 66 obj->pltgot[1] = (Elf_Addr) obj;
|
| /src/libexec/ld.elf_so/arch/vax/ |
| mdreloc.c | 53 obj->pltgot[1] = (Elf_Addr) obj; 54 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start; 184 rdbg(("lazy fixup pltgot %p in %s --> %p", where, obj->path, 216 rdbg(("bind now/fixup pltgot %p in %s --> old=%p new=%p", where,
|
| /src/libexec/ld.elf_so/arch/aarch64/ |
| mdreloc.c | 120 * adrp x16, PLTGOT + n * 8 121 * ldr x17, [x16, PLTGOT + n * 8] 122 * add x16, x16, :lo12:PLTGOT + n * 8 129 obj->pltgot[1] = (Elf_Addr) obj; 130 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/arch/arm/ |
| mdreloc.c | 30 obj->pltgot[1] = (Elf_Addr) obj; 31 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/arch/i386/ |
| mdreloc.c | 78 obj->pltgot[1] = (Elf_Addr) obj; 79 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/arch/sh3/ |
| mdreloc.c | 63 obj->pltgot[1] = (Elf_Addr) obj; 64 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/arch/x86_64/ |
| mdreloc.c | 112 obj->pltgot[1] = (Elf_Addr) obj; 113 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
|
| /src/libexec/ld.elf_so/ |
| reloc.c | 323 dbg(("fixing up PLTGOT")); 324 /* Set the special PLTGOT entries. */ 325 if (obj->pltgot != NULL)
|
| rtld.h | 168 Elf_Addr *pltgot; /* PLTGOT table */ member in struct:Struct_Obj_Entry
|
| headers.c | 280 obj->pltgot = (Elf_Addr *)
|
| rtld.c | 406 assert(!_rtld_objself.pltgot);
|