This section provides a brief overview of the new C compiler features and functionality introduced in the Sun Studio 12 Update 1 C++ 5.10 Compiler release. For specific explanations, follow the cross references provided for each item.
Object files created by the compilers on the Solaris OS on x86 platforms or the Linux OS are incompatible with previous compiler versions if the application code contains functions with parameters or return values using _m128/_m64 data types. Users with .il inline function files, assembler code, or asm inline statements calling these functions also need to be aware of this incompatibility.
New -xtarget values for x86 processors woodcrest, penryn, nehalem, core2; and SPARC processors ultraT2plus and sparc64vii.
New -xarch values for x86 architectures ssse3, sse4_1, sse4_2, and for SPARC architectures sparcima.
New —xchip values for SPARC processors sparc64vii, ultraT2plus. New —xchip values for x86 processors core2, penryn, nehalem.
The -xprofile=collect and -xprofile=use options provide improved support for profiling multi-threaded, dynamically linked applications.
The -xcrossfile=1 option becomes an alias of the -xipo=1 option. The -xcrossfile=0 option no longer has any effect. Specifically, -xcrossfile=1 and -xcrossfile=0 are equivalent to -xipo=1.
On Solaris platforms, the -xpec[=yes|no] option generates a PEC binary that is recompilable for use with the Automatic Tuning System (ATS).
The -Y option does not accept i as an argument.
On SPARC. platforms, the -xdepend option is now implicitly enabled for optimization levels -x03 or higher, and is no longer included in the expansion of the -fast option
Support for OpenMP 3.0 includes a libmtsk library. OpenMP programs will link with this library by default instead of the libmtsk library in the Solaris OS.
-xannotate[=yes|no] (SPARC platforms only) instructs the compiler to create binaries that can be transformed later by binary modification tools like binopt(1).
The -xia (interval arithmetic) option is now supported on x86 Solaris platforms.
The -xipo_archive option is now supported on x86 Solaris and Linux platforms.
The -Qoption option no longer accepts ube_ipa as an argument.
The expansion of the -fast option now includes -D_MATHERR_ERRNO_DONTCARE.
The -xvpara option, which shows parallelization warning messages, is now supported.
The -sb, -sbfast, -xsb and -xsbfast options are now deprecated and are ignored silently.
The compiler now inlines code when you specify the -g option with any -O or -xO optimization levels as long as you do not also specify +d.
The pragma must_have_frame is now supported.
In standard C++, a case label in a switch statement can have only one associated value. The Sun Studio C++ compiler allows an extension found in some compilers known as case ranges.
The compiler normally creates temporary files in the /tmp directory. You can specify another directory by setting the TMPDIR environment variable.
The following attributes of functions are now supported: _attribute_((const)) _attribute_((constructor)) _attribute_((destructor))
The following attribute of variables is now supported for struct and enum types only: _attribute_((packed))
Universal Character Names are now supported.
Loop pragmas are now supported.
User-defined names for macro variadic arguments are now supported.
The -include filename option for specifying preprocessor include files has been added.