使用RIP寻址,为什么x86-64仍然需要重定位?

zah*_*pov 9 assembly x86-64 intel elf relocation

因此x86-64具有RIP相对地址,这使得PIC代码易于编写,重定位所需的更少.为什么在x86-64上仍然需要重定位?有什么功能?我可以尝试探索objdump但是要编译哪些C/C++代码模式?

use*_*653 7

本文更好地解释了它,但基本上是共享库中的全局变量.

  • 另见Ulrich Drepper在["如何编写共享库"](http://www.akkadia.org/drepper/dsohowto.pdf)中有关重定位的部分. (2认同)