
September 30, 1996                  C++ 4.2 README (FCS)
          
===============================================================================
 
Introduction
============

	The C++ 4.2 compiler release supports the following
	operating environments:

 	   Solaris(TM) 2.4 or above operating system for SPARC(R)-
	   based workstations

	   Solaris 2.5.1 or above operating system for PowerPC(TM)-based
	   workstations

	   Solaris 2.4 or above operating system for x86-based 
	   workstations

	Note: The C++ 4.2 compiler documentation supports several
	platforms. Anything unique to one or more platforms is
	identified as "(SPARC)", "(Intel)" and/or "(PowerPC)".

	The following information may be incomplete.

___________________________________________________________________________
Contents

          A. C++ 4.2 Highlights
          B. New Features/Patches
          C. Changes to Features
          D. Software Incompatibilities
          E. Current Software Bugs
          F. Documentation Errata
	  G. Shippable Libraries
____________________________________________________________________________
A. C++ 4.2 Highlights


        New - this release now implements:
 
        o  Standard template instantiation
 
        o  Standard template specialization
 
        o  Improved template processing

        o  Run-time type information (RTTI) (typeid)

        o  New cast operations, including dynamic_cast
 
        o  Rogue Wave tools.h++ 7.0 (rwtools7)
 
        o  Incremental linking (ild)

	o  Support for SourceBrowser cross referencing


        * Shared library, libC.so, for Solaris 2.x:
          ----------------------------------------
          The C++ compiler includes the static library, libC.a.  
	  However, the corresponding bundled shared library, 
	  libC.so.5, is out of sync with the C++ 4.2 compiler on 
	  OS versions less than Solaris 2.6. For the compiler to 
	  work correctly with the shared library on Solaris versions 
	  less than 2.6, you must install the appropriate OS patch: 
	  SPARC: 101242-11; x86: 102859-02; PowerPC: 103721-01. 
	  See point 2-a, "Solaris 2.x patches," under section B, 
	  "New Features/Patches," for details.
  

        * Note for ISVs:
          -------------
	  C++ 4.2 requires an OS patch that contains the shared 
	  library libC.so.5. Patch numbers are: SPARC: 101242-11; 
	  x86: 102859-02; PowerPC: 103721-01. When you ship 
	  applications or libraries that depend on libC.so.5, we 
	  recommend that you include this patch with your products.

	* Note on C++4.0.1/C++4.2 Compatibility
	  ------------------------------------
	  The object files produced by C++ 4.2 and C++ 4.0.1 are 
	  binary compatible for most cases. That is, object files 
	  created by C++ 4.0.1 can be linked using the C++ 4.2 compiler, 
	  and object files created by C++ 4.2 can be linked using the 
	  C++ 4.0.1 compiler, without any problems. However, this may 
	  not be true if you are using exceptions and link statically 
	  with libC.
	  Refer to Chapter 2, "The Compiler", in the C++ 4.2 User's 
	  Guide for further information.

	* Note on C++ 4.1/C++4.2 Compatibility
	  ------------------------------------
	  Object files produced by C++ 4.1 and C++ 4.2 are fully binary
	  compatible. However, 4.1 objects do not contain runtime
	  type identification (RTTI) information. Refer to Chapter 2,
	  "The Compiler", in the C++ 4.2 User's Guide for further
	  information.
 
________________________________________________________________________________
B. New Features

This section contains the following subsections:

          1. New compiler options
	  2. Solaris 2.x patches
	  3. Incremental linking

1. New Compiler Options
=======================

