Patch Name: PHSS_22543

Patch Description: s700_800 11.x HP aC++ -AA runtime libraries (aCC A.03.30)

Creation Date: 00/12/07

Post Date: 01/01/03

Hardware Platforms - OS Releases:
	s700: 11.00 11.10
	s800: 11.00 11.10

Products: N/A

Filesets:
	OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	ProgSupport.LANG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	ProgSupport.LANG-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP

Automatic Reboot?: No

Status: General Release

Critical: No

Category Tags:
	defect_repair general_release

Path Name: /hp-ux_patches/s700_800/11.X/PHSS_22543

Symptoms:
	PHSS_22543:
	1.  JAGad30801: RWZoneSimple doesn't provide a valid DST
	    rule for Europe

	2.  JAGad30499: problem in 64 bit mode where array size
	    is still 32 bit.

	3.  JAGad25172: workaround bug in libcl by testing if offset
	    fits in 32 bits.

	4.  JAGad36658: Inconsistent definition of mbstate_t,
	    requires roll for all customers using libstd_v2
	    to establish compatibility with the HPUX 11.11
	    runtime.

	5.  JAGad40631: Missing stubs in libstd would cause
	    unsats.  Allow +I_main.

	6.  JAGad30844: -AA istrstream::seekg() moves twice
	    as far as specified.

	7.  JAGad41042: basic_*fstream::is_open shouldn't be
	    a const member function.

	PHSS_21906:
	1.  Support for -AA libraries.

	PHSS_20055:
	1.  throw in unexpected doesn't destroy object, find catch
	    if bad_exception

	2.  SIGABRT on second rethrow (in catch)

	3.  Throw with nested try results in abort

	4.  Signal 6 if function with try/catch doesn't have exit at
	    bottom

	5.  libCsup compiled with +ESlit and linker +e to reduce
	    size.

	6.  nothrow new must catch bad_alloc and return 0

	PHSS_16587:
	1.  RWCString::readLine(,true) doesn't set failbit

	2.  eofbit in istrstream not set correctly

	3.  Performance problem with STL vector

	4.  STL <functional> times should be replaced by multiplies
	(<sys/times.h>)

	5.  Linking with libcma causes SIGBUS at runtime

	PHSS_14577:
	1.  Can't handle global data whose size exceeds 32bit
	representation

	PHSS_13390:
	1.  Excessive memory usage with <list>, long compile times
	    too

	2.  iostream library doesn't perform new/delete correctly

	3.  RWTPtrSortedVector::index() doesn't return npos if not
	    found

	4.  RWTValHashDictionary must be replaced by RWTValHashMap

	5.  Memory leak with threads and libstd with string

	6.  const_iterator not implemented in container classes

