Searched refs:rela (Results 1 - 25 of 39) sorted by relevance

12

/linux-master/arch/arm64/kernel/pi/
H A Drelocate.c19 for (const Elf64_Rela *rela = rela_start; rela < rela_end; rela++) {
20 if (ELF64_R_TYPE(rela->r_info) != R_AARCH64_RELATIVE)
22 *(u64 *)(rela->r_offset + offset) = rela->r_addend + offset;
H A Drelacheck.c80 Elf64_Rela *rela; local
105 rela = (void *)ehdr + swab_elfxword(shdr[i].sh_offset);
106 numrela = swab_elfxword(shdr[i].sh_size) / sizeof(*rela);
109 uint64_t info = swab_elfxword(rela[j].r_info);
117 rela[j].r_info = swab_elfxword(info);
/linux-master/arch/um/kernel/
H A Ddyn.lds.S36 .rela.init : { *(.rela.init) }
38 .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
40 .rela.fini : { *(.rela.fini) }
42 .rela.rodata : { *(.rela
[all...]
H A Duml.lds.S64 .rela.plt : {
65 *(.rela.plt)
67 *(.rela.iplt)
/linux-master/arch/microblaze/kernel/
H A Dmodule.c23 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
31 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) {
34 rela[i].r_offset;
36 ELF32_R_SYM(rela[i].r_info);
37 value = sym->st_value + rela[i].r_addend;
39 switch (ELF32_R_TYPE(rela[i].r_info)) {
84 ELF32_R_TYPE(rela[i].r_info));
/linux-master/arch/nios2/kernel/
H A Dmodule.c48 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
53 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) {
58 + rela[i].r_offset);
63 + ELF32_R_SYM(rela[i].r_info));
64 uint32_t v = sym->st_value + rela[i].r_addend;
67 ELF32_R_TYPE(rela[i].r_info),
68 rela[i].r_offset, strtab + sym->st_name);
70 switch (ELF32_R_TYPE(rela[i].r_info)) {
124 mod->name, ELF32_R_TYPE(rela[i].r_info));
/linux-master/arch/hexagon/kernel/
H A Dmodule.c42 if (strcmp(secstrings + sechdrs[i].sh_name, ".rela.plt") == 0)
58 * apply_relocate_add - perform rela relocations.
65 * Perform rela relocations.
76 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
87 sym = sym_base + ELF32_R_SYM(rela[i].r_info);
90 location = loc_base + rela[i].r_offset;
93 value = sym->st_value + rela[i].r_addend;
96 i, value, location, ELF32_R_TYPE(rela[i].r_info),
100 switch (ELF32_R_TYPE(rela[i].r_info)) {
144 ELF32_R_TYPE(rela[
[all...]
/linux-master/arch/arm64/kernel/
H A Dmodule-plts.c70 void *loc, const Elf64_Rela *rela,
78 u64 val = sym->st_value + rela->r_addend;
147 static bool duplicate_rel(const Elf64_Rela *rela, int num) argument
154 return num > 0 && cmp_rela(rela + num, rela + num - 1) == 0;
157 static unsigned int count_plts(Elf64_Sym *syms, Elf64_Rela *rela, int num, argument
167 switch (ELF64_R_TYPE(rela[i].r_info)) {
181 s = syms + ELF64_R_SYM(rela[i].r_info);
198 if (rela[i].r_addend != 0 || !duplicate_rel(rela,
69 module_emit_plt_entry(struct module *mod, Elf64_Shdr *sechdrs, void *loc, const Elf64_Rela *rela, Elf64_Sym *sym) argument
249 branch_rela_needs_plt(Elf64_Sym *syms, Elf64_Rela *rela, Elf64_Word dstidx) argument
263 partition_branch_plt_relas(Elf64_Sym *syms, Elf64_Rela *rela, int numrels, Elf64_Word dstidx) argument
[all...]
/linux-master/arch/alpha/kernel/
H A Dmodule.c29 process_reloc_for_got(Elf64_Rela *rela, argument
32 unsigned long r_sym = ELF64_R_SYM (rela->r_info);
33 unsigned long r_type = ELF64_R_TYPE (rela->r_info);
34 Elf64_Sxword r_addend = rela->r_addend;
60 rela->r_info |= g->got_offset << 8;
68 Elf64_Rela *rela; local
113 rela = (void *)hdr + s->sh_offset;
115 process_reloc_for_got(rela+i, chains,
137 Elf64_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
138 unsigned long i, n = sechdrs[relsec].sh_size / sizeof(*rela);
[all...]
/linux-master/arch/mips/kernel/
H A Dmodule.c70 bool rela)
74 if (rela) {
109 u32 base, Elf_Addr v, bool rela)
115 if (rela) {
229 static int apply_r_mips_64(u32 *location, Elf_Addr v, bool rela) argument
231 if (WARN_ON(!rela))
239 static int apply_r_mips_higher(u32 *location, Elf_Addr v, bool rela) argument
241 if (WARN_ON(!rela))
250 static int apply_r_mips_highest(u32 *location, Elf_Addr v, bool rela) argument
252 if (WARN_ON(!rela))
69 apply_r_mips_hi16(struct module *me, u32 *location, Elf_Addr v, bool rela) argument
108 apply_r_mips_lo16(struct module *me, u32 *location, u32 base, Elf_Addr v, bool rela) argument
278 reloc_handler(u32 type, struct module *me, u32 *location, u32 base, Elf_Addr v, bool rela) argument
313 __apply_relocate(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, struct module *me, bool rela) argument
319 Elf_Mips_Rela *rela; member in union:__anon12
[all...]
/linux-master/arch/xtensa/kernel/
H A Dmodule.c54 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
62 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) {
64 + rela[i].r_offset;
66 + ELF32_R_SYM(rela[i].r_info);
67 value = sym->st_value + rela[i].r_addend;
69 switch (ELF32_R_TYPE(rela[i].r_info)) {
158 ELF32_R_TYPE(rela[i].r_info));
178 ELF32_R_TYPE(rela[i].r_info));
184 ELF32_R_TYPE(rela[i].r_info));
/linux-master/arch/powerpc/kernel/
H A Dmodule_32.c25 static unsigned int count_relocs(const Elf32_Rela *rela, unsigned int num) argument
34 if (ELF32_R_TYPE(rela[i].r_info) == R_PPC_REL24 &&
35 (r_info != ELF32_R_SYM(rela[i].r_info) ||
36 r_addend != rela[i].r_addend)) {
38 r_info = ELF32_R_SYM(rela[i].r_info);
39 r_addend = rela[i].r_addend;
203 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
210 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) {
213 + rela[i].r_offset;
217 + ELF32_R_SYM(rela[
[all...]
H A Dmodule_64.c161 static unsigned int count_relocs(const Elf64_Rela *rela, unsigned int num, argument
172 if (ELF64_R_TYPE(rela[i].r_info) == r_type &&
173 (r_info != ELF64_R_SYM(rela[i].r_info) ||
174 r_addend != rela[i].r_addend)) {
176 r_info = ELF64_R_SYM(rela[i].r_info);
177 r_addend = rela[i].r_addend;
259 const Elf64_Rela *rela, unsigned int num,
273 + ELF64_R_SYM(rela[i].r_info);
276 (r_info != ELF64_R_SYM(rela[i].r_info) ||
277 r_addend != rela[
258 count_pcpu_relocs(const Elf64_Shdr *sechdrs, const Elf64_Rela *rela, unsigned int num, unsigned int symindex, unsigned int pcpu) argument
771 Elf64_Rela *rela = (void *)sechdrs[relsec].sh_addr; local
[all...]
/linux-master/arch/arm64/kernel/vdso/
H A Dvdso.lds.S58 .rela.dyn : ALIGN(8) { *(.rela .rela*) }
/linux-master/arch/x86/boot/compressed/
H A Dvmlinux.lds.S116 .rela.dyn : {
117 *(.rela.*) *(.rela_*)
119 ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
/linux-master/arch/s390/boot/
H A Dvmlinux.lds.S163 .rela.dyn : {
164 *(.rela.*) *(.rela_*)
166 ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
/linux-master/tools/objtool/
H A Dorc_dump.c24 GElf_Rela rela; local
96 } else if (!strcmp(name, ".rela.orc_unwind_ip")) {
112 if (!gelf_getrela(rela_orc_ip, i, &rela)) {
117 if (!gelf_getsym(symtab, GELF_R_SYM(rela.r_info), &sym)) {
147 printf("%s+%llx:", name, (unsigned long long)rela.r_addend);
/linux-master/arch/s390/kernel/
H A Dmodule.c93 static void check_rela(Elf_Rela *rela, struct module *me) argument
97 info = me->arch.syminfo + ELF_R_SYM (rela->r_info);
98 switch (ELF_R_TYPE (rela->r_info)) {
147 Elf_Rela *rela; local
191 rela = (void *) hdr + sechdrs[i].sh_offset;
193 check_rela(rela + j, me);
258 static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab, argument
268 loc = base + rela->r_offset;
271 r_sym = ELF_R_SYM(rela->r_info);
272 r_type = ELF_R_TYPE(rela
470 Elf_Rela *rela; local
[all...]
H A Dvmlinux.lds.S201 .rela.dyn ALIGN(8) : {
203 *(.rela*)
286 .rela.dyn : {
287 *(.rela.*) *(.rela_*)
289 ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
/linux-master/arch/powerpc/boot/
H A DzImage.lds.S47 .rela.dyn :
52 *(.rela*)
/linux-master/arch/loongarch/kernel/
H A Drelocate.c26 Elf64_Rela *rela, *rela_end; local
27 rela = (Elf64_Rela *)&__rela_dyn_begin;
30 for ( ; rela < rela_end; rela++) {
31 Elf64_Addr addr = rela->r_offset;
32 Elf64_Addr relocated_addr = rela->r_addend;
34 if (rela->r_info != R_LARCH_RELATIVE)
H A Dvmlinux.lds.S109 .rela.dyn : ALIGN(8) {
111 *(.rela.dyn) *(.rela*)
/linux-master/arch/powerpc/kernel/vdso/
H A Dvdso64.lds.S72 .rela.dyn ALIGN(8) : { *(.rela.dyn) }
89 *(.glink .iplt .plt .rela*)
/linux-master/arch/riscv/kernel/
H A Dvmlinux.lds.S106 .rela.dyn : ALIGN(8) {
108 *(.rela .rela*)
/linux-master/arch/arm64/kvm/hyp/nvhe/
H A Dgen-hyprel.c314 * The linker of vmlinux will populate the position given by `rela` with
320 * by `rela`. This way the kernel can iterate over all kernel VAs used
324 * the beginning of the relocated section + the offset from `rela`.
326 static void emit_rela_abs64(Elf64_Rela *rela, const char *sh_orig_name) argument
338 * is `rela->r_offset`.
342 elf64toh(rela->r_offset));
364 Elf64_Rela *rela; local
372 for_each_rela(sh_rela, rela) {
373 uint32_t type = (uint32_t)elf64toh(rela->r_info);
375 /* Check that rela point
[all...]

Completed in 203 milliseconds

12