Re: Is -march/-mtune=native actually supported on FreeBSD arm* or aarch64?
On 5 Jan 2018, at 06:52, Jan Beichwrote: > > 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? On non-x86, llvm has not implemented CPU detection, as far as I know. And since we don't export any CPU identification sysctl or even a /proc/cpuinfo, getting that information from userland is tricky. (I've seen programs that attempt to parse /var/run/dmesg.boot, but it is very error-prone, obviously.) It is safer to just specify the target CPU explicitly, IMO. -Dimitry signature.asc Description: Message signed with OpenPGP
Re: Is -march/-mtune=native actually supported on FreeBSD arm* or aarch64?
Jan Beichwrites: > 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, Oops, found a partial answer: https://lists.freebsd.org/pipermail/freebsd-arm/2016-February/013190.html ___ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"
Is -march/-mtune=native actually supported on FreeBSD arm* or aarch64?
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? ___ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"