符号解析完成后,可进行重定位工作,分三步
1:合并相同的节
–将集合E的所有目标模块中相同的节合并成新节
例如,所有.text节合并作为可执行文件中的.text节
2:对定义符号进行重定位(确定地址)
–确定新节中所有定义符号在虚拟地址空间中的地址
例如,为函数确定首地址,进而确定每条指令的地址,为变量确定首地址
–完成这一步后,每条指令和每个全局变量都可确定地址
3:对引用符号进行重定位(确定地址)
–修改.text节和.data节中对每个符号的引用(地址)
需要用到在.rel_data和.rel_text节中保存的重定位信息