/freebsd/sys/powerpc/powerpc/ |
H A D | elf32_machdep.c | 180 void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); 236 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 253 where = (Elf_Addr *) ((uintptr_t)relocbase + rela->r_offset); in elf_reloc_internal() 254 hwhere = (Elf_Half *) ((uintptr_t)relocbase + rela->r_offset); in elf_reloc_internal() 283 if (addr > relocbase && addr <= (relocbase + addend)) in elf_reloc_internal() 284 addr = relocbase; in elf_reloc_internal() 298 if (addr > relocbase && addr <= (relocbase + addend)) in elf_reloc_internal() 299 addr = relocbase; in elf_reloc_internal() 306 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 324 addr = relocbase + addend; in elf_reloc_internal() [all …]
|
H A D | elf64_machdep.c | 205 void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); 326 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 342 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 364 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 378 addr = relocbase + addend; in elf_reloc_internal() 393 elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase) in elf_reloc_self() argument 405 rela = (Elf_Rela *)(relocbase+dynp->d_un.d_ptr); in elf_reloc_self() 420 where = (Elf_Addr *)(relocbase + rela->r_offset); in elf_reloc_self() 421 *where = (Elf_Addr)(relocbase + rela->r_addend); in elf_reloc_self() 426 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument [all …]
|
/freebsd/libexec/rtld-elf/powerpc64/ |
H A D | reloc.c | 59 obj->glink = (Elf_Addr)(obj->relocbase + dynp->d_un.d_ptr); in arch_digest_dynamic() 97 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 122 srcaddr = (const void *)(defobj->relocbase+srcsym->st_value); in do_copy_relocations() 135 reloc_non_plt_self(Elf_Dyn *dynp, Elf_Addr relocbase) in reloc_non_plt_self() argument 147 rela = (const Elf_Rela *)(relocbase+dynp->d_un.d_ptr); in reloc_non_plt_self() 160 where = (Elf_Addr *)(relocbase + rela->r_offset); in reloc_non_plt_self() 161 *where = (Elf_Addr)(relocbase + rela->r_addend); in reloc_non_plt_self() 225 symval = (Elf_Addr)defobj->relocbase + in reloc_nonplt_object() 234 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_nonplt_object() 277 symval = (Elf_Addr)(obj->relocbase + rela->r_addend); in reloc_nonplt_object() [all …]
|
/freebsd/libexec/rtld-elf/arm/ |
H A D | reloc.c | 49 dstaddr = (void *)(dstobj->relocbase + rel->r_offset); in do_copy_relocations() 75 srcaddr = (const void *)(defobj->relocbase + in do_copy_relocations() 87 _rtld_relocate_nonplt_self(Elf_Dyn *dynp, Elf_Addr relocbase) in _rtld_relocate_nonplt_self() argument 96 rel = (const Elf_Rel *)(relocbase + dynp->d_un.d_ptr); in _rtld_relocate_nonplt_self() 105 where = (Elf_Addr *)(relocbase + rel->r_offset); in _rtld_relocate_nonplt_self() 107 *where += (Elf_Addr)relocbase; in _rtld_relocate_nonplt_self() 144 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_nonplt_object() 166 tmp = (Elf_Addr)obj->relocbase + def->st_value in reloc_nonplt_object() 194 tmp = *where + (Elf_Addr)defobj->relocbase + in reloc_nonplt_object() 199 (Elf_Addr)defobj->relocbase + in reloc_nonplt_object() [all …]
|
/freebsd/libexec/rtld-elf/powerpc/ |
H A D | reloc.c | 64 obj->gotptr = (Elf_Addr *)(obj->relocbase + dynp->d_un.d_ptr); in arch_digest_dynamic() 102 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 127 srcaddr = (const void *)(defobj->relocbase+srcsym->st_value); in do_copy_relocations() 140 reloc_non_plt_self(Elf_Dyn *dynp, Elf_Addr relocbase) in reloc_non_plt_self() argument 152 rela = (const Elf_Rela *)(relocbase+dynp->d_un.d_ptr); in reloc_non_plt_self() 165 where = (Elf_Addr *)(relocbase + rela->r_offset); in reloc_non_plt_self() 166 *where = (Elf_Addr)(relocbase + rela->r_addend); in reloc_non_plt_self() 231 symval = (Elf_Addr)defobj->relocbase + in reloc_nonplt_object() 239 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_nonplt_object() 282 symval = (Elf_Addr)(obj->relocbase + rela->r_addend); in reloc_nonplt_object() [all …]
|
H A D | rtld_start.S | 67 sub %r28,%r3,%r28 # r28 = relocbase 68 mr %r4,%r28 # r4 = relocbase
|
/freebsd/sys/i386/i386/ |
H A D | elf_machdep.c | 173 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 187 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 194 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 205 addr = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 257 addr = relocbase + addend; in elf_reloc_internal() 272 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 276 return (elf_reloc_internal(lf, relocbase, data, type, lookup, 0)); in elf_reloc() 280 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 284 return (elf_reloc_internal(lf, relocbase, data, type, lookup, in elf_reloc_local()
|
/freebsd/sys/arm64/arm64/ |
H A D | elf_machdep.c | 197 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 211 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 218 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 236 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 276 addr = relocbase + addend; in elf_reloc_internal() 290 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 294 return (elf_reloc_internal(lf, relocbase, data, type, in elf_reloc_local() 300 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 304 return (elf_reloc_internal(lf, relocbase, data, type, 0, lookup)); in elf_reloc() 308 elf_reloc_late(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_late() argument [all …]
|
/freebsd/libexec/rtld-elf/riscv/ |
H A D | reloc.c | 102 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 127 srcaddr = (const void *)(defobj->relocbase + srcsym->st_value); in do_copy_relocations() 148 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt() 152 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 183 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots() 198 *where = (Elf_Addr)(defobj->relocbase + def->st_value); in reloc_jmpslots() 216 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve_one() 217 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve_one() 277 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_gnu_ifunc() 337 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_non_plt() [all …]
|
H A D | rtld_machdep.h | 68 ((defobj)->relocbase + (def)->st_value)
|
/freebsd/sys/amd64/amd64/ |
H A D | elf_machdep.c | 278 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() 293 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 310 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 380 addr = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 387 addr = relocbase + addend; in elf_reloc_internal() 402 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() 406 return (elf_reloc_internal(lf, relocbase, data, type, false, lookup)); 410 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() 414 return (elf_reloc_internal(lf, relocbase, data, type, false, lookup)); 418 elf_reloc_late(linker_file_t lf, Elf_Addr relocbase, cons in elf_reloc_late() 276 elf_reloc_internal(linker_file_t lf,Elf_Addr relocbase,const void * data,int type,bool late_ifunc,elf_lookup_fn lookup) elf_reloc_internal() argument 400 elf_reloc(linker_file_t lf,Elf_Addr relocbase,const void * data,int type,elf_lookup_fn lookup) elf_reloc() argument 408 elf_reloc_local(linker_file_t lf,Elf_Addr relocbase,const void * data,int type,elf_lookup_fn lookup) elf_reloc_local() argument 416 elf_reloc_late(linker_file_t lf,Elf_Addr relocbase,const void * data,int type,elf_lookup_fn lookup) elf_reloc_late() argument [all...] |
/freebsd/sys/arm/arm/ |
H A D | elf_machdep.c | 186 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 200 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 207 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 218 addr = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 265 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 269 return (elf_reloc_internal(lf, relocbase, data, type, 0, lookup)); in elf_reloc() 273 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 277 return (elf_reloc_internal(lf, relocbase, data, type, 1, lookup)); in elf_reloc_local()
|
/freebsd/libexec/rtld-elf/i386/ |
H A D | reloc.c | 82 dstaddr = (void *)(dstobj->relocbase + rel->r_offset); in do_copy_relocations() 109 srcaddr = (const void *)(defobj->relocbase + in do_copy_relocations() 194 symval = (Elf_Addr)defobj->relocbase + in reloc_non_plt() 203 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_non_plt() 238 *where += (Elf_Addr)obj->relocbase; in reloc_non_plt() 301 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_plt() 302 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 335 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_jmpslots() 344 target = (Elf_Addr)(defobj->relocbase + def->st_value); in reloc_jmpslots() 378 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in reloc_iresolve_one() [all …]
|
/freebsd/libexec/rtld-elf/amd64/ |
H A D | reloc.c | 85 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 111 srcaddr = (const void *)(defobj->relocbase + in do_copy_relocations() 212 symval = (Elf_Addr)defobj->relocbase + in reloc_non_plt() 221 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_non_plt() 311 *where = (Elf_Addr)(obj->relocbase + rela->r_addend); in reloc_non_plt() 350 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt() 351 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 385 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots() 394 target = (Elf_Addr)(defobj->relocbase + def->st_value + in reloc_jmpslots() 431 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve_one() [all …]
|
/freebsd/libexec/rtld-elf/aarch64/ |
H A D | reloc.c | 141 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 165 srcaddr = (const void *)(defobj->relocbase + srcsym->st_value); in do_copy_relocations() 253 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt() 271 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 282 target = (Elf_Addr)(defobj->relocbase + in reloc_plt() 329 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots() 340 target = (Elf_Addr)(defobj->relocbase + def->st_value); in reloc_jmpslots() 357 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve_one() 358 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve_one() 415 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_gnu_ifunc() [all …]
|
/freebsd/sys/riscv/riscv/ |
H A D | elf_machdep.c | 290 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 308 where = (Elf_Addr *)(relocbase + rela->r_offset); in elf_reloc_internal() 352 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 515 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 519 return (elf_reloc_internal(lf, relocbase, data, type, 0, lookup)); in elf_reloc() 523 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 527 return (elf_reloc_internal(lf, relocbase, data, type, 1, lookup)); in elf_reloc_local()
|
/freebsd/libexec/rtld-elf/ |
H A D | debug.c | 75 rtld_printf("Object \"%s\", relocbase %p\n", obj->path, obj->relocbase); in dump_obj_relocations() 113 dstaddr = (Elf_Addr *)(obj->relocbase + rel->r_offset); in dump_Elf_Rel() 135 dstaddr = (Elf_Addr *)(obj->relocbase + rela->r_offset); in dump_Elf_Rela()
|
H A D | map_object.c | 303 obj->relocbase = mapbase - base_vaddr; in map_object() 304 obj->dynamic = (const Elf_Dyn *)(obj->relocbase + phdyn->p_vaddr); in map_object() 306 obj->entry = (caddr_t)(obj->relocbase + hdr->e_entry); in map_object() 308 obj->phdr = (const Elf_Phdr *)(obj->relocbase + phdr_vaddr); in map_object() 323 obj->interp = (const char *)(obj->relocbase + in map_object() 336 obj->tlsinit = obj->relocbase + phtls->p_vaddr; in map_object()
|
H A D | rtld.c | 875 sym_zero.st_value = -(uintptr_t)obj_main->relocbase; in _rtld() 1087 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in _rtld_bind() 1099 target = (Elf_Addr)(defobj->relocbase + def->st_value); in _rtld_bind() 1329 obj->rel = (const Elf_Rel *)(obj->relocbase + in digest_dynamic1() 1342 obj->pltrel = (const Elf_Rel *)(obj->relocbase + in digest_dynamic1() 1351 obj->rela = (const Elf_Rela *)(obj->relocbase + in digest_dynamic1() 1364 obj->relr = (const Elf_Relr *)(obj->relocbase + in digest_dynamic1() 1383 obj->symtab = (const Elf_Sym *)(obj->relocbase + in digest_dynamic1() 1392 obj->strtab = (const char *)(obj->relocbase + in digest_dynamic1() 1401 obj->verneed = (const Elf_Verneed *)(obj->relocbase + in digest_dynamic1() [all …]
|
H A D | rtld.h | 151 caddr_t relocbase; /* Relocation constant = mapbase - vaddrbase */ member
|
/freebsd/sys/kern/ |
H A D | link_elf.c | 211 typedef int (*elf_reloc_fn)(linker_file_t lf, Elf_Addr relocbase,
|