Я хотел бы объединить несколько файлов .o в один файл .o, а также объединить некоторые разделы.
Если я выполню
ld -r first.o second.o -o result.o
затем он правильно объединяет объектные файлы, но мне также нужно объединить различные разделы .text. Эта функция объединения разделов доступна сценарием компоновщика по умолчанию в ld, когда вы связываете общий объект, но мне не удалось принудительно использовать собственный скрипт компоновщика при использовании -r. ld, похоже, игнорирует все сценарии, которые я пробовал. Я попытался изменить сценарий компоновщика по умолчанию и заменил блок раздела .text на этот
.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?
ld -r
не объединяет.text
разделы? Кроме того, какую версиюld
на какой платформе вы использовали? - person Employed Russian   schedule 18.04.2015.text
разделы разных объектных файлов, но и не объединяет все.text*
разделы объектных файлов, например.text
,.text._ZN13somenamespace3FooD1Ev
,.text._ZN13somenamespace3FooD0Ev
,.text._ZNSt8_Rb_treeIPN13somenamespace3BarES2_St9_IdentityIS2_ENS1_6isLessESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E
и т. д. - person Kamu Flazs   schedule 18.04.2015