Re: Is -march/-mtune=native actually supported on FreeBSD arm* or aarch64?

2018-01-05 Thread Dimitry Andric
On 5 Jan 2018, at 06:52, Jan Beich  wrote:
> 
> 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?

2018-01-04 Thread Jan Beich
Jan Beich  writes:

> 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?

2018-01-04 Thread Jan Beich
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"