Парсинг объектного файла gcc
От: maks1180  
Дата: 20.11.21 00:23
Оценка:
Как сделать парсинг объектного файла созданого gcc 10 ?
Нужно это для того, что-бы поменять местами функции и статические переменные, а так же изменить статические переменные.
Исходники менять очень трудоёмко.
===============================================
(реклама, удалена модератором)
Re: Парсинг объектного файла gcc
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 20.11.21 00:30
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Как сделать парсинг объектного файла созданого gcc 10 ?


Руками, не?
Если полный контроль не нужен, то линупсовыми cli тулзами


M>Нужно это для того, что-бы поменять местами функции и статические переменные, а так же изменить статические переменные.

M>Исходники менять очень трудоёмко.

Какая разница, для чего ты это хочешь делать?
Маньяк Робокряк колесит по городу
Re: Парсинг объектного файла gcc
От: Zhendos  
Дата: 20.11.21 04:24
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Как сделать парсинг объектного файла созданого gcc 10 ?

M>Нужно это для того, что-бы поменять местами функции и статические переменные, а так же изменить статические переменные.
M>Исходники менять очень трудоёмко.

С помощью -ffunction-sections флага gcc можно поместить каждую функцию
в собственную секцию, а после этого есть два варианта:

— скрипты ld.bfd https://sourceware.org/binutils/docs/ld/Scripts.html#Scripts
контролировать можно практически все, но очень геморно
— передать ld.gold опцию --section-ordering-file

Пользовался только первым вариантом,
чтобы для определенного ARM разложить часть функций в быструю SRAM,
а часть в медленную NOR флешку.
Re: Парсинг объектного файла gcc
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.21 18:26
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Как сделать парсинг объектного файла созданого gcc 10 ?

M>Нужно это для того, что-бы поменять местами функции и статические переменные, а так же изменить статические переменные.
M>Исходники менять очень трудоёмко.

Там ELF. Он относительно простой и хорошо документированный. Так что бери любую библиотеку для работы с ELF'ами, и вперед.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.