The following new options are now in place and apply to SPARC-based 
systems only; please refer to the CC man page or C++ User's Guide 
for details:

	-features=[no%]{anachronisms | castop | rtti}
	----------------------------------------

	     Enables/disables various C++ language features.
	
	     -features=[no%]anachronisms: [Do not] Allow anachronistic 
					   constructs
	     -features=[no%]castop: [Do not] Allow new-style casts 
				      (dynamic or otherwise)
	     -features=[no%]rtti: [Do not] Allow RTTI

	-instances={static | extern | global}
	-------------------------------------

	     Controls the link attributes of template instantiations.

	     -instances=static	: Replacement for -pto
	     -instances=extern	: The default mode of the compiler
	     -instances=global	: Replacement for -ptg

	-library=[no%]{rwtools6 | rwtools7 | complex | libC | libm}
	----------------------------------------------------
	     
	     Forces inclusion of specific library(s) and associated files
	     as necessary.

	     -library=[no%]rwtools6	: [Do not] Use Tools.h++ v 6
	     -library=[no%]rwtools7	: [Do not] Use Tools.h++ v 7
	     -library=[no%]complex	: [Do not] Use libcomplex
	     -library=[no%]libC		: [Do not] Use libC
	     -library=[no%]libm		: [Do not] Use libm
	     -library=%all		: Use all libraries in the order:
					   rwtools7, complex, libC, libm


	-staticlib=[no%]{rwtools6 | rwtools7 | libC | libm | complex}
	---------------------------------------------

	Determines whether C++ libraries specified in the -library option
	are linked statically.

	-staticlib=[no%]rwtools6: Tools.h++ v6 [not] linked statically
	-staticlib=[no%]rwtools7: Tools.h++ v7 [not] linked statically
	-staticlib=[no%]libC	: libC [not] linked statically
	-staticlib=[no%]libm	: libm [not] linked statically
	-staticlib=[no%]complex	: libcomplex [not] linked statically
	-staticlib=%all		: All libraries specified in the -library
				  option are linked statically.


	-template={wholeclass}
	----------------------

	     Enables/disables various template options.

	     -template=wholeclass: Replacement for -pta

	-verbose={template | diags | version}
	-------------------------------------

	     Controls verbosity during compilation.

	     -verbose=template : Replacement for -ptv
	     -verbose=diags    : Replacement for -v   : Optional for 4.2
	     -verbose=version  : Replacement for -V   : Optional for 4.2

	-fprecision=<p>
	---------------

	     (Intel, Solaris 2 only) Sets FP rounding precision mode p (single, 
	      double, extended)

	-xlic_lib=<l>
	-------------

	     (SPARC, Solaris 2.x only) Links in the Sun-supplied, 
	     licensed libraries specified in <l>

	Option changes have been made for this release that now allow 
	all flags on all platforms. For those platforms where a flag 
	is not valid, the flag will be quietly accepted. No warning 
	will be given. -flags will only show the valid flags for the 
	particular platform. 

	The following options, previously available only on SPARC, are now
	available on Intel and PowerPC:

	-fround
	-fsimple
	-ftrap
	-xprofile=tcov
	-xspace
	-xunroll=n

	The following options, previously SPARC only, are now available in 
	restricted form on Intel and PowerPC:

	-xtarget	Intel accepts:
			   generic
			   native
			   386  (Replacement for -x386)
			   486  (Replacement for -x486)
			   pentium  (Replacement for -xpentium)
			   pentium_pro

			PowerPC accepts:
			   generic
			   native

	-xarch		Intel accepts:
			   generic
			   386
			   pentium_pro

			PowerPC accepts:
			   generic
			   ppc
			   ppc-nofma

	-xchip		Intel accepts:
			   generic
			   386
			   486
	   		   pentium
			   pentium_pro

			PowerPC accepts:
			   generic
			   603
			   604


