我想将多个.o文件合并为一个.o文件,同时合并一些部分。用ld合并部分
如果我执行
ld -r first.o second.o -o result.o
然后适当合并的目标文件,但我也需要合并各种.text段。当链接共享对象时,ld中的默认链接描述文件可以使用此节合并功能,但在使用-r时,我没有设法强制使用自定义链接描述文件。 ld似乎忽略了我尝试过的任何脚本。我试图修改默认的链接脚本,取而代之的是这个
.text :
{
*(.text.unlikely .text.*_unlikely)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0x90909090
.text段块如何合并的目标文件同时还采用LD合并.text段?
你是如何得出(可能不正确)的结论:'ld -r' * * not * merge'.text' sections?另外,你在哪个平台上使用了哪个版本的'ld'? –
我使用以下ld版本:GNU ld(GNU Binutils)2.20.0.20100122-0.7.9。尝试更新的版本以及相同的结果。 我不是在谈论ld没有合并不同目标文件的'.text'部分,而是不合并目标文件的_all_'.text *'部分,比如'.text','.text._ZN13somenamespace3FooD1Ev' ,'.text._ZN13somenamespace3FooD0Ev','.text._ZNSt8_Rb_treeIPN13somenamespace3BarES2_St9_IdentityIS2_ENS1_6isLessESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E'等。 –