Я хочу создать что-то вроде статического компоновщика для добавления процедур файла .o
(скомпилированных нами) к существующему исполняемому файлу .elf
.Как это сделать?
С моей точки зрения, мы получаем .text
и .data
разделы из файла .o
и добавляем их как новые разделы в файл .elf
(исправление таблицы заголовков разделов).и создание новых заголовков разделов).
Но я не знаю, как добавить импорт .o
файла в файл .elf
.Должен ли я просто получить .rel
таблицы и таблицы символов, объединенные в .elf
?И как правильно исправить смещения в инструкциях?Как я могу узнать, должна ли инструкция быть фиксированной и какое именно смещение должно быть вставлено в нее?(в .o
смещения файлов по умолчанию равны нулю)