2. Solaris 2.x patches (SPARC only)
===================================

	Some of the C++ 4.2 users may need the OS patches given in 
	the Patch directory of the C++ 4.2 distribution. Please 
	read the README file in Patch directory for more details. 
	Since patches for bundled, SUNWlibC package (101242-11) 
	and SUNWbtool package (101051-01) are important for many 
	4.2 Solaris 2.x users, more explanation is given below for 
	installing these packages.

	2-a. 101242-11 patch on SPARC, (102859-02 on x86), (103721-01
	     on PowerPC) for SUNWlibC package for libC.so.5

	On Solaris 2.x,	Patch 101242-11 will install libC.so.5 in 
	/usr/lib. You may install this patch if you would like your 
	C++ programs compiled with C++ 4.2 to be linked dynamically 
	with libC.so. If you are running Solaris 2.3, Solaris 2.4, 
	or Solaris 2.5, and already have a bundled SUNWlibC package 
	installed on your machine, then you must remove the existing 
	SUNWlibC package before installing this patch. To remove the 
	SUNWlibC package, become superuser and type:
	"pkgrm SUNWlibC".
	To installpatch 101242-11, do the following:
	-become superuser
	-cd patch_dir/101242-11
	-pkgadd -d `pwd` SUNWlibC

	This patch is available along with other OS patches in the 
	C++ 4.2 distribution under the directory patch_dir. This patch 
	should be installed on the user's workstations, as well as on 
	the build machines. If the SUNWlibC package is not installed, 
	programs compiled with C++ 4.2 will be linked statically with 
	libC.a.


3. Incremental Linking
======================

	The -g option has an additional meaning. It enables incremental
	linking on all architectures by invoking ild in place of ld 
	unless any of the following are true: the -G option is present, 
	the -xildoff option is present, or any source files are named 
	on the command line. For linker options not supported by ild, 
	ild invokes ld to perform the link. See the ild.1 man page for 
	more information.

4. How to Access AnswerBook Documentation
=========================================

	
	To access the AnswerBook online documentation for WorkShop, 
	you must run a script to set up your environment.

	1. To start AnswerBook, type the following at a command prompt:

 	   % workshop-answerbooks

   	The script sets the AB_CARDCATALOG environment variable and runs
   	/usr/openwin/bin/answerbook. The AnswerBook Navigator opens 
   	and displays the available AnswerBook documents.

	2. Add the WorkShop AnswerBook documents to your library by 
	   clicking the Modify Library button.
   
   	   The AnswerBooks Navigator: Modify Library window is displayed.

	3. Select the AnswerBook documents you wish to add to your 
	   library from the list; then click the Apply button.

	   The AnswerBook documents are added to your library.

	4. To view an AnswerBook document, double-click on the title 
	   you wish to view.



_________________________________________________________________________
C. Changes to Features

This section contains the following subsections:

	1. Changes to /usr/include/sys/signal.h
	2. Template Database Changes
	3. Link Order When Using Templates
	4. Change in link line.


1. Changes to /usr/include/sys/signal.h
=======================================

	Changes to /usr/include/sys/signal.h in Solaris 2.5
	cause the sigaction sa_handler member to be a void(*)(int)
	in cplusplus, rather than a void(*)(), as before. This was 
	seen on sun4m and sun4c systems.

	The new signal.h contains this new definition of sigaction:

	#pragma ident "@(#)signal.h 1.42  95/02/26 SMI"  /* SVr4.0 11.44 */
	/*
	 * The signal handler routine can have either one or three 
	 * arguments.  Existing C code has used either form so not 
	 * specifing the arguments  neatly finesses the problem.  
	 * C++ doesn't accept this.  To C++, "(*sa_handler)()" 
	 * indicates a routine with no arguments (ANSI C would
	 * specify this as "(*sa_handler)(void)").  One or the 
	 * other form must be used for C++ and the only logical 
	 * choice is "(*sa_handler)(int)" to allow the SIG_* 
	 * defines to work.  
	 * "(*sa_sigaction)(int, siginfo_t *, void *)" can be
	 * used for the three argument form.
	 */
	struct sigaction {
       		 int sa_flags;
       		 union {
	#ifdef  __cplusplus
                	 void (*_handler)(int);
	#else
                	 void (*_handler)();
	#endif
	#if defined(__EXTENSIONS__) || ((__STDC__ - 0 == 0) && \
        	!defined(_POSIX_C_SOURCE) && \
		!defined(_XOPEN_SOURCE)) || \
        	(_POSIX_C_SOURCE > 2)
               		void (*_sigaction)(int, siginfo_t *, void *);
	#endif
       		 }       _funcptr;
       		 sigset_t sa_mask;
        	 int sa_resv[2];
	};

 