Defect Description:
	PHSS_22543:
	1.  JAGad30801: RWZoneSimple doesn't provide a valid DST
	    rule for Europe

	2.  JAGad30499: problem in 64 bit mode where array size
	    is still 32 bit.

	3.  JAGad25172: workaround bug in libcl by testing if offset
	    fits in 32 bits.

	4.  JAGad36658: Inconsistent definition of mbstate_t,
	    requires roll for all customers using libstd_v2
	    to establish compatibility with the HPUX 11.11
	    runtime.

	5.  JAGad40631: Missing stubs in libstd would cause
	    unsats.  Allow +I_main.

	6.  JAGad30844: -AA istrstream::seekg() moves twice
	    as far as specified.

	7.  JAGad41042: basic_*fstream::is_open shouldn't be
	    a const member function.

	PHSS_21906:
	1.  Support for -AA libraries.

	PHSS_20055:
	1.  throw in unexpected doesn't destroy object, find catch
	    if bad_exception

	2.  SIGABRT on second rethrow (in catch)

	3.  Throw with nested try results in abort

	4.  Signal 6 if function with try/catch doesn't have exit at
	    bottom

	5.  libCsup compiled with +ESlit and linker +e to reduce
	    size.

	6.  nothrow new must catch bad_alloc and return 0

	PHSS_16587:
	1. RWCString::readLine(,true) only sets eofbit upon EOF.
	Using the ios::operator void*() does not return false in
	this case.  The following is never false.
	   while (f.readLine(,true))

	2.  When using istrstream to read numbers or a character
	string at the end of the buffer, the setting of the eofbit
	is inconsistent.  With numbers eofbit is not set.

	3.  the std library container vector performance problem.
	The execution time for insertion grows more than linearly
	with number of elements, as required by standard.

	4.  me clash for "times" defined in system header
	<sys/times.h> and non-standard conforming C++ standard
	library header <functional>.

	5.  Executables linked with libcma receive SIGBUS before
	reaching main().

	PHSS_14577:
	1.  aCC should be able to compile programs that declare data
	larger than what is representable in 32-bit mode when
	compiling with +DA2.0W on a 64-bit 11.x OS.

	PHSS_13390:
	1.  aCC consumes much memory for small lists or other small
	containers this does not conform with the ANSI DRAFT.

	2.  The version of libCsup with patch PHSS_12609, A.01.07,
	changed operators new[] and delete[] to no longer call the
	non-array operators.

	This change exposed a problem in libstream where there is a
	mismatch in strstream and streambuf where operator new[] and
	then operator delete is called.

	3.  The function RWTPtrSortedVector<T>::index() doesn't
	return npos as documented, if it is < first element.  It
	returns 0 instead.  If in between elements it returns
	lower_bound.

	4.  The RogueWave documentation for tools.h++ template
	RWTValHashDictionary template should mention that it has
	four parameters.

	5.  Memory leak when using <string> with either threads
	library, libcma or libpthread.  This problem will occur on
	10.20, 10.30 and 11.0 with various combinations of the two
	leaks.

	6.  The following aCC program can't be compiled:

	#include <map>

	int main() { map<int, double> myMap;
	  map<int,double>::const_iterator i = myMap.begin();
	  double a = i->second;
	  // double a = (*i).second is ok!  a = a * 2.5;
	  return 0; }

	$ aCC main.c Error 185:  "main.c", line 11 # Left side
	of '->' requires a pointer to class; type found was
	'class const_iterator'.  double a = i->second

SR:
	1653217448 4701374090 5003367938 5003381178 5003392829
	1653238188 1653252395 1653258897 4701386771 4701390013
	5003438820 8606161485 8606161183 8606155860 8606167372
	8606171367 8606161528 8606171778

Patch Files:
	
	OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/libCsup.1
	/usr/lib/libCsup.2
	/usr/lib/libCsup_v2.1
	/usr/lib/libCsup_v2.2
	/usr/lib/libCsup_v2.sl
	/usr/lib/librwtool.1
	/usr/lib/librwtool.2
	/usr/lib/libstd.1
	/usr/lib/libstd.2
	/usr/lib/libstd_v2.1
	/usr/lib/libstd_v2.2
	/usr/lib/libstd_v2.sl
	/usr/lib/libstream.1
	/usr/lib/libstream.2

	ProgSupport.LANG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/libCsup.a
	/usr/lib/libCsup_v2.a
	/usr/lib/librwtool.a
	/usr/lib/libstd.a
	/usr/lib/libstd_v2.a
	/usr/lib/libstream.a

	OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/pa20_64/libCsup.2
	/usr/lib/pa20_64/libCsup_v2.2
	/usr/lib/pa20_64/libCsup_v2.sl
	/usr/lib/pa20_64/librwtool.2
	/usr/lib/pa20_64/libstd.2
	/usr/lib/pa20_64/libstd_v2.2
	/usr/lib/pa20_64/libstd_v2.sl
	/usr/lib/pa20_64/libstream.2

	ProgSupport.LANG-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,
		v=HP:
	/usr/lib/pa20_64/libCsup.a
	/usr/lib/pa20_64/libCsup_v2.a
	/usr/lib/pa20_64/librwtool.a
	/usr/lib/pa20_64/libstd.a
	/usr/lib/pa20_64/libstd_v2.a
	/usr/lib/pa20_64/libstream.a

