On 19 April 2016 at 14:47, Laurent Thévenoux laurent.thevenoux@ens-lyon.fr wrote:
Hi Yvan,
Le 19 avr. 2016 à 13:46, Yvan Roux yvan.roux@linaro.org a écrit :
Hi Laurent,
On 19 April 2016 at 11:00, Laurent Thévenoux laurent.thevenoux@ens-lyon.fr wrote:
Dear Devs,
I get the following error when I use gcc 4.9.4 with the -mcpu flag set with a certain configuration of ‘feature/nofeature’, i.e.: -mcpu=cortex-a57+fp+simd+nocrypto+nocrc will fail, but -mcpu=cortex-a57+fp+nocrypto+simd+nocrc won’t, for example.
Here the error I get with the former -mcpu flag:
Assembler messages: Error: unknown architectural extension `n' Error: unrecognized option -mcpu=cortex-a57+fp+simd+n
Minimal test case: $gcc -march=armv8-a+fp+simd+nocrc+nocrypto -mcpu=cortex-a57+fp+simd+nocrypto+nocrc -mtune=cortex-a57 helloworld.c.
According to the gcc documentation https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/AArch64-Options.html#AArch64-Options the order seems to be irrelevant. I obtained the error with the linaro-gcc 4.9.4 binary release, as well as a personal built from linaro sources package. It also fails with gcc 4.9.2 on the 3.18.0-linaro-hikey debian distribution.
I also tried with (linaro) gcc 4.8.5, 5.1.1, 5.2.1, and 5.3.1 versions, and it works well.
On which version of GCC 4.9.4 do you see that issue ? I can't reproduce with our latest 4.9.4 release (4.9-2016.02) which is available here:
https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/aarch6...
I think I have the latest one, -v gives me: gcc version 4.9.4 20151028 (prerelease) (Linaro GCC 4.9-2016.02).
Moreover, I downloaded the version from your link, and I reproduce the issue with :
$ ./gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -march=armv8-a+fp+simd+nocrc+nocrypto -mcpu=cortex-a57+fp+simd+nocrypto+nocrc -mtune=cortex-a57 helloworld.c Assembler messages: Error: unknown architectural extension `n' Error: unrecognized option -mcpu=cortex-a57+fp+simd+n
Ah, indeed sorry I assumed it was a compiler issue and stop the compilation after cc1 (option -S), and the error messages are given by the assembler, which comes from binutils version 2.24 in our 4.9.4 binary release, whereas it is binutils version 2.25 in GCC 5 ones.
The commit which fixed this issue in 2.25 is this one: