1. Introducing The Oracle Solaris Studio 12.2 Release
8. Known Problems, Limitations, and Workarounds in This Release
The following lists the significant changes common to the C, C++, and Fortran compilers since the previous release. Details can be found in the compiler man pages and user guides.
The compilers support the SPARC VIS3 version of the SPARC-V9 ISA. Compiling with the -xarch=sparcvis3 option enables the compiler to use instructions from the SPARC-V9 instruction set, plus the UltraSPARC extensions, including the Visual Instruction Set (VIS) version 1.0, the UltraSPARC-III extensions, including the Visual Instruction Set (VIS) version 2.0 the fused multiply-add instructions, and the Visual Instruction Set (VIS) version 3.0.
The default for the -xvector option has changed on x86-based systems to -xvector=simd. Streaming extensions are used on x86-based systems by default where beneficial at optimization level 3 and above. The suboption no%simd can be used to disable it. On SPARC-based systems, the default is -xvector=%none
Support for the AMD SSE4a instruction set is now available. Compile with the -xarch=amdsse4a option.
The man pages have been updated with the correct expansion for -xtarget values ultra3, ultra3i, ultra3cu, ultra4, and ultra4plus.
The new -traceback option enables an executable to print a stack trace if a severe error occurs. This option causes the executable to trap a set of signals and print a stack trace and core dump before exiting. If multiple threads generate a signal, a stack trace will be produced only for the first one. To use traceback, add the -traceback option when linking a program with either f95, cc, or CC. For convenience, the option is also accepted at compile-time but is ignored. Using the -traceback option with the -G option to create a shared library is an error. See the compiler man pages for details on the -traceback option
The -mt option has been changed to -mt=yes or -mt=no. The -mt=yes option assures that libraries are linked in the appropriate order. See the compiler man pages for details.
New pragmas have been added for C and C++. For details, see the compiler user guides.
The #warning compiler directive (C and C++) issues the text in the directive as a warning and continues compilation
The (C and C++) header file mbarrier.h is now available. It defines various memory barrier intrinsics for multithreaded code on SPARC and x86 processors. For details, see the compiler user guides for details.
The -xprofile=tcov[:prof_dir] option accepts an optional profile directory pathname argument. If a profile directory pathname is specified, the compiled program generates data that can be used by either tcov(1) or feedback compilation with -xprofile=use:prof_dir. For details, see the compiler user guides.
In this release, the dependency file written by the -xMD and -xMMD options (C/C++) overwrites any previously existing file. The file name is derived from the -o filename, if specified, or the input source filename, with a .d suffix appended, or the filename specified by the -xMF option. When the -o filename or -xMF filename is specified with the -xMD or -xMMD option, only a single source file is accepted. Compiling multiple source files this way is an error.