我正在尝试为ARM平台编写ELF可执行文件加载程序。这里有一些问题:
1)如何生成可重定位或位置无关的ELF可执行文件(需要哪些编译器和链接器选项)2)如何加载上述生成的ELF可执行文件。
作为一个开始,我已经做了一些工作,而且它运行得很好。我在构建时使用固定地址RO_Base并没有分割段(不使用任何--split选项),这样我就获得了连续的代码、数据和bss部分。之后,我将ELF加载到与RO_Base相同的地址,并将代码作为新线程执行。这个方法运行良好。我没有进行任何重定位等操作。
现在我想使它具有动态性,并能够通过生成可重定位ELF并修改加载程序以适当地更改来加载到任何地址。请帮助我使其正常工作。
谢谢!