On Mon, Jan 4, 2021 at 4:21 AM Alexander Lobakin alobakin@pm.me wrote:
GCC somehow manages to place some of the symbols from main.c into .rel.dyn section:
mips-alpine-linux-musl-ld: warning: orphan section `.rel.dyn' from `init/main.o' being placed in section `.rel.dyn'
I couldn't catch up the exact symbol, but seems like it's harmless to discard it from the final vmlinux as kernel doesn't use or support dynamic relocations.
Misc: sort DISCARDS section entries alphabetically.
Signed-off-by: Alexander Lobakin alobakin@pm.me
arch/mips/kernel/vmlinux.lds.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 83e27a181206..1c3c2e903062 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -221,9 +221,10 @@ SECTIONS /* ABI crap starts here */ *(.MIPS.abiflags) *(.MIPS.options)
*(.eh_frame) *(.options) *(.pdr) *(.reginfo)
*(.eh_frame)
*(.rel.dyn) }
}
2.30.0
(I don't know why I am on the CC list since I know little about mips... Anyway, I know the LLD linker's behavior in case that was the intention... )
I think it'd be good to know the reason why these dynamic relocations are produced and fix the root cause.
arch/x86/kernel/vmlinux.lds.S asserts no dynamic relocation: ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")