[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