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/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
Ah, indeed sorry I assumed it was a compiler issue and stop thecompilation after cc1 (option -S), and the error messages are given bythe assembler, which comes from binutils version 2.24 in our 4.9.4binary 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
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