Patch-ID# 107311-03
Keywords: C++ CC 5.0 SC5.0
Synopsis: C++ 5.0: Patch for C++ 5.0 compiler 
Date: May/20/99

Solaris Release: 2.5.1 2.6 7

SunOS Release: 5.5.1 5.6 5.7

Unbundled Product: C++

Unbundled Release: 5.0

Relevant Architectures: sparc

BugId's fixed with this patch: 1261797 4005207 4058012 4095591 4101606 4132688 4172984 4177468 4178769 4185570 4186105 4187277 4187536 4189351 4190043 4193618 4194200 4194310 4194641 4195060 4195218 4195240 4195247 4195588 4196630 4197057 4197753 4197789 4199033 4199586 4199652 4199853 4199857 4199924 4199940 4200002 4200074 4200150 4200151 4200979 4201885 4202575 4202626 4206114 4206937 4207661 4212445 4221664 4217525 4204428 4207191 4209436 4216319 4202767 4206657 4224951 4204434 4227577

Changes incorporated in this version: 4221664 4217525 4204428 4207191 4209436 4216319 4202767 4206657 4224951 4204434 4227577

Patches accumulated and obsoleted by this patch: 

Patches which conflict with this patch: 

Patches required with this patch: 107357-02

Obsoleted by: 

Files included with this patch: 

