在gcc 5.0.1版上启用aarch64(armv8-a)的fpu支持

时间:2015-04-19 23:05:49

标签: arm neon arm64 fpu gcc5

我使用HPLinpack基准测量Cortex-a57的GFLOPS性能,它几乎达不到1 FP /周期(考虑到~2.4 GFLOPS @ 2.4 GHz)。由于旧的编译器(gcc 4.9.1)抱怨了几个版本的-mfpu =选项,我尝试配置gcc 5.0.1如下所示

../ gcc / configure --with-gmp = / tmp / gcc --with-mpfr = / tmp / gcc --with-mpc = / tmp / gcc --with-libelf = / tmp / gcc - -enable-languages = c,c ++,fortran,go --target = aarch64-linux-gnu --prefix = / opt / another-gcc5 --with-arch = armv8-a --with-cpu = cortex-a57 - -with-FPU =氖-FP-armv8

配置很好,但是在调用make时,--with-fpu标志在gcc / gcc / config.gcc中崩溃:4351

echo"此目标不支持--with- $ option。" 2 - ;&安培; 1

由于garch / gcc / config.gcc中定义的aarch64架构的supported_default 3464:3467

supported_defaults =   case" $ {target}"在     aarch64 * - - 的)         supported_defaults =" abi cpu arch"

为什么不支持fpu选项?任何建议都表示赞赏,我以前从未这样做过,我有点失落:)

1 个答案:

答案 0 :(得分:1)

32位arm和64位aarch64目标在GCC中是分开的。 aarch64目标不支持Where()配置选项(或Where()命令行选项),因为默认情况下假定存在FPU。因此,默认情况下,您始终可以获得浮点和AdvancedSIMD支持。

这与32位arm目标(--with-fpu三元组)不同,后者也支持软浮点ABI,并且可以从旧版本的架构中配置不同级别的FPU支持。

总结:如果你定位aarch64,则不需要指定--with-fpu配置选项(无论如何都不支持aarch64)