我试图为 ARM 平台编写 elf 可执行加载程序。我在这里有一些查询
1)如何生成可重定位或位置无关的 ELF 可执行文件(编译器和链接器选项是什么) 2)如何加载上面生成的 ELF 可执行文件。
作为一个开始,我做了一些工作,它工作正常。我为 RO_Base 使用固定地址,并且在构建时不拆分段(不使用任何 --split 选项),因此我得到了一个连续的代码、数据、bss 部分。在此之后,我将精灵加载到与 RO_Base 相同的地址并将代码作为新线程执行。这工作正常。我还没有做任何搬迁等...
现在我想通过生成可重定位的 ELF 并将加载器修改为适当的更改来使其动态并能够加载到任何地址。请帮助我使它工作。
谢谢,