我正在尝试整理一个嵌入式项目,其中开发人员选择将所有 h 和 c 文件包含到 ac 文件中,然后他们可以使用 -whole-program 选项仅编译一个文件以获得良好的大小优化。
我讨厌这一点,并决心把它变成一个传统的程序,只使用 LTO 来实现同样的效果。
开发工具包中包含的版本是;aps-gcc (GCC) 4.7.3 20130524 (Cortus) GNU ld (GNU Binutils) 2.22
一个 .o 文件 .text 是 0x1c7ac,分成 67 个 .o 文件 .text 出来为 0x2f73c,我添加了 LTO 内容并将其减少到 0x20a44,很好但还远远不够。
我已经尝试过 --gc-sections 并使用链接器插件选项,但他们没有进一步改进。
任何建议,我是否从 LTO 看到了正确的改进?