<install_dir>/SUNWspro/SC5.0/bin/CCadmin
<install_dir>/SUNWspro/SC5.0/bin/CClink
<install_dir>/SUNWspro/SC5.0/bin/c++filt
<install_dir>/SUNWspro/SC5.0/bin/ccfe
<install_dir>/SUNWspro/SC5.0/bin/dem
<install_dir>/SUNWspro/SC5.0/htmldocs/locale/C/gc/manual-15.htm
<install_dir>/SUNWspro/SC5.0/htmldocs/locale/C/gc/manual-17.htm
<install_dir>/SUNWspro/SC5.0/include/CC/algorithm
<install_dir>/SUNWspro/SC5.0/include/CC/algorithm.cc
<install_dir>/SUNWspro/SC5.0/include/CC/bitset
<install_dir>/SUNWspro/SC5.0/include/CC/bitset.cc
<install_dir>/SUNWspro/SC5.0/include/CC/complex
<install_dir>/SUNWspro/SC5.0/include/CC/complex.cc
<install_dir>/SUNWspro/SC5.0/include/CC/compnent.h
<install_dir>/SUNWspro/SC5.0/include/CC/deque
<install_dir>/SUNWspro/SC5.0/include/CC/deque.cc
<install_dir>/SUNWspro/SC5.0/include/CC/exception
<install_dir>/SUNWspro/SC5.0/include/CC/fstream
<install_dir>/SUNWspro/SC5.0/include/CC/fstream.cc
<install_dir>/SUNWspro/SC5.0/include/CC/fstream.h
<install_dir>/SUNWspro/SC5.0/include/CC/functional
<install_dir>/SUNWspro/SC5.0/include/CC/generic.h
<install_dir>/SUNWspro/SC5.0/include/CC/iomanip
<install_dir>/SUNWspro/SC5.0/include/CC/iomanip.h
<install_dir>/SUNWspro/SC5.0/include/CC/ios
<install_dir>/SUNWspro/SC5.0/include/CC/ios.cc
<install_dir>/SUNWspro/SC5.0/include/CC/iosfwd
<install_dir>/SUNWspro/SC5.0/include/CC/iostream
<install_dir>/SUNWspro/SC5.0/include/CC/iostream.h
<install_dir>/SUNWspro/SC5.0/include/CC/istream
<install_dir>/SUNWspro/SC5.0/include/CC/istream.cc
<install_dir>/SUNWspro/SC5.0/include/CC/iterator
<install_dir>/SUNWspro/SC5.0/include/CC/limits
<install_dir>/SUNWspro/SC5.0/include/CC/list
<install_dir>/SUNWspro/SC5.0/include/CC/list.cc
<install_dir>/SUNWspro/SC5.0/include/CC/locale
<install_dir>/SUNWspro/SC5.0/include/CC/map
<install_dir>/SUNWspro/SC5.0/include/CC/memory
<install_dir>/SUNWspro/SC5.0/include/CC/std/memory.h
<install_dir>/SUNWspro/SC5.0/include/CC/new
<install_dir>/SUNWspro/SC5.0/include/CC/numeric
<install_dir>/SUNWspro/SC5.0/include/CC/ostream
<install_dir>/SUNWspro/SC5.0/include/CC/ostream.cc
<install_dir>/SUNWspro/SC5.0/include/CC/queue
<install_dir>/SUNWspro/SC5.0/include/CC/rw/codecvt
<install_dir>/SUNWspro/SC5.0/include/CC/rw/codecvt.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/collate
<install_dir>/SUNWspro/SC5.0/include/CC/rw/collate.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/ctype
<install_dir>/SUNWspro/SC5.0/include/CC/rw/ctype.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/iosbase
<install_dir>/SUNWspro/SC5.0/include/CC/rw/iotraits
<install_dir>/SUNWspro/SC5.0/include/CC/rw/iterator
<install_dir>/SUNWspro/SC5.0/include/CC/rw/iterator.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/lochelp
<install_dir>/SUNWspro/SC5.0/include/CC/rw/locimpl
<install_dir>/SUNWspro/SC5.0/include/CC/rw/locimpl.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/locvector
<install_dir>/SUNWspro/SC5.0/include/CC/rw/math.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/messages
<install_dir>/SUNWspro/SC5.0/include/CC/rw/messages.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/money
<install_dir>/SUNWspro/SC5.0/include/CC/rw/money.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/numbrw
<install_dir>/SUNWspro/SC5.0/include/CC/rw/numbrw.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/numeral
<install_dir>/SUNWspro/SC5.0/include/CC/rw/numeral.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/random.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwcats.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwdispatch.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwlocale
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwlocale.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwstderr.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/rwstderr_macros.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/stddefs.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/stdmutex.h
<install_dir>/SUNWspro/SC5.0/include/CC/rw/string_ref
<install_dir>/SUNWspro/SC5.0/include/CC/rw/time
<install_dir>/SUNWspro/SC5.0/include/CC/rw/time.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/traits
<install_dir>/SUNWspro/SC5.0/include/CC/rw/tree
<install_dir>/SUNWspro/SC5.0/include/CC/rw/tree.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/usefacet
<install_dir>/SUNWspro/SC5.0/include/CC/rw/valimp
<install_dir>/SUNWspro/SC5.0/include/CC/rw/valimp.cc
<install_dir>/SUNWspro/SC5.0/include/CC/rw/vendor
<install_dir>/SUNWspro/SC5.0/include/CC/set
<install_dir>/SUNWspro/SC5.0/include/CC/sstream
<install_dir>/SUNWspro/SC5.0/include/CC/sstream.cc
<install_dir>/SUNWspro/SC5.0/include/CC/stack
<install_dir>/SUNWspro/SC5.0/include/CC/std/cassert
<install_dir>/SUNWspro/SC5.0/include/CC/std/cctype
<install_dir>/SUNWspro/SC5.0/include/CC/std/cerrno
<install_dir>/SUNWspro/SC5.0/include/CC/std/cfloat
<install_dir>/SUNWspro/SC5.0/include/CC/std/ciso646
<install_dir>/SUNWspro/SC5.0/include/CC/std/climits
<install_dir>/SUNWspro/SC5.0/include/CC/std/clocale
<install_dir>/SUNWspro/SC5.0/include/CC/std/cmath
<install_dir>/SUNWspro/SC5.0/include/CC/std/csetjmp
<install_dir>/SUNWspro/SC5.0/include/CC/std/csignal
<install_dir>/SUNWspro/SC5.0/include/CC/std/cstdarg
<install_dir>/SUNWspro/SC5.0/include/CC/std/cstddef
<install_dir>/SUNWspro/SC5.0/include/CC/std/cstdio
<install_dir>/SUNWspro/SC5.0/include/CC/std/cstdlib
<install_dir>/SUNWspro/SC5.0/include/CC/std/cstring
<install_dir>/SUNWspro/SC5.0/include/CC/std/ctime
<install_dir>/SUNWspro/SC5.0/include/CC/std/ctype.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/cwchar
<install_dir>/SUNWspro/SC5.0/include/CC/std/cwctype
<install_dir>/SUNWspro/SC5.0/include/CC/std/errno.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/exception.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/float.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/iso646.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/locale.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/math.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/new.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/setjmp.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/signal.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/stdarg.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/stddef.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/stdio.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/stdlib.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/string.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/sysent.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/time.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/typeinfo.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/wchar.h
<install_dir>/SUNWspro/SC5.0/include/CC/std/wctype.h
<install_dir>/SUNWspro/SC5.0/include/CC/stdcomp.h
<install_dir>/SUNWspro/SC5.0/include/CC/stdexcept
<install_dir>/SUNWspro/SC5.0/include/CC/streambuf
<install_dir>/SUNWspro/SC5.0/include/CC/streambuf.cc
<install_dir>/SUNWspro/SC5.0/include/CC/string
<install_dir>/SUNWspro/SC5.0/include/CC/string.cc
<install_dir>/SUNWspro/SC5.0/include/CC/strstream
<install_dir>/SUNWspro/SC5.0/include/CC/strstream.h
<install_dir>/SUNWspro/SC5.0/include/CC/typeinfo
<install_dir>/SUNWspro/SC5.0/include/CC/utility
<install_dir>/SUNWspro/SC5.0/include/CC/valarray
<install_dir>/SUNWspro/SC5.0/include/CC/valarray.cc
<install_dir>/SUNWspro/SC5.0/include/CC/vector
<install_dir>/SUNWspro/SC5.0/include/CC/vector.cc
<install_dir>/SUNWspro/SC5.0/lib/CC4/libC.a
<install_dir>/SUNWspro/SC5.0/lib/CC4/libp/libC.a
<install_dir>/SUNWspro/SC5.0/lib/libC_mtstubs.a
<install_dir>/SUNWspro/SC5.0/lib/libCrun.a
<install_dir>/SUNWspro/SC5.0/lib/libCstd.a
<install_dir>/SUNWspro/SC5.0/lib/libCstd.inst
<install_dir>/SUNWspro/SC5.0/lib/libdemangle.a
<install_dir>/SUNWspro/SC5.0/lib/libgc.a
<install_dir>/SUNWspro/SC5.0/lib/libgc.so.1
<install_dir>/SUNWspro/SC5.0/lib/libgc_dbg.a
<install_dir>/SUNWspro/SC5.0/lib/libgc_dbg.so.1
<install_dir>/SUNWspro/SC5.0/lib/libiostream.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libC_mtstubs.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libCrun.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libCstd.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libdemangle.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libgc.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libgc_dbg.a
<install_dir>/SUNWspro/SC5.0/lib/libp/libiostream.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/CC4/libp/librwtool.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/CC4/librwtool.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/CC4/librwtool.so.2
<install_dir>/SUNWspro/SC5.0/lib/rw7/CC4/librwtool_dbg.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/libp/librwtool.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/librwtool.a
<install_dir>/SUNWspro/SC5.0/lib/rw7/librwtool.so.2
<install_dir>/SUNWspro/SC5.0/lib/rw7/librwtool_dbg.a

