Jah*_*Jah 10 c linux ld segments
我有以下链接器脚本:
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和数据)处于不同的LOAD段.我想将两个部分(.arora_data_free_space和.arora_exec_free_space)放入一个LOAD段.有没有办法使用链接描述文件?我该怎么做?谢谢.
当然 - 你只需要使用PHDRS。我认为该链接中的示例几乎正是您想要做的。这是我根据链接器脚本制作的(未经测试的)示例:
\nPHDRS\n{\n   mysegment PT_LOAD;\n}\n\nSECTIONS \n{\n\xc2\xa0 \xc2\xa0 .arora_exec_free_space 4399531 : \n\xc2\xa0 \xc2\xa0 {\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.text)\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.rodata)\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.data.rel.ro.local)\n\xc2\xa0 \xc2\xa0 } :mysegment\n\n\xc2\xa0 \xc2\xa0 .arora_data_free_space (ADDR(.arora_exec_free_space) + SIZEOF(.arora_exec_free_space)) : AT (7592352)\n\xc2\xa0 \xc2\xa0 {\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.data)\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.bss)\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 *(.got)\n\xc2\xa0 \xc2\xa0 } :mysegment\n}\n