【发布时间】:2017-07-05 13:49:46
【问题描述】:
要使全局偏移表起作用,GOT 必须位于文本段的固定位置。现在假设一个程序需要一个共享库。还假设操作系统已经为其他进程加载了共享库。现在对于我们的程序,由于共享库的文本部分已经加载,它只需要加载数据段。共享库文本部分被映射回我们进程的虚拟地址。但是,如果在我们共享库的虚拟地址的固定偏移量处已经有一些数据/文本或其他内容怎么办。动态链接器如何解决这种冲突?一种方法是将 R_386_GOTPC 留在文本部分直到加载时间,并让动态链接器将其更改为新的偏移量。这是在实践中如何完成的。
【问题讨论】: