Oracle Solaris Studio 12.2 Distribution Readme


Subject to the terms and limitation stated in the Oracle Technology 
Network License Agreement (the "Agreement") for Oracle Solaris Studio 
(the "Program"), and any additional restrictions below, the following 
files are each a Redistributable and may be distributed with any program 
you develop, provided you remain in compliance with the Agreement:

1. Libraries for Solaris[tm] on SPARC(R) and x86 Platforms

   * C++ Libraries
      o libcomplex.so.5
      o librwtool.so.2
      o libstlport.so.1
   * Fortran Libraries
      o libf77compat.so.1 (SPARC only)
      o libfai.so.3 (SPARC only)
      o libfai.so.2 (SPARC only)
      o libfai.so.1
      o libfai2.so.3 (SPARC only)
      o libfai2.so.2 (SPARC only)
      o libfai2.so.1 (SPARC only)
      o libfmaxlai.so.1 (SPARC only)
      o libfmaxvai.so.1 (SPARC only)
      o libfminlai.so.1 (SPARC only)
      o libfminvai.so.1 (SPARC only)
      o libfprodai.so.1 (SPARC only)
      o libfsumai.so.1 (SPARC only)
      o libfsu.so.1
      o libfui.so.2
      o libfui.so.1
      o libfai_isa.so.1 (SPARC only)
      o libfai2_isa.so.1 (SPARC only)
      o libfmaxlai_isa.so.1 (SPARC only)
      o libfmaxvai_isa.so.1 (SPARC only)
      o libfminlai_isa.so.1 (SPARC only)
      o libfminvai_isa.so.1 (SPARC only)
      o libfprodai_isa.so.1 (SPARC only)
      o libfsumai_isa.so.1 (SPARC only)
      o libV77.so.2 (SPARC only)
      o libV77.so.3 (SPARC only) 
   * Math Libraries
      o libsunmath.so.1
      o libcx.so.1 (SPARC only)
   * Scientific Libraries
      o libsunperf.so.8 (SPARC only)
      o libsunperf.so.3 (x86 only)
      o libsunperf.so.4 (x86 only)
   * Cluster Libraries
      o libscalapack.so.1
      o libblacs_openmpi.so.1
   * Garbage Collection
      o libgc.so.1

2. Libraries for Linux on x86/x64 Platforms
 
   * C++ Libraries
      o libCrun.so.1
      o libCrunG3.so.1
      o libCstd.so.1
      o libdemangle.so.1
      o libiostream.so.1 
      o librwtool.so.2
      o libstlport.so.1
   * Fortran Libraries
      o libfai.so.1
      o libfsu.so.1
      o libfui.so.1
   * Microtasking libraries
      o libmtsk.so.1
      o libmtsk_db.so.1
   * Scientific Libraries
      o libsunperf.so.3
   * Cluster Libraries
      o libscalapack.so.1
      o libblacs_openmpi.so.1 
   * Profiling Libraries
      o libtdf.so.1 
      o libxprof.so.1

3. Object files 
 
   * bb_link.o
   * CCrti.o
   * CCrtn.o
   * crt1.o
   * crti.o
   * crtn.o
   * gcrt1.o
   * mcrt1.o
   * pagesize.o
   * prof_func.o
   * prof_lib.o
   * prof_tsd.o
   * values-xa.o
   * values-xc.o
   * values-xi.o
   * values-xpg4.o
   * values-xs.o
   * values-xt.o
   * xprof_fini.o
   * misalign.o (SPARC only)
   * wordalignI8.o (SPARC only)

4. Link-time Executables

The following executable is redistributable with object files and 
libraries that clients link into programs:

   * postopt for Solaris on the SPARC Platform

postopt is a link-time optimizer that uses profile information 
(-xprofile=use) to optimize .o files and archive libraries into
binary executables or shared (dynamic) libraries.

You would need to ship the postopt executable with your product 
only when all of these conditions are met:
   * You supply libraries and .o files to be linked into a 
program by your clients, and
   * Your clients are not expected to have Oracle Solaris Studio, and
   * You normally provide a script or makefile that does 
the linking using ld directly instead of using cc|CC|f90, and
   * You expect your clients to see runtime performance improvements 
when postopt's link-time optimizations are enabled, and
   * You HAVE compiled all or some libraries and .o files with the -xlinkopt 
option, and
   * You did NOT compile with option -xF, which causes code to be fragmented 
into multiple sections.

ISVs who perform linking at their client site normally provide a script 
or makefile which uses the Solaris ld as follows:

      % /usr/ccs/bin/ld /isv_install_area/crti.o ...  ... /isv_install_area/crtn.o

When using postopt, the user just needs to modify the command
to replace ld with postopt, as follows:

% /isv_install_area/postopt /isv_install_area/crti.o ... ... /isv_install_area/crtn.o

postopt automatically calls the Solaris ld after its optimizations
are complete to create the final binary executable or shared library.