GCC, Elf, секции релокации
От: 0x7be СССР  
Дата: 06.06.18 08:42
Оценка:
Коллеги,
у меня такой специфический вопрос.

Согласно документации, gcc при генерации релоцируемого кода создаёт специальные секции, в которые помещает соответствующую информацию о релокации: .rela.code, .rela.data и т.п.
Для создания результирующего образа я написал свой собственный linker script, в котором аккуратно по нужным адресам раскладываю код, данные и прочее.
Есть цель — сделать так, чтобы на целевой системе загрузчик мог динамически релоцировать код. Для этого я решил в результрирующий образ сбросить эти секции.
Для этого вставил в linker script следующий код:
...
.relocations :
{
 *(.rela.*);
}
...


Но по факту выходная секция .relocations имеет нулевую длину, хотя в a.out, который получается из GCC секции с данными релокации присутствуют.

Что я делаю не так?

P.S. Использую сборку gcc: m68k-elf-gcc для архитектуры MC68000, целевая система — собранный на коленке компьютер на базе этого процессора.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.