https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96883
Bug ID: 96883
Summary: -march=native on AWS aarch64 doesn't work (unknown
extensions)
Product: gcc
Version: 10.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: matthew.thompson at nasa dot gov
Target Milestone: ---
All,
I've recently been experimenting on the Graviton2 processors on AWS and
encountered a possible bug. Namely, -march=native doesn't seem to work:
$ gcc -march=native -O3 test.c
Assembler messages:
Error: unknown architectural extension `sb+ssbs'
Error: unrecognized option -march=armv8.2-a+crypto+fp16+rcpc+dotprod+sb+ssbs
This sort of looks like a duplicate(-ish) of Bugs 88530 and 89508, but those
are closed, so perhaps not.
Of course, my dumb test file isn't needed as the usual help=target shows this
as well:
$ gcc -march=native -Q --help=target
The following options are target specific:
-mabi= lp64
-march=
armv8.2-a+crypto+fp16+rcpc+dotprod+sb+ssbs
-mbig-endian [disabled]
-mbionic [disabled]
-mbranch-protection=
-mcmodel= small
-mcpu=
-mfix-cortex-a53-835769 [enabled]
-mfix-cortex-a53-843419 [enabled]
-mgeneral-regs-only [disabled]
-mglibc [enabled]
-mlittle-endian [enabled]
-mlow-precision-div [disabled]
-mlow-precision-recip-sqrt [disabled]
-mlow-precision-sqrt [disabled]
-mmusl [disabled]
-momit-leaf-frame-pointer [enabled]
-moutline-atomics [enabled]
-moverride=<string>
-mpc-relative-literal-loads [enabled]
-msign-return-address= none
-mstack-protector-guard-offset=
-mstack-protector-guard-reg=
-mstack-protector-guard= global
-mstrict-align [disabled]
-msve-vector-bits=<number> scalable
-mtls-dialect= desc
-mtls-size= [default]
-mtrack-speculation [disabled]
-mtune=
-muclibc [disabled]
-mverbose-cost-dump [disabled]
Known AArch64 ABIs (for use with the -mabi= option):
ilp32 lp64
Supported AArch64 return address signing scope (for use with
-msign-return-address= option):
all non-leaf none
The code model option names for -mcmodel:
large small tiny
Valid arguments to -mstack-protector-guard=:
global sysreg
The possible SVE vector lengths:
1024 128 2048 256 512 scalable
The possible TLS dialects:
desc trad
Assembler messages:
Error: unknown architectural extension `sb+ssbs'
Error: unrecognized option -march=armv8.2-a+crypto+fp16+rcpc+dotprod+sb+ssbs
While I'm not sure it matters, I was on a c6g.4xlarge instance. (Which I think
is Neoverse N1, but I'm not too sure and the mcpu/mtune above don't print it,
so maybe not.)
Also, per guidelines:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/ubuntu/GCC/10.2.0/libexec/gcc/aarch64-unknown-linux-gnu/10.2.0/lto-wrapper
Target: aarch64-unknown-linux-gnu
Configured with: ../gcc-10.2.0/configure --prefix=/home/ubuntu/GCC/10.2.0
--disable-multilib --enable-languages=c,c++,fortran
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)