2017-03-09 44 views
0

中将.text段分隔成4K对齐的地址是否可以将.text分隔为4K对齐的页面。例如,我写了一个简单的程序,并使用readelf -a a.out转储节标题:如何在Linux ELF

[Nr] Name    Type   Addr  Off Size ES Flg Lk Inf Al 
    ... ... 
    [11] .init    PROGBITS  00000470 000470 000023 00 AX 0 0 4 
    [12] .plt    PROGBITS  000004a0 0004a0 000060 04 AX 0 0 16 
    [13] .text    PROGBITS  00000500 000500 000342 00 AX 0 0 16 
    [14] .fini    PROGBITS  00000844 000844 000014 00 AX 0 0 4 

我怎样才能把.text成4K对齐的页面(例如,地址为.text是0x1000)?

谢谢!

+0

*为什么*你关心部分对齐?与*段*对齐不同(段已*对齐,请参阅'readelf -Wl'),*段*对齐在最终链接之后几乎从不重要。 –

回答

0

您发布的问题负责工具为ld(1)(链接器)它有一个完整的手册,描述用于对齐页面和创建最终程序的脚本语言。只需阅读该手册(我指的是ld手册,而不是手册页)

一旦你读完它,你可以创建一个miniscript文件,基于标准的linux脚本,强制*(.text)段进行页面对齐并使用它来链接你的程序。