2. Template Database Changes
============================

	The template database manager has been upgraded to improve 
	performance for template compilation. With this upgrade, 
	the database format has changed slightly, enough to cause 
	it to be incompatible with earlier releases. Because of this 
	incompatibility, data currently stored in the database is 
	unusable by newer compilers, and any instantiations which 
	are required will automatically be regenerated.

	Although the formats are incompatible, no failures should 
	occur because of this change. If the new compiler is used 
	with an old-style database, the compiler and tdb_link will 
	issue the following warning:

   	  Database corrupt or from an older compiler. Ignoring 
	  existing data.

	This warning will occur until the first link takes place 
	and will not occur for subsequent compiles. If an older 
	compiler is used against a new-style database, no warning 
	will be issued, but the effect is the same, i.e., any 
	existing data will be ignored.


3. Link order when using templates
==================================

	The previous compiler had an error in constructing the link 
	line when templates were involved. In these cases, the old 
	compiler would automatically place archives at the end of 
	the supplied (and inserted template) object files. This 
	could have unknown consequences when link order was important. 
	The new compiler leaves the link order exactly as supplied, 
	and only inserts template object files before the first 
	non-object file (such as an archive or shared library).

4. Change in link line
======================

	The CC driver no longer passes "-lsunmath" by default
	on the link line. If you need the "libsunmath.a
	library, you must manually add the "-lsunmath" flag. 

____________________________________________________________________________
D. Software Incompatibilities


	C++ 4.2 is a native compiler implementation of parts of the draft 
	ANSI/ISO C++ standard.  This release supports all the 
 	WorkShop tools.  If you encounter any problems using 
	any of the WorkShop tools with this compiler, please report them.



1. Multiple database (-ptr) usage:
==================================

	It is recommended that you not use multiple -ptr options on the 
	command line when using templates.  Although this should work 
	with the current version of the compiler, it is not guaranteed 
	to work in future releases.


2. Error conditions in multithreaded programs
=============================================

        Due to the way the C++ 4.2 runtime library handles certain 
	error conditions in multithreaded programs, you must replace 
	the default handlers for those conditions with handlers that 
	terminate the process.  Each thread that you create, 
	including your "main" program executable, must include lines 
	of code such as the following:
 
        #include <exception.h>
        #include <stdlib.h>
        
        main ()
        {
                ...
        
                (void) set_terminate (abort);
                (void) set_unexpected (abort);
                ...
        
                // then it does "real work"
        }
 
        Of course, you do not need to use "abort", but if you use
        any other routine (e.g. one that logs an error message) it
        must exit the process.  The default handler provided by
        the C++ runtime library just exits the thread, which
        corrupts the process state because it doesn't unwind the
        stack and release resources such as locks.
 

3. Incompatible mangling of pointers to const member functions
==============================================================

 
	The C++ 4.0.1 compiler generated different mangled names for 
	pointers to const member functions than do the C++ 4.1 and 
	C++ 4.2 compilers.  If you are unable to link with a library 
	built with 4.0.1 and containing such names, you should either 
	recompile the library, or compile the rest of the program with 
	the flag "-Qoption ccfe -abi=1:4.0.1".
 

4. Unparsable mangling of extern "C" functions as template arguments
===================================================================

 
	The C++ 4.0.1 and C++ 4.1 compilers generated a mangled name 
	that was unparsable for templates instantiated with an 
	extern "C" function.  As a consequence, debugging tools behaved 
	incorrectly.  We have corrected the problem, but some users may 
	be unable to link objects compiled with C++ 4.2 with libraries 
	compiled with earlier compilers.  This incompatibility should be 
	extremely rare, but in the event that it does happen, you can 
	either recompile the library with the C++ 4.2 compiler, or compile 
	new objects with the "-Qoption ccfe -abi=1:4.1" flag.


