重定位绝对引用(absolute reference relocation)
还是承接前面的程序,在swap.c中 “int *bufp0 = &buf[0];”bufp0被初始化为一个全局的数组地址,所以需要重定位,详细信息如图<PIC1>和<PIC2>, r.offset=0xc, r.symbol=buf, r.type=R_386_32 ,重定位条目告诉编译器,这是一个32位的绝对引用,必须重定位才能指向最后的buf。
<PIC1, objdump -rS swap.o>
<PIC2, readelf -a swap.o >
还是承接前面的程序,在swap.c中 “int *bufp0 = &buf[0];”bufp0被初始化为一个全局的数组地址,所以需要重定位,详细信息如图<PIC1>和<PIC2>, r.offset=0xc, r.symbol=buf, r.type=R_386_32 ,重定位条目告诉编译器,这是一个32位的绝对引用,必须重定位才能指向最后的buf。
<PIC1, objdump -rS swap.o>
<PIC2, readelf -a swap.o >
<PIC3, readelf -a p>