diff mbox series

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

Message ID 20210110115546.30970-5-alobakin@pm.me
State Accepted
Commit 008c3cbd5eb8f5efc539cbec9abca9f7e32ea631
Headers show
Series MIPS: vmlinux.lds.S sections fixes & cleanup | expand

Commit Message

Alexander Lobakin Jan. 10, 2021, 11:56 a.m. UTC
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@alpha.franken.de

Reported-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
---
 arch/mips/kernel/vmlinux.lds.S | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Nathan Chancellor Jan. 11, 2021, 1:28 a.m. UTC | #1
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@alpha.franken.de

> 

> Reported-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

> Signed-off-by: Alexander Lobakin <alobakin@pm.me>


Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>


> ---

>  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

> 

>
diff mbox series

Patch

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)