Patch Name: PHSS_13388 Patch Description: s700_800 10.X HP aC++ runtime library components (A.01.09) Creation Date: 97/12/17 Post Date: 98/01/02 Hardware Platforms - OS Releases: s700: 10.01 10.10 10.20 s800: 10.01 10.10 10.20 Products: N/A Filesets: OS-Core.CORE-SHLIBS ProgSupport.LANG-MIN Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_13388 Symptoms: PHSS_13388: 1. Excessive memory usage with , 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 PHSS_12609: 1. string(, string::npos) throws length_error vs. out_of_range 2. Error 641 on some RW source files if -DRW_NO_STL 3. MEMBER TEMPLATES: needs more typename fixes 4. Excessive memory usage with , long compile times too 5. tools.h++ headers: Future error 641 need to be fixed PHSS_10113: 1. This patch is required for the libraries to be compatible with the A.01.04 release of the aC++ compiler. The results of using incompatible libraries are unpredicatable. PHSS_9527: 1. Bus error in rwtool templates with -z and threads 2. Error 243 with RW template collection PHSS_8324: 1. Supply core libraries for aC++ revision A.01.00. Defect Description: PHSS_13388: 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::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 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 int main() { map myMap; map::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 PHSS_12609: 1. basic_string(const charT* s, size_type n, const Allocator& a = Allocator()); Creates a string that contains the first n characters of s. s must not be a NULL pointer. The effects of this constructor are: An out_of_range exception will be thrown if n == npos. 2. Some RW sources/includes are giving the 641 (future) error. Here is an example one: Error (future) 641: "/opt/aCC/include/rw/xvdlist.cc", line 493 # Undeclared variable 'advance'. Did you forget to make the variable dependent on the template type parameters so it would be looked up when templates are generated? advance(); ^^^^^^^ 3. MEMBER TEMPLATES: needs more typename fixes. 4. aCC consumes much memory for small lists or other small containers. 5. Undeclared variable, future error 641, issued. PHSS_10113: 1. A.01.04 compatability PHSS_9527: 1. The library was destructing an object before it had been initialized when using threads. 2. A class that inherits from a Roguewave collection template classes could not call certain functions defined in the base class. PHSS_8324: 1. The core libraries for aC++ A.01.00 are not included in the HP-UX core releases. SR: 4701333732 4701343582 5003339796 5003387357 4701363366 1653217448 4701374090 5003367938 5003381178 5003392829 1653238188 Patch Files: /usr/lib/libCsup.1 /usr/lib/libCsup.a /usr/lib/librwtool.1 /usr/lib/librwtool.a /usr/lib/libstd.1 /usr/lib/libstd.a /usr/lib/libstream.1 /usr/lib/libstream.a what(1) Output: /usr/lib/libCsup.1: HP aC++ B3910B A.01.09 Language Support Library /usr/lib/libCsup.a: HP aC++ B3910B A.01.09 Language Support Library /usr/lib/librwtool.1: HP aC++ B3910B A.01.09 Tools.h++ Library (RogueWave Version 7.0.6) /usr/lib/librwtool.a: HP aC++ B3910B A.01.09 Tools.h++ Library (RogueWave Version 7.0.6) /usr/lib/libstd.1: HP aC++ B3910B A.01.09 C++ Standard Library (RogueWa ve Version 1.2.1) /usr/lib/libstd.a: HP aC++ B3910B A.01.09 C++ Standard Library (RogueWa ve Version 1.2.1) /usr/lib/libstream.1: HP aC++ B3910B A.01.09 Classic Iostream Library /usr/lib/libstream.a: HP aC++ B3910B A.01.09 Classic Iostream Library cksum(1) Output: 2564698638 340524 /usr/lib/libCsup.1 3892350086 461474 /usr/lib/libCsup.a 2738099432 1630812 /usr/lib/librwtool.1 2446786695 1884948 /usr/lib/librwtool.a 12507652 531640 /usr/lib/libstd.1 2112403455 653064 /usr/lib/libstd.a 1678704818 230974 /usr/lib/libstream.1 234464399 229522 /usr/lib/libstream.a Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_8324 PHSS_9527 PHSS_10113 PHSS_12609 Equivalent Patches: PHSS_13390: s700: 11.00 s800: 11.00 Patch Package Size: 5890 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_13388 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_13388.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHSS_13388.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_13388. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHSS_13388.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_13388.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None