_________________________________________________________________________
E. Current Software Bugs

1. Exceptions and the Analyzer
==============================

	Note: Applications not using exceptions are not affected by 
	      this bug.


	When a C++ application is compiled with -xF and relinked with a
	mapfile generated by the Analyzer, throwing an exception may 
	cause erroneous behavior. This is because reordering of 
	functions may disrupt the order of the exception range table; 
	the exception dispatcher relies on a sorted exception table to 
	work properly. The only workaround for this bug is to place 
	each function that is affected by exceptions in a separate 
	source file, and link the object files created in the order 
	specified by the mapfile.


2. abort() and static destructors
=================================

 	abort() should not call static destructors in a program, 
	but it does. This behavior exists because static 
	constructors and destructors are implemented using the 
	.init and .fini sections of the ELF object format. 
	This implementation ensures that the static 
	constructors/destructors of a shared library are called 
	at dlopen()/dlclose(), but this implementation does not 
	work correctly for abort().  


3. Using -xar to add generated templates
========================================

	When using -xar to add generated templates to an archive, 
	please be aware that this command will both update 
	existing object files in the archive, and add new ones. 
	Existing object files that may be obsolete will still
 	be present. In these cases, the safest course of action 
	would be to delete the .a file prior to the invocation of -xar.

4. Run-time error, libC
=======================
 
	If your program issues the error
 
	Run-time error, libC:
       		 'delete[]' does not correspond to any 'new[]'
 
	it is most likely a bug in your code. Please check for 
	the following possible causes of this error:
 
	1) Make sure that all objects allocated using new are 
	   deallocated using delete, and all objects allocated 
	   using new[] are deallocated using delete[], i.e., an 
	   object allocated using new should not be deallocated 
	   using delete[] and an object allocated using new[]
	   should not be deallocated using delete.

	2) Make sure that an object of a derived class allocated 
	   using new[] is not deleted as an object of a base class. 
	   The following example illustrates this problem:
 
	    class base
    	    {
    	    public:
      	      base() : i(1) {}
	      virtual ~base();
	      int i;
	    };
 
	    class derived : public base
	    {
	    public:
	      derived() : j(2) {}
	      virtual ~derived();
	      int j;
	    };
 
	    base::~base() {}
	    derived::~derived()  {}

            int main()
	    {
	      // This program works correctly if the type of b 
	      // is 'derived*', it does not work correctly if the 
	      // type of b is 'base*'.
	      base *b;
 
	      b = new derived [2];
	      delete [] b;    // change this to: delete [] (derived *)b;
 
	      return 0;
	    }
 
	   The draft C++ standard states that the above code leads to 
	   undefined behavior. The workaround is to cast b to (derived*) 
	   before calling delete.
 
	3) Make sure you don't try to delete a pointer (using delete[]) 
	   that has already been deleted. A good way to detect such 
	   errors is to use Run Time Checking (RTC).  You can type 
	   'help rtc' under dbx to get more information. There is also 
	   a batch utility, bcheck, for this. Type 'man bcheck' for 
	   details.

5. Two implicit user-defined conversions for argument
=====================================================

	The earlier compiler sometimes allowed two implicit, 
	user-defined conversions for an argument. It now detects 
	this error.

6. Large C++ applications with -PIC
===================================

	Some large C++ applications compiled using C++ 4.2 Beta
	Phase I with the -PIC option result in ld errors in the 
	linking step.

