ro added a comment.

In D86621#2249240 <https://reviews.llvm.org/D86621#2249240>, @jrtc27 wrote:

> Actually, `__sparcv8` is only for V8; if you have 32-bit V9 on Solaris it 
> defines `__sparcv8plus` _instead_:
>
>   jrtc27@gcc-solaris11:~$ /opt/solarisstudio12.4/bin/cc -E - -xarch=v9 -m32 
> -xdumpmacros </dev/null 2>&1 | grep sparc
>   #define __sparcv8plus 1
>   #define __sparc 1
>   #define sparc 1

That's only true up to Studio 12.4: 12.5 and 12.6 define both `__sparcv8` and 
`__sparcv8plus`, and strangely even the 12.4 and 12.3 `cc(1)` man pages only 
documents `__sparcv8` while 12.2 only has `__sparc`.  We could also define 
`__sparcv8plus`, but `gcc` doesn't do that, so it would only help people 
compiling with `cc`.

> In fact, -xarch=v9 + -m32 is a bit weird because -xarch=v9 implies -m64 so 
> the argument order matters, and the modern way to do it is (if you read the 
> man page, -xarch=sparc means V9 and -xarch=v9 is an alias for -m64 
> -xarch=sparc...):

Right; 12.5 and 12.6 `cc` even warn

  cc: Warning: -xarch=v9 is deprecated, use -m64 -xarch=sparc instead



>   jrtc27@gcc-solaris11:~$ /opt/solarisstudio12.4/bin/cc -E - -m32 
> -xarch=sparc -xdumpmacros </dev/null 2>&1 | grep sparc
>   #define __sparcv8plus 1
>   #define __sparc 1
>   #define sparc 1
>
> (gcc211 on the GCC compile farm; any open-source developer can register, it's 
> not specific to GCC developers despite the name)

I do have a cfarm account already.  However, there's no need for that: I do 
have every version of Studio back to 11 installed locally.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86621/new/

https://reviews.llvm.org/D86621

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to