Problem Description: 

4227577 /usr/include/memory.h conflicts with standard C++ requirements

(from 107311-02)

4221664 C++ 4.2 & 5.0  / extraneous variables cause extra memory allocation, destructor
4217525 CC issues error on correct use of global scoping on friend declaration
4204428 5.0 C++ Bug 5:  template functions confused - compilation error
4207191 C++ 5.0 Compilation - Assertion failed: Signal 6
4209436 Customer code Segfaults with Signal 6
4216319 4.2 and 5.0 is making an unnecessary destructor call
4202767 C++ 5.0 - reports Undefined symol void B<A>::func()
4206657 C++ 5.0 Code hangs in /usr/lib/libthread.so.1
4224951 fbe: warning: size of "__1cDstdEpair4nGString_n0B__2T6M_v_" redefined
4204434 C++ 5.0 - Compilation calls Signal 11

(from 107311-01)

1261797 C++ program gives wrong results with virtual functions.
4005207 Uninitialized static data (LOCL/OBJT ELF symbols) have no si
4058012 segmentation fault in exeption handling (rethrow from unexp)
4095591 C++ generates "Error: Overloading ambiguity" messages
4101606 C++ program crashes with exception in constructor when optimized
4132688 C++ 4.2 : destructor not called without -g in a exception
4172984 system segmentation faults rather than give error message
4177468 rw8: compiler fails to do default template argument substitu
4178769 Executable core dumps on Intel when compiled with -g
4185570 extern const defined in C++ do not get placed in RO memory.
4186105 Missing @> index stab
4187277 regression in handling definition of static template data me
4187536 missing class stab for class used as type
4189351 can't view contents of a struct; dbx complains about forwardref
4190043 Test E1166414 times out (x86 only)
4193618 Wide streams (wcout, et al.) not initialized properly
4194200 Old syntax for options file specializations not recognized
4194310 missing C++ versions of <string.h> functions
4194641 Assertion in ./libCstd/scl_src/bitsettest/bitset with opt-g
4195060 SC5.0 -compat=4 fails with template unless compiled -g
4195218 "./a.out" results in a segV when "a.out" works
4195240 CC 5.0 issues diagnostic on correct code, involving template
4195247 Operator overload resolution for classes
4195588 regression in test ./stl_ospace/stl/binsrch2 compat=4 intel
4196630 ./driver/opt-xa: -xa not working correctly
4197057 SUNW_SPRO_SC_libCstd.cat has to be there even on C locale
4197753 compiler generates code which core dumps in __STATIC_CONSTRU
4197789 iostream includes math.h and pollutes the global namespace
4199033 errors in implementation of C++ versions of C standard headers
4199586 redefinition of symbol ".L0"
4199652 Missing class name in class declaration stabs
4199853 strange warning when printing integers
4199857 Missing symbols from libCrun.so.1
4199924 pragma pack(x) does not work
4199940 Assertion violation on static object initialization
4200002 Legacy iostream version of ostream << complex<T> implementat
4200074 mutable not supported
4200150 wrong '}' in climits
4200151 Absent generic.h
4200979 wrong namespace scope in cwchar for __FILE
4201885 overloaded functions in namespaces can't be defined outside
4202575 CC driver is not passing prof_lib.o to ld
4202626 representative name in YIf stab
4206114 when source file is 'touched' or modified templates not regenerated
4206937 standard C++ header file guards don't work with Solaris 8
4207661 F&C requires repository in current directory and not in the dir of output fi
4212445 Assertion:  unexpected topsym_builder::visit_nosym (../links/v2mangler.cc, line


Patch Installation Instructions:
--------------------------------
For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
'installpatch' and 'backoutpatch' scripts provided with each patch."

For Solaris 7 release, refer to the man pages for instructions on
using 'patchadd' and 'patchrm' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions.  The following example
installs a patch to a standalone machine:

        example# patchadd /var/spool/patch/106326-01

The following example removes a patch from a standalone system:

        example# patchrm 104945-02

For additional examples please see the appropriate man pages.


Special Install Instructions:
-----------------------------
Due to the size of this patch, it can require a maximum of 116 MB of
free space in the /var partition to install properly.   To help
minimize this, you can specify a different location where the
information is stored that will allow you to back out this patch.  On
Solaris 2.6 and Solaris 7, please see the -B option description in the
patchadd man page.  On Solaris 2.5.1, please see the instructions in
the "Install.info" file that is part of this patch.

You may see error messages in the patch log file if you are installing
this patch over prior versions of this patch. The error messages will
be of the form:

pkgproto: ERROR: unable to stat <"install_dir"/SUNWspro/SC5.0/include/CC/assert.h>

There will be a series of them for files in the directory:
"install_dir"/SUNWspro/SC5.0/include/CC/.  Even though these
messages exist, the patch installed properly.  To avoid these
error messages, back out all previous versions of this patch.

Please note that this patch requires a compiler common components
patch to be installed. The patch number is 107357. Please refer 
to the "Patches required with this patch:" line above for the 
minimum patch revision level required.

If you are compiling using -xarch=v9 or -xarch=v9a on a Solaris
7 system, it is strongly recommend that you also install the most
recent release of patch 107390.

It is strongly recommended that the C++ Runtime patches (patches 
to the Solaris SUNWlibC package) are installed on all systems 
used by the compiler or used to execute code generated by these 
compilers. In all cases, these are the minimum revision level 
recommended. If more recent revision levels are available, we 
encourage you to use them.

   Solaris
   Version         SPARC          SPARC V9          Intel
   -------       ---------        ---------       ---------
    2.5.1        106529-04           na           106530-04
     2.6         105591-06           na           104678-04
      7          106327-05        106300-06       106328-05

The SPARC V9 patch is only required for systems running Solaris 7
and either executing or compiling 64-bit C++ applications.