what(1) Output:
	
	OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/libCsup.1:
		HP aC++ B3910B A.01.30 Language Support Library
	/usr/lib/libCsup.2:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/libCsup_v2.1:
		HP aC++ B3910B A.01.30 Language Support Library
	/usr/lib/libCsup_v2.2:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/libCsup_v2.sl:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/librwtool.1:
		HP aC++ B3910B A.01.30 Tools.h++ Library (RogueWave 
			Version 7.0.6)
	/usr/lib/librwtool.2:
		HP aC++ B3910B A.03.30 Tools.h++ Library (RogueWave 
			Version 7.0.6)
	/usr/lib/libstd.1:
		HP aC++ B3910B A.01.30 C++ Standard Library (RogueWa
			ve Version 1.2.1)
	/usr/lib/libstd.2:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 1.2.1)
	/usr/lib/libstd_v2.1:
		HP aC++ B3910B A.01.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/libstd_v2.2:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/libstd_v2.sl:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/libstream.1:
		HP aC++ B3910B A.01.30 Classic Iostream Library
	/usr/lib/libstream.2:
		HP aC++ B3910B A.03.30 Classic Iostream Library

	ProgSupport.LANG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/libCsup.a:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/libCsup_v2.a:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/librwtool.a:
		HP aC++ B3910B A.03.30 Tools.h++ Library (RogueWave 
			Version 7.0.6)
	/usr/lib/libstd.a:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 1.2.1)
	/usr/lib/libstd_v2.a:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/libstream.a:
		HP aC++ B3910B A.03.30 Classic Iostream Library

	OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/lib/pa20_64/libCsup.2:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/pa20_64/libCsup_v2.2:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/pa20_64/libCsup_v2.sl:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/pa20_64/librwtool.2:
		HP aC++ B3910B A.03.30 Tools.h++ Library (RogueWave 
			Version 7.0.6)
	/usr/lib/pa20_64/libstd.2:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 1.2.1)
	/usr/lib/pa20_64/libstd_v2.2:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/pa20_64/libstd_v2.sl:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/pa20_64/libstream.2:
		HP aC++ B3910B A.03.30 Classic Iostream Library

	ProgSupport.LANG-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,
		v=HP:
	/usr/lib/pa20_64/libCsup.a:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/pa20_64/libCsup_v2.a:
		HP aC++ B3910B A.03.30 Language Support Library
	/usr/lib/pa20_64/librwtool.a:
		HP aC++ B3910B A.03.30 Tools.h++ Library (RogueWave 
			Version 7.0.6)
	/usr/lib/pa20_64/libstd.a:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 1.2.1)
	/usr/lib/pa20_64/libstd_v2.a:
		HP aC++ B3910B A.03.30 C++ Standard Library (RogueWa
			ve Version 2.02.01)
	/usr/lib/pa20_64/libstream.a:
		HP aC++ B3910B A.03.30 Classic Iostream Library

