链接重定位

符号解析完成后,可进行重定位工作,分三步

1:合并相同的节

将集合E的所有目标模块中相同的节合并成新节

   例如,所有.text节合并作为可执行文件中的.text

2:对定义符号进行重定位(确定地址)

确定新节中所有定义符号在虚拟地址空间中的地址

  例如,为函数确定首地址,进而确定每条指令的地址,为变量确定首地址

完成这一步后,每条指令和每个全局变量都可确定地址

3:对引用符号进行重定位(确定地址)

修改.text节和.data节中对每个符号的引用(地址)

   需要用到在.rel_data.rel_text节中保存的重定位信息

 链接重定位