Re: [PATCH v5 mips-next 5/9] MIPS: vmlinux.lds.S: explicitly catch .rel.dyn symbols

From: Nathan Chancellor
Date: Sun Jan 10 2021 - 20:29:10 EST


On Sun, Jan 10, 2021 at 11:56:34AM +0000, Alexander Lobakin wrote:
> According to linker warnings, both GCC and LLVM generate '.rel.dyn'
> symbols:
>
> mips-alpine-linux-musl-ld: warning: orphan section `.rel.dyn'
> from `init/main.o' being placed in section `.rel.dyn'
>
> Link-time assertion shows that this section is sometimes empty,
> sometimes not, depending on machine bitness and the compiler [0]:
>
> LD .tmp_vmlinux.kallsyms1
> mips64-linux-gnu-ld: Unexpected run-time relocations (.rel) detected!
>
> Just use the ARM64 approach and declare it in vmlinux.lds.S closer
> to __init_end.
>
> [0] https://lore.kernel.org/linux-mips/20210109111259.GA4213@xxxxxxxxxxxxxxxx
>
> Reported-by: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
> Signed-off-by: Alexander Lobakin <alobakin@xxxxx>

Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx>

> ---
> arch/mips/kernel/vmlinux.lds.S | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
> index 10d8f0dcb76b..70bba1ff08da 100644
> --- a/arch/mips/kernel/vmlinux.lds.S
> +++ b/arch/mips/kernel/vmlinux.lds.S
> @@ -137,6 +137,11 @@ SECTIONS
> PERCPU_SECTION(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
> #endif
>
> + .rel.dyn : ALIGN(8) {
> + *(.rel)
> + *(.rel*)
> + }
> +
> #ifdef CONFIG_MIPS_ELF_APPENDED_DTB
> .appended_dtb : AT(ADDR(.appended_dtb) - LOAD_OFFSET) {
> *(.appended_dtb)
> --
> 2.30.0
>
>