Ниже перечислены страницы GCC для разделов функций и разделов разделов данных:
-ffunction-sections -fdata-sections
Поместите каждую функцию или элемент данных в свой раздел в выходной файл, если цель поддерживает произвольные разделы. Имя функции или имя элемента данных определяет имя раздела в выходном файле. Используйте эти параметры в системах, где компоновщик может выполнять оптимизацию, чтобы улучшить локальность ссылки в пространстве команд. Большинство систем, использующих формат объекта ELF, и процессоры SPARC, работающие под управлением Solaris 2, имеют компоновщики с такими оптимизациями. AIX может иметь такую оптимизацию в будущем.
Используйте эти параметры только тогда, когда есть значительные преимущества от этого. Когда вы укажете эти параметры, ассемблер и компоновщик создадут более крупные объекты и исполняемые файлы, а также будут медленнее. Вы не сможете использовать gprof для всех систем, если вы укажете эту опцию, и у вас может быть проблемы с отладкой, если вы укажете оба параметра и -g.
У меня создалось впечатление, что эти параметры помогут уменьшить размер исполняемого файла. Почему эта страница говорит, что она создаст более крупные исполняемые файлы? Я что-то пропустил?