10

我有以下链接器脚本:

SECTIONS {

    .arora_exec_free_space 4399531 : 
    {
        *(.text)
        *(.rodata)
        *(.data.rel.ro.local)
    }
    .arora_data_free_space (ADDR(.arora_exec_free_space) + SIZEOF(.arora_exec_free_space)) : AT (7592352)
    {
        *(.data)
        *(.bss)
        *(.got)
    }
}

当我编译我的程序时,这两个部分(exec 和 data)位于不同的 LOAD 段中。我想将这两个部分(.arora_data_free_space 和 .arora_exec_free_space)放入一个 LOAD 段中。有没有办法使用链接器脚本来做到这一点?我该怎么做?谢谢。

4

1 回答 1

4

当然 - 你只需要使用PHDRS。我认为,该链接上的示例几乎正是您想要做的。这是我从您的链接器脚本制作的(未经测试的)示例:

PHDRS
{
   mysegment PT_LOAD;
}

SECTIONS 
{
    .arora_exec_free_space 4399531 : 
    {
        *(.text)
        *(.rodata)
        *(.data.rel.ro.local)
    } :mysegment

    .arora_data_free_space (ADDR(.arora_exec_free_space) + SIZEOF(.arora_exec_free_space)) : AT (7592352)
    {
        *(.data)
        *(.bss)
        *(.got)
    } :mysegment
}
于 2012-06-30T14:54:35.743 回答