7. Incorrect mangling of pointers to member functions
=====================================================

	The C++ compiler incorrectly mangles the link names for pointers 
	to member functions.  The consequence of this error is that the 
	demangler, and hence some debugging tools, like dbx and c++filt, 
	report the member functions as having an extra leading parameter 
	consisting of a reference to the class type of which the function 
	is a member.
 
	To correct this problem, recompile your C++ sources with the flag
	"-Qoption ccfe -abi=1:4.2:1".  Note, however, that sources compiled
	with this flag may be binary incompatible with sources compiled 
	without the flag.

8. Uninitialized static data (LOCL/OBJT ELF symbols) have no size
=================================================================

	(Bug ID + 4005207)

	Using -O  -g, you can't print uninitialized static variables
	with dbx.


____________________________________________________________________________
F. Documentation Errata

	There are corrections, additions, and deletions to the -xtarget
	expansions that appear on pages 62 through 65 of the C++ User's 
	Guide. Here is the complete list of expansions:

	
	sun4/15		v8a	micro	2/16/1
	sun4/20		v7	old	64/16/1
	sun4/25		v7	old	64/32/1
	sun4/30		v8a	micro	2/16/1
	sun4/40		v7	old	64/16/1
	sun4/50		v7	old	64/32/1
	sun4/60		v7	old	64/16/1
	sun4/65		v7	old	64/16/1
	sun4/75		v7	old	64/32/1
	sun4/110	v7	old	2/16/1
	sun4/150	v7	old	2/16/1
	sun4/260	v7	old	128/16/1
	sun4/280	v7	old	128/16/1
	sun4/330	v7	old	128/16/1
	sun4/370	v7	old	128/16/1
	sun4/390	v7	old	128/16/1
	sun4/470	v7	old	128/32/1
	sun4/490	v7	old	128/32/1
	sun4/630	v7	old	64/32/1
	sun4/670	v7	old	64/32/1
	sun4/690	v7	old	64/32/1
	sselc		v7	old	64/32/1
	ssipc		v7	old	64/16/1
	ssipx		v7	old	64/32/1
	sslc		v8a	micro	2/16/1
	sslt		v7	old	64/32/1
	sslx		v8a	micro	2/16/1
	sslx2		v8a	micro2	8/16/1
	ssslc		v7	old	64/16/1
	ss1		v7	old	64/16/1
	ss1plus		v7	old	64/16/1
	ss2		v7	old	64/32/1
	ss2p		v7	powerup	64/32/1
	ss4		v8a	micro2	8/16/1 
	ss4/85		v8a	micro2	8/16/1 
	ss4/110		v8a	micro2	8/16/1 
	ss5		v8a	micro2	8/16/1
	ss5/85		v8a	micro2	8/16/1
	ss5/110		v8a	micro2	8/16/1
	ssvyger		v8a	micro2	8/16/1
	ss10		v8	super	16/32/4
	ss10/hs11	v8	hyper	256/64/1
	ss10/hs12	v8	hyper	256/64/1
	ss10/hs14	v8	hyper	256/64/1
	ss10/20		v8	super	16/32/4
	ss10/hs21	v8	hyper	256/64/1
	ss10/hs22	v8	hyper	256/64/1
	ss10/30		v8	super	16/32/4
	ss10/40		v8	super	16/32/4
	ss10/41		v8	super	16/32/4:1024/32/1
	ss10/50		v8	super	16/32/4
	ss10/51		v8	super	16/32/4:1024/32/1
	ss10/61		v8	super	16/32/4:1024/32/1
	ss10/71		v8	super2	16/32/4:1024/32/1
	ss10/402	v8	super	16/32/4
	ss10/412	v8	super	16/32/4:1024/32/1 
	ss10/512	v8	super	16/32/4:1024/32/1
	ss10/514	v8	super	16/32/4:1024/32/1 
	ss10/612	v8	super	16/32/4:1024/32/1
	ss10/712	v8	super2	16/32/4:1024/32/1
	ss20		v8	super	16/32/4:1024/32/1
	ss20/hs11	v8	hyper	256/64/1
	ss20/hs12	v8	hyper	256/64/1
	ss20/hs14	v8	hyper	256/64/1
	ss20/hs21	v8	hyper	256/64/1
	ss20/hs22	v8	hyper	256/64/1
	ss20/50		v8	super	16/32/4
	ss20/51		v8	super	16/32/4:1024/32/1
	ss20/61		v8	super	16/32/4:1024/32/1
	ss20/71		v8	super2	16/32/4:1024/32/1
	ss20/151	v8	hyper	512/64/1
	ss20/152	v8	hyper	512/64/1
	ss20/502	v8	super	16/32/4
	ss20/512	v8	super	16/32/4:1024/32/1
	ss20/514	v8	super	16/32/4:1024/32/1
	ss20/612	v8	super	16/32/4:1024/32/1
	ss20/712	v8	super2	16/32/4:1024/32/1
	ss600/41	v8	super	16/32/4:1024/32/1
	ss600/51	v8	super	16/32/4:1024/32/1
	ss600/61	v8	super	16/32/4:1024/32/1
	ss600/120	v7	old	64/32/1
	ss600/140	v7	old	64/32/1
	ss600/412	v8	super	16/32/4:1024/32/1
	ss600/512	v8	super	16/32/4:1024/32/1
	ss600/514	v8	super	16/32/4:1024/32/1
	ss600/612	v8	super	16/32/4:1024/32/1
	ss1000		v8	super	16/32/4:1024/32/1
	sc2000		v8	super	16/32/4:2048/64/1
	cs6400		v8	super	16/32/4:2048/64/1
	solb5		v7	old	128/32/1
	solb6		v8	super	16/32/4:1024/32/1
	ultra		v8	ultra	16/32/1:512/64/1
	ultra2		v8	ultra2	16/32/1:512/64/1
	ultra1/140	v8	ultra	16/32/1:512/64/1
	ultra1/170	v8	ultra	16/32/1:512/64/1
	ultra1/200	v8	ultra	16/32/1:512/64/1
	ultra2/1170	v8	ultra	16/32/1:512/64/1
	ultra2/1200	v8	ultra	16/32/1:1024/64/1
	ultra2/1300	v8	ultra2	16/32/1:2048/64/1
	ultra2/2170	v8	ultra	16/32/1:512/64/1
	ultra2/2200	v8	ultra	16/32/1:1024/64/1
	ultra2/2300	v8	ultra2	16/32/1:2048/64/1
	entr2		v8	ultra	16/32/1:512/64/1
	entr2/1170	v8	ultra	16/32/1:512/64/1
	entr2/2170	v8	ultra	16/32/1:512/64/1
	entr2/1200	v8	ultra	16/32/1:512/64/1
	entr2/2200	v8	ultra	16/32/1:512/64/1
	entr150		v8	ultra	16/32/1:512/64/1
	entr3000	v8	ultra	16/32/1:512/64/1
	entr4000	v8	ultra	16/32/1:512/64/1
	entr5000	v8	ultra	16/32/1:512/64/1
	entr6000	v8	ultra	16/32/1:512/64/1

____________________________________________________________________________


G. Shippable Libraries

	If your executable uses a Sun dynamic library listed in the 
	file named below, your license includes the right to 
	redistribute the library to your customer.

	Standard Install	/opt/SUNWspro/READMEs/runtime.libraries

	Install to /my/dir/	/my/dir/SUNWspro/READMEs/runtime.libraries

	You may not redistribute or otherwise disclose the header files, 
	source code, object modules, or static libraries of object modules 
	in any form.

	The License to Use appears in the End User Object Code License, 
	viewable from the back of the plastic case containing the CDROM.
____________________________________________________________________________

Solaris, SunOS, OpenWindows and AnswerBook are trademarks or registered 
trademarks of Sun Microsystems, Inc. All SPARC trademarks, including 
the SCD Compliant logo are trademarks of SPARC International, Inc. 
PowerPC is a trademark of International Business Machines Corporation.













