Запретить g ++ добавление дополнительных эльфийских разделов

При компиляции с g ++ создает дополнительный раздел почти для каждой функции.
Это происходит на linux с elf64 исполняемый файл.
К примеру:

text._ZN12MemoryMapper11SetUpMemoryEP11KernelStart

Как я могу сказать g ++ выдавать весь код в .text, чтобы был только один раздел .text

Это происходит с разделами -ffunction

И разделы остаются даже после

objcopy -S file.elf striped

==================================================

Дополнительная информация:

CXXFLAGS = -g -O0 -ffreestanding -fno-rtti -fno-exceptions -fno-asynchronous-unwind-tables -std=c++11 $(INCLUDES)
g++ version = gcc (GCC) 5.1.0

1

Решение

text._ZN12MemoryMapper11SetUpMemoryEP11KernelStart

Это в соответствии функция с смутная связь.

Вы можете избежать создания таких разделов для встроенных функций, не имея никаких встроенных функций в вашем источнике. Может быть опция отключения генерации кода для встроенных функций, но я ее не нашел.

Обратите внимание, что отключение этого, как правило, пустая трата времени: они ничего не повредят, и требуются, если у вас есть несколько модулей компиляции, или вы получите либо ошибки ссылок, либо двоичный раздув.

2

Другие решения


По вопросам рекламы [email protected]