Patch Name: PHCO_14038 Patch Description: s700_800 10.20 libc cumulative header file patch Creation Date: 98/02/13 Post Date: 98/02/18 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: ProgSupport.C-INC Automatic Reboot?: No Status: General Superseded Critical: No (superseded patches were critical) PHCO_8677: OTHER Applications compiled with the "LARGE_FILES" define without this header patch will fail when calling getdirentries(2). Path Name: /hp-ux_patches/s700_800/10.X/PHCO_14038 Symptoms: PHCO_14038: C++ applications do not compile when _FILE_OFFSET_BITS is set to 64 in 32-bit mode. JAGaa00365 PHCO_12992: Add mallopt(3c) constant. JAGaa01089. PHCO_11586: When the user compiles in ANSI extended and includes /usr/include/ftw.h, the first parameter to ftw(3c) is erroneously non-const. DSDe436482, SR 1653214544. The prototype for utmpname(3C) is missing from /usr/include/utmp.h. DSDe434984, SR 5003361725. C++ applications that include the file /usr/include/iconv.h do not compile because the definition of the __iconv_rec structure contains an superfluous "typedef" keyword which the C++ compiler treats as an error. DSDe437429, SR 1653219691. PHCO_8677: When a source file is compiled with "+O2 +Olibcalls" and the frexp(3M) function is used, the following warning is issued: > warning 5004: Uninitialized variable "exp" in function > "main" (5004) which results in code that does not modify the exponent parameter as it should. CHFts20778 Provides fix for applications which compile using large files. The getdirentries(2) call fails with a garbage value in the basep parameter. DSDe430308. Select system call compatibility feature doesn't work as described in man pages. The XPG4 compliant version of select() (documented as being available by including ) is the only version available. Our man page documents that the backwards compatible version is documented as being available by including . Trying to use the backwards compatible version of select results in a compile error. Requires PHKL_8693 (s700) or PHKL_8694 (s800) in order to fix this problem; installation without either PHKL_8693 or PHKL_8694 will not affect other functionality adversely. DSDe430629, SR-5003330795. PHCO_9261: ANSI C++ programs that use C++ exception handling and include math.h will fail to compile. DSDe431919. Defect Description: PHCO_14038: C++ applications currently do have have access to 64-bit data types and Large Files interfaces when compiled in 32-bit mode. PHCO_12992: A mallopt(3c) constant was missing. PHCO_11586: For the header file /usr/include/ftw.h, the extra underscore in "__STDC_EXT___" causes the first parameter to ftw() to be non-const when compiling ANSI extended. The prototype for utmpname(3C) is missing from /usr/include/utmp.h. There was an extraneous "typedef" in the __iconv_rec structure definition in /usr/include/iconv.h which prevented ANSI C++ compiles. PHCO_8677: Provides fix for /usr/include/math.h. When a source file is compiled with "+O2 +Olibcalls" and the frexp(3M) function is used, the following warning is issued: > warning 5004: Uninitialized variable "exp" in function > "main" (5004) where "exp" is the exponent parameter to the frexp call. This results in code that does not modify the exponent parameter as it should. Provides fix for applications which compile using large files. Due to a conflict in the size of the basep parameter to getdirentries(2), the return value wasn't set properly. Select system call compatibility feature doesn't work as described in man pages. The XPG4 compliant version of select() (documented as being available by including ) is the only version available. Our man page documents that the backwards compatible version is documented as being available by including . Trying to use the backwards compatible version of select results in a compile error. PHCO_9261: exception is a ANSI C++ keyword. Declaration of a struct by the same name in math.h violates the ANSI C++ namespace. SR: 5003330795 1653214544 5003361725 1653219691 1653208348 Patch Files: /usr/include/ftw.h /usr/include/iconv.h /usr/include/malloc.h /usr/include/math.h /usr/include/mntent.h /usr/include/ndir.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/time.h /usr/include/utmp.h what(1) Output: /usr/include/ftw.h: /usr/include/ftw.h: $Revision: ../hdr/ftw.h@@/main/r10dav/libc_dav/libc_ dav_cpe/3 $ */: /usr/include/iconv.h: /usr/include/iconv.h: $Revision: ../hdr/iconv.h@@/main/r10dav/libc_dav/lib c_dav_cpe/1 $ */: /usr/include/malloc.h: /usr/include/malloc.h: $Revision: ../hdr/malloc.h@@/main/r10dav/libc_dav/li bc_dav_cpe/1 $ */ : /usr/include/math.h: /usr/include/math.h: $Revision: ../hdr/math.h@@/main/r10dav/libc_dav/libc _dav_cpe/6 $ */: /usr/include/mntent.h: /usr/include/mntent.h: $Revision: ../hdr/mntent.h@@/main/r10dav/libc_dav/li bc_dav_cpe/3 $ */: /usr/include/ndir.h: /usr/include/ndir.h: $Revision: ../hdr/ndir.h@@/main/r10dav/libc_dav/libc _dav_cpe/4 $ */ : /usr/include/stdio.h: /usr/include/stdio.h: $Revision: ../hdr/stdio.h@@/main/r10dav/libc_dav/lib c_dav_cpe/1 $ */: /usr/include/stdlib.h: /usr/include/stdlib.h: $Revision: ../hdr/stdlib.h@@/main/r10dav/libc_dav/li bc_dav_cpe/1 $ */: /usr/include/time.h: /usr/include/time.h: $Revision: ../hdr/time.h@@/main/r10dav/libc_dav/libc _dav_cpe/4 $ */: /usr/include/utmp.h: /usr/include/utmp.h: $Revision: ../hdr/utmp.h@@/main/r10dav/libc_dav/libc _dav_cpe/1 $ */: cksum(1) Output: 3609607209 8599 /usr/include/ftw.h 2896706865 2381 /usr/include/iconv.h 1273207641 2230 /usr/include/malloc.h 3056179703 14944 /usr/include/math.h 4194121315 6742 /usr/include/mntent.h 1193108819 4960 /usr/include/ndir.h 3063028554 19396 /usr/include/stdio.h 1619671394 11984 /usr/include/stdlib.h 1808584571 6821 /usr/include/time.h 651426428 3887 /usr/include/utmp.h Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_14172 PHKL_8693 s800: 10.20: PHKL_14173 PHKL_8694 Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_9261 PHCO_8677 PHCO_11586 PHCO_12992 Equivalent Patches: None Patch Package Size: 150 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 PHCO_14038 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_14038.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/PHCO_14038.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/PHCO_14038. 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 PHCO_14038.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/PHCO_14038.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None