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)
    }
}

プログラムをコンパイルすると、2つのセクション(execとdata)が異なるLOADセグメントになります。2つのセクション(.arora_data_free_spaceと.arora_exec_free_space)を1つの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 に答える