Мне нужно сильно оптимизировать размер моего исполняемого файла (ARM development) и
Я заметил, что в моей текущей схеме сборки (gcc + ld) неиспользуемые символы не удаляются.
Использование arm-strip --strip-unneeded для результирующих исполняемых файлов/библиотек не изменяет размер вывода исполняемого файла (я понятия не имею, почему, может быть, это просто не получается).
Каким образом (если он существует) изменить мой конвейер здания, чтобы неиспользуемые символы были удалены из результирующего файла?
Я бы даже не подумал об этом, но моя текущая встроенная среда не очень "мощная" и
сохранение даже 500K из 2M приводит к очень хорошему повышению производительности загрузки.
Update:
К сожалению, текущая версия gcc, которую я использую, не имеет опции -dead-strip, а -ffunction-sections... + --gc-sections для ld не дает существенной разницы для полученного результата.
Я в шоке, что это даже стало проблемой, потому что я был уверен, что gcc + ld должен автоматически разбивать неиспользуемые символы (почему они даже должны их хранить?).