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.
Do I have to open a bug report for this, or maybe, I just misunderstood something, somewhere?
Regards, Laurent Thévenoux
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...
FYI, in GCC 5 this part of the code was highly refactored and enhanced.
Cheers, Yvan
Do I have to open a bug report for this, or maybe, I just misunderstood something, somewhere?
Regards, Laurent Thévenoux
linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev
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 mailto: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... https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/aarch64-linux-gnu/
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
FYI, in GCC 5 this part of the code was highly refactored and enhanced.
Cheers, Yvan
Do I have to open a bug report for this, or maybe, I just misunderstood something, somewhere?
Regards, Laurent Thévenoux
linaro-dev mailing list linaro-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-dev
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:
Le 19 avr. 2016 à 15:21, Yvan Roux yvan.roux@linaro.org a écrit :
On 19 April 2016 at 14:47, Laurent Thévenoux <laurent.thevenoux@ens-lyon.fr mailto: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:
https://sourceware.org/ml/binutils/2014-11/msg00135.html https://sourceware.org/ml/binutils/2014-11/msg00135.html
Thank you very much!
Do you know in which version of binutils it was corrected? Because, I built gcc 4.9.4 with binutils 2.25.1, and I still reproduce the issue (see below, take a look at the ‘as’ call: the -mcpu flag is truncated). With gcc 4.8, 5.1, 5.2 and 5.3 (all with the same binutils), the issue doesn’t appear.
—
$ ../compilers/bin/gcc-aarch64-linux-gnu-4.9.4-original -march=armv8-a+fp+simd+nocrc+nocrypto -mcpu=cortex-a57+fp+simd+nocrypto+nocrc -mtune=cortex-a57 ../compilers/tests/test-sources/hw.c -v Using built-in specs. COLLECT_GCC=../compilers/bin/gcc-aarch64-linux-gnu-4.9.4-original COLLECT_LTO_WRAPPER=/home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/libexec/gcc/aarch64-linux-gnu/4.9.4/lto-wrapper Target: aarch64-linux-gnu Configured with: /home/ltheveno/compilers/gcc/linaro/srcs-tmp/gcc-linaro-4.9-2016.02/configure --prefix=/home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu --target=aarch64-linux-gnu --program-suffix= --program-prefix= --enable-languages=c,c++,fortran --disable-multilib Thread model: posix gcc version 4.9.4 20151028 (prerelease) (Linaro GCC 4.9-2016.02) COLLECT_GCC_OPTIONS='-march=armv8-a+fp+simd+nocrc+nocrypto' '-mcpu=cortex-a57+fp+simd+nocrypto+nocrc' '-mtune=cortex-a57' '-v' '-mlittle-endian' '-mabi=lp64' /home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/libexec/gcc/aarch64-linux-gnu/4.9.4/cc1 -quiet -v ../compilers/tests/test-sources/hw.c -quiet -dumpbase hw.c -march=armv8-a+fp+simd+nocrc+nocrypto -mcpu=cortex-a57+fp+simd+nocrypto+nocrc -mtune=cortex-a57 -mlittle-endian -mabi=lp64 -auxbase hw -version -o /tmp/cczMgau9.s GNU C (Linaro GCC 4.9-2016.02) version 4.9.4 20151028 (prerelease) (aarch64-linux-gnu) compiled by GNU C version 4.9.2, GMP version 6.1.0, MPFR version 3.1.3, MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/../../../../aarch64-linux-gnu/sys-include" #include "..." search starts here: #include <...> search starts here: /home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/include /home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/include-fixed /home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/../../../../aarch64-linux-gnu/include End of search list. GNU C (Linaro GCC 4.9-2016.02) version 4.9.4 20151028 (prerelease) (aarch64-linux-gnu) compiled by GNU C version 4.9.2, GMP version 6.1.0, MPFR version 3.1.3, MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: d907d11377ac36f51e1d0916e7c06893 COLLECT_GCC_OPTIONS='-march=armv8-a+fp+simd+nocrc+nocrypto' '-mcpu=cortex-a57+fp+simd+nocrypto+nocrc' '-mtune=cortex-a57' '-v' '-mlittle-endian' '-mabi=lp64' /home/ltheveno/compilers/gcc/linaro/builds/original-gcc-linaro-4.9-2016.02-aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/../../../../aarch64-linux-gnu/bin/as -v -EL -march=armv8-a+fp+simd+nocrc+nocrypto -mcpu=cortex-a57+fp+simd+n -mabi=lp64 -o /tmp/cc4LuQND.o /tmp/cczMgau9.s GNU assembler version 2.25.1 (aarch64-linux-gnu) using BFD version (GNU Binutils) 2.25.1 Assembler messages: Error: unknown architectural extension `n' Error: unrecognized option -mcpu=cortex-a57+fp+simd+n
Do you know in which version of binutils it was corrected? Because, I built gcc 4.9.4 with binutils 2.25.1, and I still reproduce the issue (see below, take a look at the ‘as’ call: the -mcpu flag is truncated). With gcc 4.8, 5.1, 5.2 and 5.3 (all with the same binutils), the issue doesn’t appear.
I see it in FSF binutils branch 2.26 and it was backported in Linaro branch: linaro_binutils-2_25-branch (which is available in our git repo: http://git.linaro.org/toolchain/binutils-gdb.git) for instance in Linaro 5.1 2015.08 the version is:
aarch64-linux-gnu/bin/as -v GNU assembler version 2.25.0 (aarch64-linux-gnu) using BFD version (GNU Binutils) 2.25.0 Linaro 2015.01-3-git