Eu preciso otimizar o tamanho do meu executável severamente ( ARMdesenvolvimento) e notei que no meu esquema de compilação atual ( gcc+ ld) os símbolos não usados não estão sendo removidos.
O uso de arm-strip --strip-unneededpara os executáveis / bibliotecas resultantes não altera o tamanho de saída do executável (não tenho ideia do motivo, talvez simplesmente não possa) .
Qual seria a maneira (se houver) de modificar meu pipeline de construção, de modo que os símbolos não utilizados sejam retirados do arquivo resultante?
Eu nem sequer penso nisso, mas meu ambiente incorporado atual não é muito "forte" e economizando ainda 500Kfora de 2Mresultados em um impulso muito agradável desempenho de carregamento.
Atualizar:
Infelizmente, a gccversão atual que uso não tem a -dead-stripopção e o -ffunction-sections... + --gc-sectionsfor ldnão dá nenhuma diferença significativa para a saída resultante.
Estou chocado que isso se tornou um problema, porque eu tinha certeza que gcc + lddeveria remover automaticamente os símbolos não utilizados (por que eles ainda têm que mantê-los?).
boostbibliotecas, o .exearquivo resultante contém muitos arquivos objetos não usados e devido às especificações do meu tempo de execução incorporado atual , iniciar um 10mbaplicativo demora muito mais do que, por exemplo, iniciar um 500kaplicativo.