Messages in this thread | | | Date | Mon, 21 Mar 2022 18:49:12 -0700 | From | Nathan Chancellor <> | Subject | Re: [PATCH v2] riscv module: remove (NOLOAD) |
| |
On Mon, Mar 21, 2022 at 06:26:17PM -0700, Fangrui Song wrote: > On ELF, (NOLOAD) sets the section type to SHT_NOBITS[1]. It is conceptually > inappropriate for .plt, .got, and .got.plt sections which are always > SHT_PROGBITS. > > In GNU ld, if PLT entries are needed, .plt will be SHT_PROGBITS anyway > and (NOLOAD) will be essentially ignored. In ld.lld, since > https://reviews.llvm.org/D118840 ("[ELF] Support (TYPE=<value>) to > customize the output section type"), ld.lld will report a `section type > mismatch` error (later changed to a warning). Just remove (NOLOAD) to > fix the warning. > > [1] https://lld.llvm.org/ELF/linker_script.html As of today, "The > section should be marked as not loadable" on > https://sourceware.org/binutils/docs/ld/Output-Section-Type.html is > outdated for ELF. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1597 > Fixes: ab1ef68e5401 ("RISC-V: Add sections of PLT and GOT for kernel module") > Reported-by: Nathan Chancellor <nathan@kernel.org> > Signed-off-by: Fangrui Song <maskray@google.com>
Thank you for the resend! I think the Fixes: tag you chose is more accurate than Palmer's suggested one. Same tags as v1, if Palmer would not mind taking them while applying:
Cc: stable@vger.kernel.org Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org>
> --- > arch/riscv/include/asm/module.lds.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/riscv/include/asm/module.lds.h b/arch/riscv/include/asm/module.lds.h > index 4254ff2ff049..1075beae1ac6 100644 > --- a/arch/riscv/include/asm/module.lds.h > +++ b/arch/riscv/include/asm/module.lds.h > @@ -2,8 +2,8 @@ > /* Copyright (C) 2017 Andes Technology Corporation */ > #ifdef CONFIG_MODULE_SECTIONS > SECTIONS { > - .plt (NOLOAD) : { BYTE(0) } > - .got (NOLOAD) : { BYTE(0) } > - .got.plt (NOLOAD) : { BYTE(0) } > + .plt : { BYTE(0) } > + .got : { BYTE(0) } > + .got.plt : { BYTE(0) } > } > #endif > -- > 2.35.1.894.gb6a874cedc-goog >
| |