cksum(1) Output:
	
	OS-Core.CORE-SHLIBS,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	2451847742 188416 /usr/lib/libCsup.1
	4239354972 208896 /usr/lib/libCsup.2
	1692429042 188416 /usr/lib/libCsup_v2.1
	391297115 208896 /usr/lib/libCsup_v2.2
	391297115 208896 /usr/lib/libCsup_v2.sl
	2561257450 1388544 /usr/lib/librwtool.1
	1209878428 1376256 /usr/lib/librwtool.2
	4103311869 397312 /usr/lib/libstd.1
	3743299983 393216 /usr/lib/libstd.2
	505721471 2199552 /usr/lib/libstd_v2.1
	1690494993 2154496 /usr/lib/libstd_v2.2
	1690494993 2154496 /usr/lib/libstd_v2.sl
	1421596013 233472 /usr/lib/libstream.1
	1175775882 245760 /usr/lib/libstream.2

	ProgSupport.LANG-MIN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	2267088131 335992 /usr/lib/libCsup.a
	1738718231 345360 /usr/lib/libCsup_v2.a
	1836827327 1406572 /usr/lib/librwtool.a
	2446593715 587540 /usr/lib/libstd.a
	3265068905 3850072 /usr/lib/libstd_v2.a
	1580482148 224238 /usr/lib/libstream.a

	OS-Core.CORE-64SLIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	3059413453 213688 /usr/lib/pa20_64/libCsup.2
	2658270338 215264 /usr/lib/pa20_64/libCsup_v2.2
	2658270338 215264 /usr/lib/pa20_64/libCsup_v2.sl
	2085834042 1383080 /usr/lib/pa20_64/librwtool.2
	2284177652 390128 /usr/lib/pa20_64/libstd.2
	1829071604 2158096 /usr/lib/pa20_64/libstd_v2.2
	1829071604 2158096 /usr/lib/pa20_64/libstd_v2.sl
	1631983751 247136 /usr/lib/pa20_64/libstream.2

	ProgSupport.LANG-64ALIB,fr=B.11.00,fa=HP-UX_B.11.00_32/64,
		v=HP:
	1583579224 514782 /usr/lib/pa20_64/libCsup.a
	18727830 522498 /usr/lib/pa20_64/libCsup_v2.a
	2183307537 2456052 /usr/lib/pa20_64/librwtool.a
	659774300 885484 /usr/lib/pa20_64/libstd.a
	3980295784 5530810 /usr/lib/pa20_64/libstd_v2.a
	4075837136 367834 /usr/lib/pa20_64/libstream.a

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies:
	Every development site (on A.03.25 through A.03.27) that
	installs this patch MUST also install the header file patch
	PHSS_22868.  All aC++ applications built with the -AA option
	on versions A.03.25 through A.03.27 must then be recompiled
	and relinked.  If this is not done, link time or run time
	incompatibilities may result.  See CR JAGad36658 above.

Supersedes:
	PHSS_13390 PHSS_14577 PHSS_16587 PHSS_20055 PHSS_21906

Equivalent Patches:
	PHSS_22354:
	s700: 10.01 10.10 10.20
	s800: 10.01 10.10 10.20

	PHSS_22898:
	s700: 11.11
	s800: 11.11

Patch Package Size: 30160 KBytes

Installation Instructions:
	Please review all instructions and the Hewlett-Packard
	SupportLine User Guide or your Hewlett-Packard support terms
	and conditions for precautions, scope of license,
	restrictions, and, limitation of liability and warranties,
	before installing this patch.
	------------------------------------------------------------
	1. Back up your system before installing a patch.

	2. Login as root.

	3. Copy the patch to the /tmp directory.

	4. Move to the /tmp directory and unshar the patch:

		cd /tmp
		sh PHSS_22543

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHSS_22543.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHSS_22543.  If you do not wish to retain a
	copy of the original software, use the patch_save_files option:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -x patch_save_files=false -s /tmp/PHSS_22543.depot

	WARNING: If patch_save_files is false when a patch is installed,
		 the patch cannot be deinstalled.  Please be careful
		 when using this feature.

	For future reference, the contents of the PHSS_22543.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHSS_22543.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHSS_22543.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions:
	NOTE TO USERS OF THE NEWLY INTRODUCED ANSI C++ STANDARD
	LIBRARY VERSION 2.0 (libstd_v2):

	If you have used aC++ versions A.03.25 through A.03.27 with
	the -AA option then you must install this patch.

	If as an ISV you have shipped a library built WITH the -AA
	option, please contact HP for further information.  If as an
	end user you have received and installed third party
	libraries or applications built or compiled WITH the -AA
	option, please contact HP for further information.

	To determine whether your library/application uses -AA, run
	the command

	   chatr <executable/runtime library> | grep libstd_v2

	If the output of this command is NOT empty, your
	library/application uses -AA.

	This libstd_v2 roll is necessary to establish compatibility
	with the definition of mbstate_t (multibyte support) in the
	HPUX 11.11 runtime (libc).

	If you install this patch you MUST recompile and relink any
	applications built with the -AA option (and be sure your
	software vendors have done so for their products).

	Every development site (on A.03.25 through A.03.27) that
	installs this patch MUST also install the header file patch
	PHSS_22868.  All aC++ applications built with the -AA option
	on versions A.03.25 through A.03.27 must then be recompiled
	and relinked.  If this is not done, link time or run time
	incompatibilities may result.  See CR JAGad36658 above.

