如何将.text段分隔为Linux ELF中的4K对齐地址

时间:2017-03-09 02:46:50

标签: linux linker elf

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

  [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)?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

阅读完毕后,您可以创建一个miniscript文件,该文件基于标准的linux脚本,强制*(.text)段与页面对齐,并用它来链接您的程序。