[PATCH v3] scripts: Do not strip .rela.dyn section
Alexandre Ghiti
alex at ghiti.fr
Sun Apr 20 23:04:21 PDT 2025
Hi Masahiro,
On 08/04/2025 09:28, Alexandre Ghiti wrote:
> The .rela.dyn section contains runtime relocations and is only emitted
> for a relocatable kernel.
>
> riscv uses this section to relocate the kernel at runtime but that section
> is stripped from vmlinux. That prevents kexec to successfully load vmlinux
> since it does not contain the relocations info needed.
>
> Fixes: 559d1e45a16d ("riscv: Use --emit-relocs in order to move .rela.dyn in init")
> Tested-by: Björn Töpel <bjorn at rivosinc.com>
> Reviewed-by: Björn Töpel <bjorn at rivosinc.com>
> Acked-by: Ard Biesheuvel <ardb at kernel.org>
> Signed-off-by: Alexandre Ghiti <alexghiti at rivosinc.com>
> ---
>
> Changes in v3:
> - Rebase on top of 6.15-rc1
> - Change the fixes tag
>
> Changes in v2:
> - Changelog modification (Ard)
> - Remove ARCH_WANTS_RELA_DYN (Ard)
>
> scripts/Makefile.vmlinux | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> index b0a6cd5b818c..85d60d986401 100644
> --- a/scripts/Makefile.vmlinux
> +++ b/scripts/Makefile.vmlinux
> @@ -13,7 +13,7 @@ ifdef CONFIG_ARCH_VMLINUX_NEEDS_RELOCS
> vmlinux-final := vmlinux.unstripped
>
> quiet_cmd_strip_relocs = RSTRIP $@
> - cmd_strip_relocs = $(OBJCOPY) --remove-section='.rel*' $< $@
> + cmd_strip_relocs = $(OBJCOPY) --remove-section='.rel*' --remove-section=!'.rel*.dyn' $< $@
>
> vmlinux: $(vmlinux-final) FORCE
> $(call if_changed,strip_relocs)
Do you think you can merge that in the next rc? If not, I can merge it
if you add your AB :)
Thanks,
Alex
More information about the linux-riscv
mailing list