2015-07-06 64 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

看看生成的地圖文件。有些輸入文本部分可能也有自己的對齊要求。