下面列出了自上一发行版起 C、C++ 和 Fortran 编译器通用的重大更改。可在编译器手册页和用户指南中找到详细信息。
编译器支持 SPARC-V9 ISA 的 SPARC VIS3 版本。通过使用 -xarch=sparcvis3 选项进行编译,编译器可以使用 SPARC-V9 指令集中的指令,以及 UltraSPARC 扩展(包括 Visual Instruction Set (VIS) 版本 1.0)、UltraSPARC-III 扩展(包括 Visual Instruction Set (VIS) 版本 2.0、积和熔加运算指令和 Visual Instruction Set (VIS) 版本 3.0)。
-xvector 选项的缺省值已在基于 x86 的系统上更改为 -xvector=simd。缺省情况下,在基于 x86 的系统上使用流化处理扩展,这样在优化级别 3 以及更高级别上很有好处。可使用子选项 no%simd 禁用该选项。在基于 SPARC 的系统上,缺省值为 -xvector=%none。
现在提供了对 AMD SSE4a 指令集的支持。使用 -xarch=amdsse4a 选项进行编译。
手册页已使用 -xtarget 值的正确扩展 ultra3、ultra3i、ultra3cu、ultra4 和 ultra4plus 进行更新。
使用新增的 -traceback 选项,当出现严重错误时,可执行文件可以输出栈跟踪。此选项使可执行文件能够在退出之前捕获一组信号,并输出栈跟踪和核心转储。如果有多个线程生成了信号,仅为第一个线程生成栈跟踪。要使用追踪,请在将程序与 f95、cc 或 CC 链接时添加 -traceback 选项。为了方便起见,也可在编译时接受此选项,但是会将其忽略。使用 -traceback 选项和 -G 选项创建共享库将发生错误。有关 -traceback 选项的详细信息,请参见编译器手册页。
-mt 选项已更改为 -mt=yes 或 -mt=no。-mt=yes 选项可确保以适当的顺序链接库。有关详细信息,请参见编译器手册页。
为 C 和 C++ 添加了新的 pragma。有关详细信息,请参见编译器用户指南。
#warning 编译器指令(C 和 C++)在指令中发出文本作为警告,然后继续编译。
(C 和 C++)头文件 mbarrier.h 现在可用。该文件用于在 SPARC 和 x86 处理器上为多线程代码定义多个内存屏障内部函数。有关详细信息,请参见编译器用户指南。
-xprofile=tcov[: prof_dir] 选项接受可选的配置文件目录文件名参数。如果指定了配置文件目录文件名,编译的程序将生成可供 tcov(1) 或使用 -xprofile=use:prof_dir 的反馈编译使用的数据。有关详细信息,请参见编译器用户指南。
在此发行版中,由 -xMD 和 -xMMD 选项 (C/C++) 写入的相关文件覆盖了先前存在的文件。文件名派生自 -o filename(如果已指定)、具有 .d 后缀的输入源文件名或者由 -xMF 选项指定的文件名。使用 -xMD 或 -xMMD 选项指定了 -o filename 或 -xMF filename 时,仅接受一个源文件。使用此方式编译多个源文件将发生错误。