使用-fPIC和-Os克服armgcc缺陷

使用-fPIC和-Os克服armgcc缺陷,gcc,arm,compiler-optimization,Gcc,Arm,Compiler Optimization,新的gcc arm版本似乎有一个bug,如中所述 问题是gcc会生成冗余代码,这显然不是要求的最小大小(-Os)。gcc 4.5.4生成更好的代码(尺寸更短,没有冗余堆栈框架) 这个问题有解决办法吗?也许是另一个编译器标志?我搜索了gcc标志,但找不到任何内容。FWIW,ARM gcc trunk(linux)生成与4.5.4相同的代码(至少在添加-marm选项之后)。使用-O2,将得到相同的结果。就个人而言,用一行函数比较编译器的输出是有问题的practice@user3124812我需要代码

新的gcc arm版本似乎有一个bug,如中所述

问题是gcc会生成冗余代码,这显然不是要求的最小大小(-Os)。gcc 4.5.4生成更好的代码(尺寸更短,没有冗余堆栈框架)


这个问题有解决办法吗?也许是另一个编译器标志?我搜索了gcc标志,但找不到任何内容。

FWIW,ARM gcc trunk(linux)生成与4.5.4相同的代码(至少在添加
-marm
选项之后)。使用
-O2
,将得到相同的结果。就个人而言,用一行函数比较编译器的输出是有问题的practice@user3124812我需要代码尽可能小(这是一个更大项目的一部分),所以我必须使用
-Os
@Michael什么是ARM-gcc主干?我希望能够使用gcc的最新功能,而不会出现上述问题。在编译器资源管理器中,不清楚它是什么版本。@RalphMimms添加
-v
选项将给出
gcc版本11.0.1 20210315(实验)(gcc)