[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <879dc428-0407-3280-617d-840352aa6d08@loongson.cn>
Date: Fri, 29 Jul 2022 10:23:24 +0800
From: Youling Tang <tangyouling@...ngson.cn>
To: Xi Ruoyao <xry111@...111.site>, loongarch@...ts.linux.dev
Cc: linux-kernel@...r.kernel.org, WANG Xuerui <kernel@...0n.name>,
Huacai Chen <chenhuacai@...nel.org>,
Jinyang He <hejinyang@...ngson.cn>
Subject: Re: [PATCH v3 0/4] LoongArch: Support new relocation types
Hi, Ruoyao
On 07/29/2022 10:07 AM, Xi Ruoyao wrote:
> The version 2.00 of LoongArch ELF ABI specification introduced new
> relocation types, and the development tree of Binutils and GCC has
> started to use them. If the kernel is built with the latest snapshot of
> Binutils or GCC, it will fail to load the modules because of unrecognized
> relocation types in modules.
>
> Add support for GOT and new relocation types for the module loader, so
> the kernel (with modules) can be built with the "normal" code model and
> function properly.
>
> This series does not break the compatibility with old toolchain using
> stack-based relocation types, so with the patches applied the kernel can
> be be built with both old and new toolchains.
>
> Tested by building the kernel with both Binutils & GCC master branch and
> my system Binutils & GCC (without new relocation type support), running
> both the builds with 35 in-tree modules loaded, and loading one module
> with 20 GOT loads (loaded addresses verified by comparing with
> /proc/kallsyms).
>
> Changes from v2 to v3:
>
> - Use `union loongarch_instruction` instead of explicit bit shifts
> applying the relocation. Suggested by Youling.
> - For R_LARCH_B26, move the alignment check before the range check to be
> consistent with stack pop relocations. Suggested by Youling.
> - Reword the commit message of the 3rd patch. Suggested by Huacai.
The log of changes from v1 to v2 should be preserved.
Thanks,
Youling
>
> Xi Ruoyao (4):
> LoongArch: Add section of GOT for kernel module
> LoongArch: Support R_LARCH_SOP_PUSH_GPREL relocation type in kernel
> module
> LoongArch: Remove -fplt and -Wa,-mla-* from CFLAGS
> LoongArch: Support modules with new relocation types
>
> arch/loongarch/Makefile | 4 --
> arch/loongarch/include/asm/elf.h | 37 ++++++++++
> arch/loongarch/include/asm/module.h | 23 ++++++
> arch/loongarch/include/asm/module.lds.h | 1 +
> arch/loongarch/kernel/head.S | 10 +--
> arch/loongarch/kernel/module-sections.c | 51 +++++++++++--
> arch/loongarch/kernel/module.c | 96 +++++++++++++++++++++++++
> 7 files changed, 209 insertions(+), 13 deletions(-)
>
Powered by blists - more mailing lists