这些是我的32位i686-linux /lib/libm.so的重定位
Relocation section '.rel.dyn' at offset 0x32b8 contains 8 entrIEs: Offset Info Type Sym.Value Sym. name00025030 00000008 R_386_relative 00024fd8 00005706 R_386_GLOB_DAT 00025034 _liB_VERSION00024fdc 00000406 R_386_GLOB_DAT 00000000 __gmon_start__00024fe0 00000506 R_386_GLOB_DAT 00000000 _Jv_RegisterClasses00024fe4 00000806 R_386_GLOB_DAT 00000000 _rtld_global_ro00024fe8 00000906 R_386_GLOB_DAT 00000000 stderr00024fec 00013006 R_386_GLOB_DAT 0002507c signgam00024ff0 00000e06 R_386_GLOB_DAT 00000000 __cxa_finalizeRelocation section '.rel.plt' at offset 0x32f8 contains 12 entrIEs: Offset Info Type Sym.Value Sym. name00025000 00000107 R_386_JUMP_SLOT 00000000 fputs00025004 00000207 R_386_JUMP_SLOT 00000000 __errno_location00025008 00000307 R_386_JUMP_SLOT 00000000 sprintf0002500c 00000407 R_386_JUMP_SLOT 00000000 __gmon_start__00025010 00000607 R_386_JUMP_SLOT 00000000 strtod00025014 00000707 R_386_JUMP_SLOT 00000000 __assert_fail00025018 00000a07 R_386_JUMP_SLOT 00000000 strlen0002501c 00000b07 R_386_JUMP_SLOT 00000000 strtof00025020 00000c07 R_386_JUMP_SLOT 00000000 fwrite00025024 00000d07 R_386_JUMP_SLOT 00000000 strtold00025028 00005e07 R_386_JUMP_SLOT 00005970 matherr0002502c 00000e07 R_386_JUMP_SLOT 00000000 __cxa_finalize
看看,你注意到有两个重定位部分,即.rel.dyn和.rel.plt.您可以看到.rel.plt的所有重定位都是类型R_386_JUMP_SLOT,这意味着它们是分支重定位,另一方面,.rel.dyn中的几乎所有重定位都是R_386_GLOB_DAT,这意味着全局变量的重定位.
.symtab和.dynsym之间存在着微妙的差别.虽然第一个包含在静态链接编辑期间使用的所有符号的引用,但后来仅包含动态链接所需的符号.因此,上面提到的重新定位仅指.dynsym部分.
总结以上是内存溢出为你收集整理的linux – .got和.gottpl部分有什么区别?全部内容,希望文章能够帮你解决linux – .got和.gottpl部分有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)