Help in compiling galib on sun

AKSHAY MOHAN mohana at iitk.ac.in
Mon May 15 16:44:40 EDT 2000


	Thankyou for replying so quickly. It is a C++ compiler. Also we
donot have g++ installed on our workstations. I am enclosing the
compiler's readme file, if that gives you some innformation.

regards
Akshay


	On Mon, 15 May 2000, Jason Rennie wro te:

> Date: Mon, 15 May 2000 16:25:37 -0400
> From: Jason Rennie <jrennie at ai.mit.edu>
> To: AKSHAY MOHAN <mohana at iitk.ac.in>
> Cc: jrennie at ai.mit.edu, galib at mit.edu
> Subject: Re: Help in compiling galib on sun 
> 
> 
> mohana at iitk.ac.in said:
> > i am a new user of galib. Can anyone please help me in the changes I
> > require to make in the files to compile on Solaris. I have the CC
> > compiler installed.
> 
> GAlib is C++ code.  Hence, at the very least, you need a C++ compiler.  
> CC may not be.  I recommend that you use the GNU C++ compiler.  It might 
> be installed on your system as 'g++'.  If so, you can probably just run 
> "make" and "make install" as suggested in the GAlib README.
> 
> I was able compile GAlib on a SunOS 5.6 box using exactly that procedure.
> No special tricks were needed.  If you have difficult to understand
> compiler errors, you may wish to post those exact errors along with the
> exact commands that you issued.  Compilation errors are often difficult to
> resolve without exact details.
> 
> Jason Rennie
> (617) 253-5339
> jrennie at ai.mit.edu
> http://www.ai.mit.edu/~jrennie/
> 
> 
> 


-------------- next part --------------

November 20, 1996                  C++ 4.2 README 
          
============================================================================
 
Introduction
============

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

 	   Solaris(TM) 2.4, 2.5 and 2.5.1  operating system for SPARC(R)-
	   based workstations

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

	   Solaris 2.4, 2.5 and 2.5.1  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. 
	  The correct patch numbers are: 
	  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.

  ONLINE DOCUMENTATION-

	  AnswerBook:
	  ----------
	  A script has been provided to automatically set up your
	  environment to view the available WorkShop and compiler
	  manuals.

	  Type the following at a command prompt:

	      workshop-answerbooks

	  The script sets the AB_CARDCATALOG environment variable
	  and starts /usr/openwin/bin/answerbook. 

	  When the AnswerBook Navigator opens, add the WorkShop and
	  and compiler manuals to your doc library by using the
	  "Modify Library" button.

	  (For more information on running AnswerBook, see the
	  answerbook(1) man page.)

	  HTML:
	  ----
	  HTML versions of the WorkShop and compiler manuals have also
	  been provided. These may be viewed with any HTML browser
	  capable of displaying tables (HTML 3.0). 

	  Point your browser to the URL:
	    file:/opt/SUNWspro/DOC4.0/lib/locale/C/html_docs/index.html

 
________________________________________________________________________________
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={single | double | extended}
	----------------------------------------

	     (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

	-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 version 2.4, 2.5 or
	2.5.1, 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 install patch 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
======================

	In addition to instructing the compiler to prepare the program 
	for debugging, the -g option has an another 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.


_________________________________________________________________________
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.
	5. Macro definition using +p option.


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. 

5. Macro definition using +p option
===================================

	The CC man page specifies that the macros sparc, sun, and
	i386 are not defined if +p is used. The previous version
	of the compiler did not enforce this requirement; C++ 4.1
	defined these macros even if +p was used. The C++ 4.2
	compiler enforces this requirement. You can use the
	macros __sparc, __unix, __sun, and __i386 instead.
	These '__' versions of the macros are always defined by 
	the CC driver.
	

____________________________________________________________________________
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 do 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. 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().  


2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. Problem with -U option
=========================

	The -U option does not work correctly with the C++ 4.2 compiler.
	For example,

	    the command 'CC -Usparc ...' does not undefine the macro sparc.
   	    the command 'CC -DXXX -UXXX ...' does not udefine the macro XXX.

        The fix for this problem will be provided in a patch for the C++ 4.2
  	compiler.

9. Incorrect redefinition error in template handling
====================================================

	(Bug ID 4014569)
	As a result of processing some template definitions, the C++
	compiler may incorrectly issue an error, claiming that a class
	member has been redefined. This bug may affect users that
	use templates heavily.

10. reinterpret_cast doesn't work with pointer to member types
==============================================================

	(Bug ID 1264126)
	The reinterpret_cast operator cant' be used to cast a pointer
	to member of a base class to a pointer to a member of a
	derived class. As a workaround, use a C-style cast.

11. Can't use the '>' operator in template args
===============================================

	(Bug ID 1264132)
	A template non-type argument cannot be a constant
	expression involving the '>' operator. As a workaround,
	define a constant (const variable) using the expression
	and use the constant as the template argument.

12. Incorrect precedence of ?: versus assignment
================================================

	(Bug ID 4013762)
	The compiler parses an expression such as the following
	   a ? b? c = d

	like this
	   ( a ? b ? c ) = d

	instead of this
	   a ? b ? (c = d )

	As a workaround, use parentheses.


____________________________________________________________________________
F. Documentation Errata

1. -xtarget Expansions
======================
	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, corrected list of expansions:

	
	-xtarget     -xarch    -xchip   -xcache
	--------     ------    ------   -------

	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

2. Migration Guide Error Message
================================

	In the "Migration Guide" (Appendix A of the C++ User's Guide),
	on page 170, under "Incompatibilities: C++ 3.0 to 4.2",
	the error message, "K&R-style function definitions are no 
	longer allowed", is no longer issued.

3. C++ User's Guide: -xprofile 
==============================

    The description of the -xprofile= option in Chapter 2 is
    incorrect. The correct description can be found in the CC
    man page.

4. C++ User's Guide: xunexpected() function
===========================================

    The xunexpected() function described in Chapter 4 is not
    implemented at this time.
	
5. C++ User's Guide: -xar option
================================

    The example given under the -xar option (Chapter 2), should
    be corrected as follows (-O should be -o):
	CC -xar -o libmain.a a.o b.o c.o

_____________________________________________________________________________


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.















More information about the galib mailing list