2015-07-06 67 views
1

我正试图编写一个可执行文件,其中.text部分位于特定位置。我写了下面的链接脚本:链接器部分对齐

base_address = 0x123456789AB; 
SECTIONS 
{ 
    ENTRY(_start) 
    . = base_address; 
    .text : { *(.text); } 
} 

然而,当我看到生成的可执行文件的内存映射,我看到:

12345600000-12345679000 r-xp 00000000 08:01 1 /path/to/executable 

很明显,为什么部分将被排列到0x1000,这是页面大小,但0x100000从哪里来?

现在最有趣的部分是,当我禁用与-Wl,--build-id=none建立IDS这只是发生时,或者当我开启它并.text后立即东西的.note.gnu.build-id部分。

回答

0

看看生成的地图文件。有些输入文本部分可能也有自己的对齐要求。