riscv: Use --emit-relocs in order to move .rela.dyn in init
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Wed, 29 Mar 2023 04:53:29 +0000 (06:53 +0200)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 19 Apr 2023 14:46:33 +0000 (07:46 -0700)
commit559d1e45a16dcf1542e430ea3dce9ab625be98d0
tree63b551d7fbb46bbdb64a5a4239ee0813b98c0ea3
parentc2dea0bc53397166a77811d9b66928643a83d6f3
riscv: Use --emit-relocs in order to move .rela.dyn in init

To circumvent an issue where placing the relocations inside the init
sections produces empty relocations, use --emit-relocs. But to avoid
carrying those relocations in vmlinux, use an intermediate
vmlinux.relocs file which is a copy of vmlinux *before* stripping its
relocations.

Suggested-by: Björn Töpel <bjorn@kernel.org>
Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20230329045329.64565-7-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/Makefile
arch/riscv/Makefile.postlink
arch/riscv/boot/Makefile