Be aware of the following important issues when compiling for x86 Oracle Solaris platforms.
Programs compiled with –xarch set to sse, sse2, sse2a,sse3, or beyond must be run only on platforms that provide these extensions and features.
With this release, the default instruction set and the meaning of -xarch=generic has changed to sse2. Now, compiling without specifying a target platform option results in an sse2 binary incompatible with older Pentium III or earlier systems.
If you compile and link in separate steps, always link using the compiler and with the same –xarch setting to ensure that the correct startup routine is linked.
Numerical results on x86 might differ from results on SPARC due to the x86 80-bit floating-point registers. To minimize these differences, use the –fstore option or compile with –xarch=sse2 if the hardware supports SSE2.
Numerical results can also differ between Oracle Solaris and Oracle Linux because the intrinsic math libraries (for example, sin(x)) are not the same.