Коллеги,
у меня такой специфический вопрос.
Согласно документации, gcc при генерации релоцируемого кода создаёт специальные секции, в которые помещает соответствующую информацию о релокации: .rela.code, .rela.data и т.п.
Для создания результирующего образа я написал свой собственный linker script, в котором аккуратно по нужным адресам раскладываю код, данные и прочее.
Есть цель — сделать так, чтобы на целевой системе загрузчик мог динамически релоцировать код. Для этого я решил в результрирующий образ сбросить эти секции.
Для этого вставил в linker script следующий код:
...
.relocations :
{
*(.rela.*);
}
...
Но по факту выходная секция .relocations имеет нулевую длину, хотя в a.out, который получается из GCC секции с данными релокации присутствуют.
Что я делаю не так?
P.S. Использую сборку gcc: m68k-elf-gcc для архитектуры MC68000, целевая система — собранный на коленке компьютер на базе этого процессора.