This series fixes various bugs and bit-rot issues with the module loading code. It also ports a couple of modules features from the Linux kernel: arch specific section fixups, and module PLTs for ARM modules, to contain veneers for 'bl' instructions. There are two things in this series I'm looking for feedback on: Linux implements module_frob_arch_sections as a weak symbol for the default case. I didn't see any other "weak" functions in barebox, so I wasn't sure if using that was acceptable. Since the Kconfig HAVE_MOD_ARCH_SPECIFIC already exists as part of the change, I just used that to define a static inline default implementation, but using a weak function would make that slightly cleaner. And in the patch that added the init macros to module.h, I wasn't sure if it would be okay to pollute init.h with the #ifndef MODULE directives, so instead I just #undef'd all of the initcalls before redefining them in module.h. If it's okay to add the #ifndef MODULE to init.h, that would be significantly cleaner than the current implementation. David Dgien (8): Makefile: Initialize and export KBUILD variables module: Add init macros to module.h module: Fix adding module to list after layout module: Fix module command registration module: Implement HAVE_MOD_ARCH_SPECIFIC arm: makefile: Fix compiler flag variable arm: elf: Add THM relocation types arm: module: Allow modules outside of bl range Makefile | 12 +- arch/arm/Kconfig | 15 +++ arch/arm/Makefile | 6 +- arch/arm/cpu/Kconfig | 1 + arch/arm/include/asm/elf.h | 3 + arch/arm/include/asm/module.h | 44 ++++++- arch/arm/lib32/Makefile | 1 + arch/arm/lib32/module-plts.c | 229 ++++++++++++++++++++++++++++++++++ arch/arm/lib32/module.c | 14 +++ arch/arm/lib32/module.lds | 4 + common/Kconfig | 8 ++ common/module.c | 60 +++++---- include/asm-generic/module.h | 49 ++++++++ include/module.h | 109 ++++++++++++++++ 14 files changed, 523 insertions(+), 32 deletions(-) create mode 100644 arch/arm/lib32/module-plts.c create mode 100644 arch/arm/lib32/module.lds create mode 100644 include/asm-generic/module.h -- 2.27.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox