- 主题:GCC12终于修复了-flto的问题
WCH的最新RISC-V开发工具带了GCC8和GCC12两套编译器。
好消息是GCC12使用-flto优化选项终于正常了,坏消息是同一套工程,GCC12加-flto优
化比GCC8不加-flto优化代码体积还大。
这更新了个寂寞。
和WCH工程师沟通了下,自己又测试了下,最终找到了原因,GCC12的C库strtok函数实现
可能有问题,使用后会引入一大堆io相关库函数,导致代码体积异常增大。
把SDCC库中的strtok函数实现拿过来,实测终于正常了,相同编译选项GCC12比GCC8大约
能小1.5%,加上-flto选项代码体积能降低12%。1.5%微不足道,不过12%就十分可观了。
GCC太不让人省心了。
--
FROM 222.90.31.*
艹, 终于出GCC12了, 万年不变的GCC8, 我在他们论坛上都问了快两年了
【 在 spadger 的大作中提到: 】
: WCH的最新RISC-V开发工具带了GCC8和GCC12两套编译器。
: 好消息是GCC12使用-flto优化选项终于正常了,坏消息是同一套工程,GCC12加-flto优
: 化比GCC8不加-flto优化代码体积还大。
: ...................
--
FROM 220.181.41.*
strtok就挺不省心的... 不可重入, 换strsep结果兼容性又有点问题
还是得strtok_r
【 在 spadger 的大作中提到: 】
: WCH的最新RISC-V开发工具带了GCC8和GCC12两套编译器。
: 好消息是GCC12使用-flto优化选项终于正常了,坏消息是同一套工程,GCC12加-flto优
: 化比GCC8不加-flto优化代码体积还大。
: ...................
--
FROM 222.129.1.*
使用了静态变量、全局变量都不能重入,这个还好不是什么大问题。
GCC8升级到GCC12修改gcc前缀,这个就很蛋疼,每次都得改。
【 在 tom6bj 的大作中提到: 】
: strtok就挺不省心的... 不可重入, 换strsep结果兼容性又有点问题
: 还是得strtok_r
--
FROM 111.18.155.*