Messages in this thread | | | Subject | [PATCH 0/5] LoongArch: Support new relocation types | From | Xi Ruoyao <> | Date | Thu, 28 Jul 2022 00:24:40 +0800 |
| |
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.
Tested by building the kernel with Binutils & GCC master branch, and running the kernel with 35 in-tree modules loaded.
Link: https://github.com/loongson/LoongArch-Documentation/pull/57 Link: https://gcc.gnu.org/r13-1834 Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f09482a
Xi Ruoyao (5): LoongArch: Add section of GOT for kernel module LoongArch: Support R_LARCH_SOP_PUSH_GPREL relocation type in kernel module LoongArch: Support relocation against _GLOBAL_OFFSET_TABLE_ LoongArch: Stop using undocumented assembler options LoongArch: Support modules with new relocation types
arch/loongarch/Makefile | 5 +- 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 | 72 +++++++++++++++++-- arch/loongarch/kernel/module.c | 94 +++++++++++++++++++++++++ 7 files changed, 229 insertions(+), 13 deletions(-)
-- 2.37.0
| |