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)
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译我的程序时,两个部分(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}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |