/freebsd/sys/powerpc/powerpc/ |
H A D | elf32_machdep.c | 178 void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); 234 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 251 where = (Elf_Addr *) ((uintptr_t)relocbase + rela->r_offset); in elf_reloc_internal() 252 hwhere = (Elf_Half *) ((uintptr_t)relocbase + rela->r_offset); in elf_reloc_internal() 281 if (addr > relocbase && addr <= (relocbase + addend)) in elf_reloc_internal() 282 addr = relocbase; in elf_reloc_internal() 296 if (addr > relocbase && addr <= (relocbase + addend)) in elf_reloc_internal() 297 addr = relocbase; in elf_reloc_internal() 304 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 322 addr = relocbase + addend; in elf_reloc_internal() [all …]
|
H A D | elf64_machdep.c | 201 void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); 322 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 338 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 360 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 374 addr = relocbase + addend; in elf_reloc_internal() 389 elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase) in elf_reloc_self() argument 401 rela = (Elf_Rela *)(relocbase+dynp->d_un.d_ptr); in elf_reloc_self() 416 where = (Elf_Addr *)(relocbase + rela->r_offset); in elf_reloc_self() 417 *where = (Elf_Addr)(relocbase + rela->r_addend); in elf_reloc_self() 422 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 | 178 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 192 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 199 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 217 *where = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 257 addr = relocbase + addend; in elf_reloc_internal() 271 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 275 return (elf_reloc_internal(lf, relocbase, data, type, in elf_reloc_local() 281 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 285 return (elf_reloc_internal(lf, relocbase, data, type, 0, lookup)); in elf_reloc() 289 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 | 109 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 134 srcaddr = (const void *)(defobj->relocbase + srcsym->st_value); in do_copy_relocations() 155 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt() 159 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 190 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots() 205 *where = (Elf_Addr)(defobj->relocbase + def->st_value); in reloc_jmpslots() 223 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve_one() 224 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve_one() 284 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_gnu_ifunc() 344 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 | 276 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 291 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 308 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 378 addr = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 385 addr = relocbase + addend; in elf_reloc_internal() 400 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 404 return (elf_reloc_internal(lf, relocbase, data, type, false, lookup)); in elf_reloc() 408 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 412 return (elf_reloc_internal(lf, relocbase, data, type, false, lookup)); in elf_reloc_local() 416 elf_reloc_late(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_late() argument [all …]
|
/freebsd/sys/arm/arm/ |
H A D | elf_machdep.c | 184 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() argument 198 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 205 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 216 addr = elf_relocaddr(lf, relocbase + addend); in elf_reloc_internal() 263 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() argument 267 return (elf_reloc_internal(lf, relocbase, data, type, 0, lookup)); in elf_reloc() 271 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() argument 275 return (elf_reloc_internal(lf, relocbase, data, type, 1, lookup)); in elf_reloc_local()
|
/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/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/aarch64/ |
H A D | reloc.c | 148 dstaddr = (void *)(dstobj->relocbase + rela->r_offset); in do_copy_relocations() 172 srcaddr = (const void *)(defobj->relocbase + srcsym->st_value); in do_copy_relocations() 260 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt() 278 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 289 target = (Elf_Addr)(defobj->relocbase + in reloc_plt() 336 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_jmpslots() 347 target = (Elf_Addr)(defobj->relocbase + def->st_value); in reloc_jmpslots() 364 ptr = (Elf_Addr *)(obj->relocbase + rela->r_addend); in reloc_iresolve_one() 365 where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_iresolve_one() 422 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 | 307 obj->relocbase = mapbase - base_vaddr; in map_object() 308 obj->dynamic = (const Elf_Dyn *)(obj->relocbase + phdyn->p_vaddr); in map_object() 310 obj->entry = (caddr_t)(obj->relocbase + hdr->e_entry); in map_object() 312 obj->phdr = (const Elf_Phdr *)(obj->relocbase + phdr_vaddr); in map_object() 327 obj->interp = (const char *)(obj->relocbase + in map_object()
|
H A D | rtld.c | 847 sym_zero.st_value = -(uintptr_t)obj_main->relocbase; in _rtld() 1045 where = (Elf_Addr *)(obj->relocbase + rel->r_offset); in _rtld_bind() 1053 target = (Elf_Addr)(defobj->relocbase + def->st_value); in _rtld_bind() 1282 obj->rel = (const Elf_Rel *)(obj->relocbase + in digest_dynamic1() 1295 obj->pltrel = (const Elf_Rel *)(obj->relocbase + in digest_dynamic1() 1304 obj->rela = (const Elf_Rela *)(obj->relocbase + in digest_dynamic1() 1317 obj->relr = (const Elf_Relr *)(obj->relocbase + in digest_dynamic1() 1336 obj->symtab = (const Elf_Sym *)(obj->relocbase + in digest_dynamic1() 1345 obj->strtab = (const char *)(obj->relocbase + in digest_dynamic1() 1354 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,
|