检查目标文件时,例如/usr/lib32
或/usr/lib
readelf -r <object file>
中的一个,似乎32位变体没有加数字段,而64位变量则有。我想这是为非32位系统修复地址布局,例如x86_64或arm。这是对的吗?
答案 0 :(得分:1)
RELA(显式加数)与REL(存储在修改后的偏移量中的加数)重定位之间的区别主要是历史性的。这一切都始于REL以节省空间,但大多数现代架构都使用RELA来speed up linking。理论上静态/动态链接器应支持REL和RELA或其任何组合(参见例如讨论here)。