Patch Name: PHSS_19192 Patch Description: s700_800 10.26 LIBCL cumulative patch Creation Date: 99/09/15 Post Date: 99/10/15 Hardware Platforms - OS Releases: s700: 10.26 s800: 10.26 Products: N/A Filesets: OS-Core.CORE-SHLIBS,B.10.20 ProgSupport.LANG-MIN,B.10.20 Automatic Reboot?: No Status: General Release Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_19192 Symptoms: PHSS_19192: Port of 10.20 PHSS_17689 (PHSS_17689:) 1. Fortran treats letters T, F, t, f as valid input for numeric items, instead of catching them as an error. (PHSS_16690:) 1. Unwinding through an invalid stack frame may not discontinue the unwinding process. The routine which finds unwind entries in the unwind table, "U_get_unwind_entry" has an "off by one" logic error in its search algorithm and could return a pointer to the address beyond the end of the unwind table indicating that it found an unwind entry instead of indicating that no entry was found. 2. The error message reported to the user when an alloca frame is encountered by U_get_previous_frame() is incorrect. "5613 Procedure entry sequence is too long for Unwind. Contact HP Service." is displayed rather than "5612 Old version data structures won't restore r3 and r4 for Alloca Unwind." Reminder: U_get_previous_frame_x() is the new 10.20 interface which permits unwinding alloca() stack frames. (PHSS_15549:) 1. PHSS_11658 causes FORTRAN to ignore format spec $ (newline suppression). 2. Fortran complex arithmetic is much slower with the post-Fortran90 libcl. 3. For value 0.0, ES12.3 format displays 0.000E-01, it should be 0.000E+0 4. FORTRAN I/O ERROR 979: VARIABLE NOT IN NAMELIST GROUP for variables with embedded "$" 5. FORTRAN I/O ERROR 979: VARIABLE NOT IN NAMELIST GROUP for f90 namelist IO which defines multiple array items after a single array element is specified. (PHSS_15255:) 1. Fortran formatted real output has a generic accuracy problem caused by sometimes rounding a formatted value twice. This can result in a formatted value that is too large. (PHSS_14423:) 1. If when handling an exception, the unwinder is called to unwind a stack which contains alloca frames, the stack unwind will often fail when crossing the alloca() frame. (This affects Ansi C++ exception handling which uses alloca() to allocate space for temporary variables.) 2. The unwinder may dump core when unwinding through HP_UX exception frames in shared libraries. The dumping of core is likely to happen if the user has not followed the procedure calling conventions in generating object code (examples: A 3rd party compiler, assembly functions which don't follow the HP procedure calling conventions, simulator generated code.) The unwinder dumps core rather than detecting the corrupt stack and returning a "can't unwind" return value from U_get_previous_frame(). (PHSS_14000:) 1. Applications which call stack unwind routines including U_get_previous_frame() may receive different description of stack frame upon reaching an invalid frame in the stack. The behavior changed with the introduction of patch PHSS_10766. 2. When using Ansi C++ exception handling support, U_STACK_TRACE fails when called from signal handler. The failure mode occures only if the handler is responding to a signal which has interrupted an HP_UX system call 3. Fortran 77 program is not terminated on the first use of "kill -1." (PHSS_11658:) 1. SR 16533218321 : In a Fortran program, sequential unformatted write operations with empty I/O lists results in a file that cannot be read back in. 2. In Fortran programs, the performance of formatted floating point output is, in some instances, much slower than with a 9.X release of Fortran 77. (PHSS_10766:) 1. Unwind library fails to cross shared library boundaries and signal frames. (PHSS_10743:) 1. SR 5003363085, 1653198705 : In a Fortran program an unformatted read of an unquoted character string may stop before reaching the end of the string. This happens when the string contains a quote or ':' character. 2. SR 5003360081 : A Fortran 77 program that tries to trap INTEGER*4 overflow using "ON INTEGER*4 OVERFLOW ..." will not in fact trap the overflow. (PHSS_9483:) 1. SR 5003324855: Unwind library doesn't work if an alloca call has been made. (PHSS_8967:) 1. Fails to allow access to files larger than 2 Gigabytes in size. (PHSS_8966:) 1. SR 5003340596 : There is a memory leak when closing files that can cause a program to run out of memory if it opens and closes files many times. 2. SR 1653187393 : A file auto-opened with a sequential read or write statement will create a file whose maximum record length is 256 bytes. (PHSS_8397:) 1. Use of +Oparallel and shared libraries on HPUX 10.20 results in undefined externals __FTN_SET_AR and __FTN_300CHARS. 2. Systems cannot compile Fortran 90 programs or run Fortran 90 programs that were linked with a shared libcl. 3. SR 5003330738 : Reading and writing may be much slower under HP-UX 10.20 than on earlier releases. (PHSS_6986:) 1. SR 5003298067 : Reading a record from an ISAM file may cause the program to crash or exhibit other symptoms of writing off the end of a dynamically allocated memory block. Whether this problem will be observed depends on exactly what other IO commands are executed both before and after the ISAM file read. 2. SR 5003298075 : Programs may crash when using a REWRITE statement to alter an existing ISAM record. The REWRITE statement is used only with ISAM files. The occurrence of this problem is highly sensitive to the pattern of allocation and deallocation of memory blocks at run-time. However, if the problem occurs it will almost certainly result in a program crash while attempting to execute the REWRITE statement; delayed symptoms or silent incorrect behavior are very unlikely. 3. SR 5003290122 : If a program backspaces over an initial 64 byte record, the file pointer will be left in the wrong position and the next access to the file will read or write the wrong location in the file. This problem only occurs with the initial record, and that record must be exactly 64 bytes long. 4. SR 5003280859 : Arrays of 4-byte integers do not work correctly with namelists if the +autodblpad compiler switch is used. Only the first element of the array will be correctly accessed via the namelist. (PHSS_5691:) 1. SR 4701296160 : "Ada/unwind fails on 10.0" Users of Alsys Ada will experience problems with exception handling on HP-UX 10.0 without this patch. Exceptions may not be caught by the program's handlers, or may cause core dumps. This patch is essential for all Alsys Ada users. 2. SR 4701295998 : "C++ program compiled on 9.0 dumps core on 10.0" Only affects C++ programs using exception handling. Note that this fix is also included in HP-UX release 10.01. It is mentioned here so that users of HP-UX 10.00 may obtain the patch without updating their whole system, should they so wish. Defect Description: PHSS_19192: Port of 10.20 PHSS_17689 (PHSS_17689:) 1. T, F, t, f are logicals and were incorrectly accepted as integers. Resolution: Fixed bad code SR: 5003422808 1653281634 5003438473 4701380345 1653232181 5003324855 5003340596 5003330738 5003409466 1653253690 1653242602 1653258798 5003407429 5003421701 5003390112 5003415836 Patch Files: /usr/lib/libcl.1 /usr/lib/libcl.a /usr/lib/pa1.1/libcl.1 /usr/lib/pa1.1/libcl.a /usr/lib/nls/msg/C/libcl.cat what(1) Output: /usr/lib/libcl.1: Unwind Library UX.10.20.14 - Wed 98/10/14 Trap Library UX.10.20.10 - Mon 03/09/98 libcl.sl 10.20 version B.10.29.10 02/20/1999 /usr/lib/libcl.a: libcl.a 10.20 version B.10.29.10 02/20/1999 Unwind Library UX.10.20.14 - Wed 98/10/14 Trap Library UX.10.20.10 - Mon 03/09/98 /usr/lib/pa1.1/libcl.1: Trap Library UX.10.20.10 - Mon 03/09/98 Unwind Library UX.10.20.14 - Wed 98/10/14 fs_amod.s $Revision: 1.9.1.1 $ libcl.sl 10.20 version B.10.29.10 02/20/1999 /usr/lib/pa1.1/libcl.a: libcl.a 10.20 version B.10.29.10 02/20/1999 fs_amod.s $Revision: 1.9.1.1 $ Unwind Library UX.10.20.14 - Wed 98/10/14 Trap Library UX.10.20.10 - Mon 03/09/98 /usr/lib/nls/msg/C/libcl.cat: None cksum(1) Output: 176525367 1093632 /usr/lib/libcl.1 2838421477 1344852 /usr/lib/libcl.a 3913288281 1122304 /usr/lib/pa1.1/libcl.1 1081180867 1393428 /usr/lib/pa1.1/libcl.a 1935708068 28334 /usr/lib/nls/msg/C/libcl.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHSS_17689: s700: 10.20 s800: 10.20 Patch Package Size: 4920 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_19192 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_19192.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_19192. 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_19192.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_19192.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None