Я ищу простой способ переупорядочить разделы файлов ELF. У меня есть последовательность пользовательских разделов, что я хотел бы, чтобы все были выровненные в определенном порядке.
Единственным путем я нашел, как сделать это, должен использовать сценарий Компоновщика. Однако документация указывает, что определение пользовательского сценария компоновщика переопределяет значение по умолчанию. Сценарий компоновщика по умолчанию имеет много содержания в нем, что я не хочу должным быть копировать в своем пользовательском сценарии только для получения трех разделов всегда вместе в определенном порядке. Это не кажется очень гибким для твердого кодирования поведения компоновщика как этот.
Почему я хочу сделать это? У меня есть раздел данных, что я должен знать ячейку памяти во время выполнения (начало и конец). Таким образом, я создал два дополнительных раздела и поместил переменные сигнальной метки в них. Я затем хочу использовать ячейки памяти тех переменных для знания степени неизвестного раздела в памяти.
.markerA
int markerA;
.targetSection
... Lots of variables ...
.markerB
int markerB;
В вышеупомянутом примере я знал бы, что данные в .targetSection между адресом markerA и markerB.
Там другой путь состоит в том, чтобы выполнить это? Есть ли библиотеки, которые позволили бы мне читать в в настоящее время выполняющемся ELF, отображают и определяют местоположение раздела и размер?