我有以下链接器脚本:
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)合为一个
加载段。
有什么方法可以使用链接器脚本来做到这一点吗?
我该怎么做?
谢谢。
当然 - 你只需要使用PHDRS https://web.archive.org/web/20120131063716/http://sources.redhat.com/binutils/docs-2.10/ld_3.html#SEC39。我认为该链接中的示例几乎正是您想要做的。这是我根据链接器脚本制作的(未经测试的)示例:
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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)