我们正在为一个客户端架构开发GNU汇编器的移植版本。
现在面临的问题是:
如果指令的立即操作数是涉及多个可重定位符号的表达式,它在ELF格式输出文件中会如何处理。在这种情况下将产生什么重新定位信息?
例如:
j label1 + label2
标签1和标签2被定义在可重定位部分,它们可以是相同的部分或不同的可重定位部分。
我对 ELF 一无所知,对链接也只知道一点点...
我期望每个操作数的处理方式都与只有一个操作数时相同。
另一方面,问题可能是 j
的格式会根据标签的位置而改变。如果是这样,我认为你会失败,因为链接器没有足够聪明来做这种事情(如果我没记错的话,ADA 构建系统可能比大多数链接器更聪明,所以你可以看看它。)