linux – 为什么ELF部分之间没有未使用的空白空间?
发布时间:2020-12-31 01:33:36 所属栏目:Linux 来源:网络整理
导读:副标题#e# 似乎在 Linux上使用gcc 4.9.2创建的二进制文件(Ubuntu 15.04,32位)在.eh_frame和.init_array节之间有几千个未使用的字节. objdump -h为简单可执行文件输出的示例: Sections:Idx Name Size VMA LMA File off Algn[...] 16 .eh_frame 000000c0 080
链接描述文件的相关部分是: [...] .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } [...] /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE),CONSTANT (COMMONPAGESIZE)); [...] .init_array : [...] .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0,.); .got.plt : { *(.got.plt) *(.igot.plt) } .data : [...] . = DATA_SEGMENT_END (.); (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |