mirror of
https://github.com/apache/nuttx.git
synced 2025-12-08 02:32:54 +08:00
Basically, mirror the following two commits from modlib. It's shame we have two copies of elf loaders. ``` commit51490bad55Author: YAMAMOTO Takashi <yamamoto@midokura.com> Date: Wed Apr 14 17:07:39 2021 +0900 modlib: Implement sh_addralign handling I've seen a module with 16 bytes .rodata alignment for xmm operations. It was getting SEGV on sim/Linux because of the alignment issue. The same module binary seems working fine after applying this patch. Also, tested on sim/macOS and esp32 on qemu, using a module with an artificially large alignment. (64 bytes) ``` ``` commit418e11b8b3Author: YAMAMOTO Takashi <yamamoto@midokura.com> Date: Thu Apr 15 11:33:48 2021 +0900 modlib: Always use separate allocation for text and data Pros: * Reduce code differences * Smaller allocations for !CONFIG_ARCH_USE_MODULE_TEXT Cons: * Likely to use more memory for !CONFIG_ARCH_USE_MODULE_TEXT in total Tested with: * sim:module on macOS * esp32-devkit:nsh + CONFIG_MODULE on qemu * lm3s6965-ek:qemu-protected + CONFIG_EXAMPLES_SOTEST on qemu ```