链接器部分对齐

时间:2015-07-06 04:33:11

标签: linker ld linker-scripts

我正在尝试编写一个可执行文件,其中.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停用构建ID时,或者当我启用它们并尝试在.note.gnu.build-id之后填充.text部分时,才会发生这种情况。

1 个答案:

答案 0 :(得分:0)

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