Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

运行时链接程序

创建启动动态链接的动态目标文件时,链接编辑器将向可执行文件中添加一个类型为 PT_INTERP 的程序头元素。该元素指示系统将运行时链接程序作为程序的解释程序进行调用。exec(2) 和运行时链接程序进行协作,为程序创建进程映像。

链接编辑器可为可执行文件和共享目标文件构造协助运行时链接程序运行的各种数据。这些数据位于可装入段中,从而使数据在执行过程中可用。这些段包括:

  • 类型为 SHT_DYNAMIC.dynamic 节,其中包含各种数据。位于该节起始位置的结构包含其他动态链接信息的地址。

  • 类型为 SHT_PROGBITS.got.plt 节,其中分别包含以下两个表:全局偏移表和过程链接表。以下各节说明了运行时链接程序如何使用和更改这些表,以便为目标文件创建内存映像。

  • 类型为 SHT_HASH.hash 节,其中包含符号散列表。

共享目标文件可以占用虚拟内存地址,这些虚拟内存地址与文件的程序头表中记录的地址不同。运行时链接程序会重定位内存映像,从而在应用程序获取控制权之前更新绝对地址。