Patch Name: PHSS_12782 Patch Description: s700_800 10.X HP C++ (A.10.30) core library components Creation Date: 97/11/20 Post Date: 97/11/28 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_12782 Symptoms: PHSS_12782: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_12782: 1. Incorrect results will occur for strstreambuf::out_waiting() if called after the buffer is expanded. PHSS_11616: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_11616: 1. Index out of range runtime error, MAXINT in user class PHSS_10767: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_10767: 1. Addition of OpenGL support. PHSS_9096: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_9096: 1. iword/pword not initialized according to latest standards 2. Runtime Internal Error: cannot allocate space, leak with +eh & threads 3. sync_with_stdio loses data if sent to a pipe, ESPIPE PHSS_7497: 1. Using double/float and >> ws sets failbit for istrstream 2. Threads problems allocating internal storage when many threads are used 3. long long support PHSS_6469: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_6469: 1. Index out of range: GOTOs and +eh don't work together 2. << endl or << flush on ostrstream sets badbit 3. INTERNAL C++ EH RUNTIME THREADS ERROR - SHOULDN'T BE HERE 4. ios::sync_with_stdio() leaks memory 5. -D_THREAD_SAFE breaks cout and cerr, output lost PHSS_6205: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_6205: 1. Problem with iostreams, X::sync() not called for ostream 2. Can't rethrow an exception from within a shared library 3. Destructor without matching constructor when using +eh on nested call 4. Bus error when using ios::sync_with_stdio() Defect Description: PHSS_12782: 1. out_waiting() wrong with strstreambuf if buffer expanded PHSS_11616: 1. The following exception handling runtime error may occur: Runtime internal error: index out of range Using +Xehdtcount does not detect the cause. This occurs if the first member in a class is MAXINT, a magic value that the eh libC.a ignores. PHSS_10767: 1. Addition of OpenGL support. PHSS_9096: 1. Enhancement to initialize iword/pword according to latest standards 2. Memory leaks may occur when using throws and threads. When the thread dies the space to copy the item that is thrown is not reused. 3. Calling ios::sync_with_stdio() may cause output to be lost if the output is sent to a pipe. PHSS_7497: 1. When extracting a double or float from the end of an istrstream and then using the ws manipulator, the failbit is set. instr >> d >> ws; 2. When using many threads (< 90) a customer was getting an error because of the way memory was malloc'd for the internal storage structure. 3. New functionality for long long has been added. To use long long the -ext option must be added to the compile line. PHSS_6469: 1. The compiler did not handle gotos properly while in +eh mode. 2. Use of << endl or << flush with strstreams may set the badbit. It depends on the size of the string. Also once the badbit is set, some output may still be produced, but fairly randomly, depending on the of the strings inserted. 3. When using threads you will get the message: *********************************************************** INTERNAL C++ EH RUNTIME THREADS ERROR - SHOULDN'T BE HERE!! You have encountered a thread in 'out_callback' that was not registered through the start_callback routine. contact your HP service representative about this message *********************************************************** If one of the threads terminates early. 4. Every time ios::sync_with_stdio() is called it leaks memory. Also last_op is not initialized nor is it ever set in underflow(). This routine does not interact well with threads. 5. Using -D_THREAD_SAFE as suggested in the Release Notes will cause output to cout, cerr and clog to be lost for all but the main thread. Checking status will indicate errors. PHSS_6205: 1. Problem with iostreams, X::sync() not called from ostream, etc. X is a class derived from ostream. 2. A coredump will occur when using +eh in a shared library in compiler mode. This will occur for any function that has a try block that does not enclose the throw or the call to the function that does a throw. 3. A destructor was called without a matching constructor call when using +eh on a nested call. 4. If ios::sync_with_stdio() is called on 10.0 the program will abort in ios::init(streambuf*) with a null pointer. SR: 1653118141 1653141390 5003267732 5003278093 1653149351 4701311159 4701308817 4701276600 1653157487 5003297481 4701225052 4701339895 5003338392 5003371096 1653165225 Patch Files: /usr/lib/libC.1 /usr/lib/libC.a /usr/lib/libC.ansi.1 /usr/lib/libC.ansi.a what(1) Output: /usr/lib/libC.1: HP C++ HPCPLUSPLUS A.10.30 /usr/lib/libC.a: HP C++ HPCPLUSPLUS A.10.30 /usr/lib/libC.ansi.1: HP C++ HPCPLUSPLUS A.10.30 /usr/lib/libC.ansi.a: HP C++ HPCPLUSPLUS A.10.30 cksum(1) Output: 2327681669 181070 /usr/lib/libC.1 673607561 177772 /usr/lib/libC.a 20632295 181070 /usr/lib/libC.ansi.1 4188214121 177800 /usr/lib/libC.ansi.a Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_6205 PHSS_6469 PHSS_7497 PHSS_9096 PHSS_10767 PHSS_11616 Equivalent Patches: None Patch Package Size: 760 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_12782 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_12782.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_12782.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_12782. 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_12782.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_12782.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None