[PATCH v2] scripts: Do not strip .rela.dyn section

Masahiro Yamada masahiroy at kernel.org
Fri Apr 4 08:24:56 PDT 2025


On Fri, Apr 4, 2025 at 12:45 AM Alexandre Ghiti <alex at ghiti.fr> wrote:
>
> Hi Ard,
>
> On 03/04/2025 17:11, Ard Biesheuvel wrote:
> > On Thu, 3 Apr 2025 at 16:42, Alexandre Ghiti <alexghiti at rivosinc.com> wrote:
> >> riscv uses the .rela.dyn 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.
> >>
> > Maybe explain that .rela.dyn contains runtime relocations, which are
> > only emitted if they are actually needed - as opposed to the static
> > relocations that are not emitted as SHF_ALLOC sections, and are not
> > considered to be part of the runtime image in the first place.
>
>
> Ok I'll do.
>
>
> > It
> > would be nice if we could use --remove-relocations= here, which only
> > removes static relocations, but unfortunately, llvm-objcopy does not
> > support this.
> >
> > Also, I wonder if this should apply to all of .rel.dyn, .rela.dyn and
> > .relr.dyn, as they all carry runtime relocations.
>
>
> Ok, I'll add them to the next version.
>
>
> >
> > Finally, I'd be curious to know why RISC-V relies on --emit-relocs in
> > the first place? Is the relocs check really needed? If not, it would
> > be a nice opportunity to get rid of Makefile.postlink entirely.
>
>
> So I had to check and it happens that this was an issue with the
> toolchain, I should check if that still happens with newer ones.
>
> commit 559d1e45a16dcf1542e430ea3dce9ab625be98d0
> Author: Alexandre Ghiti <alexghiti at rivosinc.com>
> Date:   Wed Mar 29 06:53:29 2023 +0200
>
>      riscv: Use --emit-relocs in order to move .rela.dyn in init




So,

Fixes: 559d1e45a16d ("riscv: Use --emit-relocs in order to move
.rela.dyn in init")

Is this the correct tag?





-- 
Best Regards
Masahiro Yamada



More information about the linux-riscv mailing list