Is -march/-mtune=native actually supported on FreeBSD arm* or aarch64?
Jan Beich
jbeich at FreeBSD.org
Fri Jan 5 05:52:16 UTC 2018
Some ports pass -march=native and/or -mtune=native. Both are extensively
documented by GCC for x86. For other architectures some excerpts say
"native" is only supported on Linux (via /proc/cpuinfo). For example,
$ uname -p
armv6
$ echo 'int main() {}' >a.c
$ clang -march=native a.c
clang: error: the clang compiler does not support '-march=native'
$ clang -mtune=native a.c
$ pkg install -qy gcc7
$ gcc7 -march=native a.c
$ gcc7 -mtune=native a.c
$ uname -p
aarch64
$ echo 'int main() {}' >a.c
$ clang -march=native a.c
clang: error: the clang compiler does not support '-march=native'
$ clang -mtune=native a.c
clang: error: the clang compiler does not support '-mtune=native'
$ pkg install -qy gcc7
$ gcc7 -march=native a.c
$ gcc7 -mtune=native a.c
What's the rationale for Clang vs. GCC difference? Is it safe to run
FreeBSD arm* -mtune=native binaries on CPUs older than build machine?
More information about the freebsd-toolchain
mailing list