【问题标题】:text relocations in shared objects?共享对象中的文本重定位?
【发布时间】:2011-05-18 06:57:06
【问题描述】:

当我使用 gcc 编译以下代码(名为 d.c 的文件)时

int var=10;

void fun( void ) {
  var++;
  int a=var;
}

gcc -c -o d.o -fPIC d.c 

并调用 readelf -S 有一个名为 .rela.text 的重定位部分用于 .text 部分

如果我使用

将文件链接到共享对象 (reloctest.so)
gcc  -shared d.o -o reloctest.so 

重定位部分消失

是否保证共享对象中的 .text 段没有重定位?我认为是的(由于为 PLT 和 DYN 添加了重定位)但我不确定

感谢您的任何回答

【问题讨论】:

    标签: linux elf


    【解决方案1】:

    基本上是的。

    如果你想完全理解它,你应该阅读understanding elf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-26
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多