Messages in this thread | | | Subject | Re: [PATCH v3 0/4] LoongArch: Support new relocation types | From | Xi Ruoyao <> | Date | Fri, 29 Jul 2022 10:29:53 +0800 |
| |
On Fri, 2022-07-29 at 10:23 +0800, Youling Tang wrote: > 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. > Retroactively, append the changes from v1 to v2:
- Fix a stupid programming error (confusion between the number of PLT entries and the number of GOT entries). (Bug spotted by Youling). - Synthesize the _GLOBAL_OFFSET_TABLE_ symbol with module.lds, instead of faking it at runtime. The 3rd patch from V1 is now merged into the 1st patch because it would be a one-line change. (Suggested by Jinyang). - Keep reloc_rela_handlers[] ordered by the relocation type ID. (Suggested by Youling). - Remove -fplt along with -Wa,-mla-* options because it's the default. (Suggested by Youling).
-- Xi Ruoyao <xry111@xry111.site> School of Aerospace Science and Technology, Xidian University
| |