针对 x86 Oracle Solaris 平台进行编译时,请注意以下重要问题。
在 –xarch 设置为 sse、sse2、sse2a、sse3 或更高级别的情况下编译的程序必须仅在提供这些扩展和功能的平台上运行。
在本发行版中,-xarch=generic 的缺省指令集和含义已更改为 sse2。现在,如果在不指定目标平台选项的情况下进行编译,会导致 sse2 二进制与早期的 Pentium III 或早期的系统不兼容。
如果在不同的步骤中进行编译和链接,请始终使用编译器和相同的 –xarch 设置进行链接,以确保链接正确的启动例程。
在 x86 上得到的数值结果可能与在 SPARC 上得到的结果不同,这是由 x86 80 位浮点寄存器造成的。为了最大限度减少这些差异,请使用 –fstore 选项或使用 –xarch=sse2 进行编译(如果硬件支持 SSE2)。
因为内部数学库(例如,sin(x))不同,所以 Oracle Solaris 和 Oracle Linux 之间的数值结果也可能不同。