Home
last modified time | relevance | path

Searched refs:rela (Results 1 – 25 of 61) sorted by relevance

123

/openbmc/linux/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.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
44 .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
46 .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
48 .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
50 .rela.ctors : { *(.rela.ctors) }
52 .rela.dtors : { *(.rela.dtors) }
54 .rela.got : { *(.rela.got) }
[all …]
/openbmc/linux/arch/mips/kernel/
H A Dmodule.c71 bool rela) in apply_r_mips_hi16() argument
75 if (rela) { in apply_r_mips_hi16()
110 u32 base, Elf_Addr v, bool rela) in apply_r_mips_lo16() argument
116 if (rela) { in apply_r_mips_lo16()
230 static int apply_r_mips_64(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_64() argument
232 if (WARN_ON(!rela)) in apply_r_mips_64()
240 static int apply_r_mips_higher(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_higher() argument
242 if (WARN_ON(!rela)) in apply_r_mips_higher()
251 static int apply_r_mips_highest(u32 *location, Elf_Addr v, bool rela) in apply_r_mips_highest() argument
253 if (WARN_ON(!rela)) in apply_r_mips_highest()
[all …]
/openbmc/u-boot/tools/
H A Drelocate-rela.c36 static bool supported_rela(Elf64_Rela *rela) in supported_rela() argument
39 uint32_t type = rela->r_info & mask; in supported_rela()
49 type, rela->r_offset); in supported_rela()
102 Elf64_Rela rela, swrela; in main() local
112 if (fread(&rela, sizeof(rela), 1, f) != 1) { in main()
119 swrela.r_offset = cpu_to_le64(rela.r_offset); in main()
120 swrela.r_info = cpu_to_le64(rela.r_info); in main()
121 swrela.r_addend = cpu_to_le64(rela.r_addend); in main()
143 if (fwrite(&rela.r_addend, sizeof(rela.r_addend), 1, f) != 1) { in main()
/openbmc/u-boot/arch/riscv/lib/
H A Delf_riscv32_efi.lds53 .rela.dyn : { *(.rela.dyn) }
54 .rela.plt : { *(.rela.plt) }
55 .rela.got : { *(.rela.got) }
56 .rela.data : { *(.rela.data) *(.rela.data*) }
H A Delf_riscv64_efi.lds53 .rela.dyn : { *(.rela.dyn) }
54 .rela.plt : { *(.rela.plt) }
55 .rela.got : { *(.rela.got) }
56 .rela.data : { *(.rela.data) *(.rela.data*) }
/openbmc/u-boot/arch/arm/lib/
H A Delf_aarch64_efi.lds51 .rela.dyn : { *(.rela.dyn) }
52 .rela.plt : { *(.rela.plt) }
53 .rela.got : { *(.rela.got) }
54 .rela.data : { *(.rela.data) *(.rela.data*) }
/openbmc/linux/arch/arm64/kernel/
H A Dmodule-plts.c70 void *loc, const Elf64_Rela *rela, in module_emit_plt_entry() argument
78 u64 val = sym->st_value + rela->r_addend; in module_emit_plt_entry()
147 static bool duplicate_rel(const Elf64_Rela *rela, int num) in duplicate_rel() argument
154 return num > 0 && cmp_rela(rela + num, rela + num - 1) == 0; in duplicate_rel()
157 static unsigned int count_plts(Elf64_Sym *syms, Elf64_Rela *rela, int num, in count_plts() argument
167 switch (ELF64_R_TYPE(rela[i].r_info)) { in count_plts()
181 s = syms + ELF64_R_SYM(rela[i].r_info); in count_plts()
198 if (rela[i].r_addend != 0 || !duplicate_rel(rela, i)) in count_plts()
221 min_align = 2ULL << ffz(rela[i].r_offset | 0x7); in count_plts()
250 static bool branch_rela_needs_plt(Elf64_Sym *syms, Elf64_Rela *rela, in branch_rela_needs_plt() argument
[all …]
/openbmc/linux/arch/nios2/kernel/
H A Dmodule.c48 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
53 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
58 + rela[i].r_offset); in apply_relocate_add()
63 + ELF32_R_SYM(rela[i].r_info)); in apply_relocate_add()
64 uint32_t v = sym->st_value + rela[i].r_addend; in apply_relocate_add()
67 ELF32_R_TYPE(rela[i].r_info), in apply_relocate_add()
68 rela[i].r_offset, strtab + sym->st_name); in apply_relocate_add()
70 switch (ELF32_R_TYPE(rela[i].r_info)) { in apply_relocate_add()
124 mod->name, ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
/openbmc/linux/arch/alpha/kernel/
H A Dmodule.c29 process_reloc_for_got(Elf64_Rela *rela, in process_reloc_for_got() argument
32 unsigned long r_sym = ELF64_R_SYM (rela->r_info); in process_reloc_for_got()
33 unsigned long r_type = ELF64_R_TYPE (rela->r_info); in process_reloc_for_got()
34 Elf64_Sxword r_addend = rela->r_addend; in process_reloc_for_got()
60 rela->r_info |= g->got_offset << 8; in process_reloc_for_got()
68 Elf64_Rela *rela; in module_frob_arch_sections() local
113 rela = (void *)hdr + s->sh_offset; in module_frob_arch_sections()
115 process_reloc_for_got(rela+i, chains, in module_frob_arch_sections()
137 Elf64_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
138 unsigned long i, n = sechdrs[relsec].sh_size / sizeof(*rela); in apply_relocate_add()
[all …]
/openbmc/linux/arch/xtensa/kernel/
H A Dmodule.c54 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
62 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
64 + rela[i].r_offset; in apply_relocate_add()
66 + ELF32_R_SYM(rela[i].r_info); in apply_relocate_add()
67 value = sym->st_value + rela[i].r_addend; in apply_relocate_add()
69 switch (ELF32_R_TYPE(rela[i].r_info)) { in apply_relocate_add()
158 ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
178 ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
184 ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
/openbmc/linux/arch/microblaze/kernel/
H A Dmodule.c23 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
31 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
34 rela[i].r_offset; in apply_relocate_add()
36 ELF32_R_SYM(rela[i].r_info); in apply_relocate_add()
37 value = sym->st_value + rela[i].r_addend; in apply_relocate_add()
39 switch (ELF32_R_TYPE(rela[i].r_info)) { in apply_relocate_add()
84 ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
/openbmc/linux/arch/powerpc/kernel/
H A Dmodule_32.c25 static unsigned int count_relocs(const Elf32_Rela *rela, unsigned int num) in count_relocs() argument
34 if (ELF32_R_TYPE(rela[i].r_info) == R_PPC_REL24 && in count_relocs()
35 (r_info != ELF32_R_SYM(rela[i].r_info) || in count_relocs()
36 r_addend != rela[i].r_addend)) { in count_relocs()
38 r_info = ELF32_R_SYM(rela[i].r_info); in count_relocs()
39 r_addend = rela[i].r_addend; in count_relocs()
203 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
210 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rela); i++) { in apply_relocate_add()
213 + rela[i].r_offset; in apply_relocate_add()
217 + ELF32_R_SYM(rela[i].r_info); in apply_relocate_add()
[all …]
H A Dmodule_64.c161 static unsigned int count_relocs(const Elf64_Rela *rela, unsigned int num, in count_relocs() argument
172 if (ELF64_R_TYPE(rela[i].r_info) == r_type && in count_relocs()
173 (r_info != ELF64_R_SYM(rela[i].r_info) || in count_relocs()
174 r_addend != rela[i].r_addend)) { in count_relocs()
176 r_info = ELF64_R_SYM(rela[i].r_info); in count_relocs()
177 r_addend = rela[i].r_addend; in count_relocs()
259 const Elf64_Rela *rela, unsigned int num, in count_pcpu_relocs() argument
273 + ELF64_R_SYM(rela[i].r_info); in count_pcpu_relocs()
276 (r_info != ELF64_R_SYM(rela[i].r_info) || in count_pcpu_relocs()
277 r_addend != rela[i].r_addend)) { in count_pcpu_relocs()
[all …]
/openbmc/linux/arch/hexagon/kernel/
H A Dmodule.c76 Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr; in apply_relocate_add() local
87 sym = sym_base + ELF32_R_SYM(rela[i].r_info); in apply_relocate_add()
90 location = loc_base + rela[i].r_offset; in apply_relocate_add()
93 value = sym->st_value + rela[i].r_addend; in apply_relocate_add()
96 i, value, location, ELF32_R_TYPE(rela[i].r_info), in apply_relocate_add()
100 switch (ELF32_R_TYPE(rela[i].r_info)) { in apply_relocate_add()
144 ELF32_R_TYPE(rela[i].r_info)); in apply_relocate_add()
/openbmc/linux/arch/s390/kernel/
H A Dmodule.c93 static void check_rela(Elf_Rela *rela, struct module *me) in check_rela() argument
97 info = me->arch.syminfo + ELF_R_SYM (rela->r_info); in check_rela()
98 switch (ELF_R_TYPE (rela->r_info)) { in check_rela()
147 Elf_Rela *rela; in module_frob_arch_sections() local
191 rela = (void *) hdr + sechdrs[i].sh_offset; in module_frob_arch_sections()
193 check_rela(rela + j, me); in module_frob_arch_sections()
258 static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab, in apply_rela() argument
268 loc = base + rela->r_offset; in apply_rela()
271 r_sym = ELF_R_SYM(rela->r_info); in apply_rela()
272 r_type = ELF_R_TYPE(rela->r_info); in apply_rela()
[all …]
/openbmc/u-boot/arch/x86/lib/
H A Delf_x86_64_efi.lds62 .rela : {
63 *(.rela.data*)
64 *(.rela.got)
65 *(.rela.stab)
74 *(.rela.reloc)
/openbmc/linux/arch/loongarch/kernel/
H A Drelocate.c27 Elf64_Rela *rela, *rela_end; in relocate_relative() local
28 rela = (Elf64_Rela *)&__rela_dyn_begin; in relocate_relative()
31 for ( ; rela < rela_end; rela++) { in relocate_relative()
32 Elf64_Addr addr = rela->r_offset; in relocate_relative()
33 Elf64_Addr relocated_addr = rela->r_addend; in relocate_relative()
35 if (rela->r_info != R_LARCH_RELATIVE) in relocate_relative()
/openbmc/u-boot/examples/standalone/
H A Dnds32.lds36 .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
/openbmc/linux/arch/ia64/kernel/
H A Dmodule.c321 duplicate_reloc (const Elf64_Rela *rela, unsigned int num) in duplicate_reloc() argument
326 if (rela[i].r_info == rela[num].r_info && rela[i].r_addend == rela[num].r_addend) in duplicate_reloc()
334 count_gots (const Elf64_Rela *rela, unsigned int num) in count_gots() argument
341 switch (ELF64_R_TYPE(rela[i].r_info)) { in count_gots()
351 if (!duplicate_reloc(rela, i)) in count_gots()
361 count_plts (const Elf64_Rela *rela, unsigned int num) in count_plts() argument
368 switch (ELF64_R_TYPE(rela[i].r_info)) { in count_plts()
376 if (!duplicate_reloc(rela, i)) in count_plts()
387 count_fdescs (const Elf64_Rela *rela, unsigned int num) in count_fdescs() argument
393 switch (ELF64_R_TYPE(rela[i].r_info)) { in count_fdescs()
[all …]
/openbmc/linux/arch/s390/boot/
H A Dstartup.c102 Elf64_Rela *rela_start, *rela_end, *rela; in handle_relocs() local
110 for (rela = rela_start; rela < rela_end; rela++) { in handle_relocs()
111 loc = rela->r_offset + offset; in handle_relocs()
112 val = rela->r_addend; in handle_relocs()
113 r_sym = ELF64_R_SYM(rela->r_info); in handle_relocs()
124 r_type = ELF64_R_TYPE(rela->r_info); in handle_relocs()
/openbmc/linux/arch/arm64/kvm/hyp/nvhe/
H A Dgen-hyprel.c326 static void emit_rela_abs64(Elf64_Rela *rela, const char *sh_orig_name) in emit_rela_abs64() argument
342 elf64toh(rela->r_offset)); in emit_rela_abs64()
364 Elf64_Rela *rela; in emit_rela_section() local
372 for_each_rela(sh_rela, rela) { in emit_rela_section()
373 uint32_t type = (uint32_t)elf64toh(rela->r_info); in emit_rela_section()
376 assert_lt(elf64toh(rela->r_offset), elf64toh(sh_orig->sh_size), "0x%lx"); in emit_rela_section()
384 emit_rela_abs64(rela, sh_orig_name); in emit_rela_section()
/openbmc/u-boot/arch/nds32/cpu/n1213/
H A Du-boot.lds43 /DISCARD/ : { *(.rela.plt*) }
44 .rela.dyn : {
46 *(.rela*)
/openbmc/u-boot/arch/riscv/cpu/
H A Du-boot.lds63 /DISCARD/ : { *(.rela.plt*) }
64 .rela.dyn : {
66 *(.rela*)
/openbmc/linux/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!")
/openbmc/linux/arch/parisc/kernel/
H A Dmodule.c188 static inline unsigned long count_gots(const Elf_Rela *rela, unsigned long n) in count_gots() argument
193 static inline unsigned long count_fdescs(const Elf_Rela *rela, unsigned long n) in count_fdescs() argument
198 static inline unsigned long count_stubs(const Elf_Rela *rela, unsigned long n) in count_stubs() argument
202 for (; n > 0; n--, rela++) in count_stubs()
204 switch (ELF32_R_TYPE(rela->r_info)) { in count_stubs()
214 static inline unsigned long count_gots(const Elf_Rela *rela, unsigned long n) in count_gots() argument
218 for (; n > 0; n--, rela++) in count_gots()
220 switch (ELF64_R_TYPE(rela->r_info)) { in count_gots()
231 static inline unsigned long count_fdescs(const Elf_Rela *rela, unsigned long n) in count_fdescs() argument
235 for (; n > 0; n--, rela++) in count_fdescs()
[all …]

123