**************************** ECO SUMMARY INFORMATION **************************** Release Date: 22-APR-2005 Kit Name: DEC-AXPVMS-VMS731_ACRTL-V0400--4.PCSI Kit Applies To: OpenVMS ALPHA V7.3-1 Approximate Kit Size: 65584 blocks Installation Rating: INSTALL_2 Required Features: ACRTL Reboot Required: Yes - rolling reboot Superseded Kits: VMS731_ACRTL-V0300 Mandatory Kit Dependencies: VMS731_PCSI-V0200 Optional Kit Dependencies: None VMS731_ACRTL-V0400.PCSI-DCX_AXPEXE Checksum: 3800341716 ======================================================================= Hewlett-Packard OpenVMS ECO Cover Letter ======================================================================= 1 KIT NAME: VMS731_ACRTL-V0400 2 KIT DESCRIPTION: 2.1 Installation Rating: INSTALL_2: To be installed by all customers using the following feature(s): - ACRTL This installation rating, based upon current CLD information, is provided to serve as a guide to which customers should apply this remedial kit. (Reference attached Disclaimer of Warranty and Limitation of Liability Statement) 2.2 Reboot Requirement: Reboot Required. HP strongly recommends that a reboot is performed immediately after kit installation to avoid system instability. If you have other nodes in your OpenVMS cluster, they must also be rebooted in order to make use of the new image(s). If it is not possible or convenient to reboot the entire cluster at this time, a rolling re-boot may be performed. 2.3 Version(s) of OpenVMS to which this kit may be applied: OpenVMS Alpha V7.3-1 2.4 New functionality or new hardware support provided: Yes. 3 KITS SUPERSEDED BY THIS KIT: - VMS731_ACRTL-V0300 Page 2 4 KIT DEPENDENCIES: 4.1 The following remedial kit(s), or later, must be installed BEFORE installation of this, or any required kit: - VMS731_PCSI-V0200 4.2 In order to receive all the corrections listed in this kit, the following remedial kits, or later, should also be installed: - None 5 FILES PATCHED OR REPLACED: o [SYSLIB]DECC$SHR.EXE (new image) Image Identification Information image name: "DECC$SHR" image file identification: "V7.3-1-04" image file build identification: "XA9J-0060 link date/time: 23-FEB-2005 14:40:08.35 linker identification: "A11-50" Overall Image Checksum: 592529277 o [SYSLIB]DECC$SHR_EV56.EXE (new image) Image Identification Information image name: "DECC$SHR_EV56" image file identification: "V7.3-1-04" image file build identification: "XA9J-0060 link date/time: 23-FEB-2005 14:40:20.65 linker identification: "A11-50" Overall Image Checksum: 1482389017 o [SYSLIB]CRTL.OBJ (new file - used to update STARLET.OBJ) o [SYSLIB]CRTLMSGDEF.OBJ (new file - used to update STARLET.OBJ) o [SYSUPD]DECC$RTLDEF.TLB (new file) o [SYS$STARTUP]VMS$INITIAL-050_VMS.COM Page 3 6 NEW FUNCTIONALITY AND/OR PROBLEMS ADDRESSED IN THE VMS731_ACRTL-V0400 KIT 6.1 New functionality addressed in this kit 6.1.1 New EABANDONED code in ERRNO.H 6.1.1.1 Functionality Description: Pthreads functions could return an "Owner can not release resource" message when having problems with process-shared mutexes. It will be returned in cases where the system has determined that the target process-shared mutex is locked by a process that has terminated (i.e.,the mutex is considered "abandoned" because the rightful owner cannot release it). Note the C Run-time message file is not being shipped on this ECO kit. When ERRNO is set to EABANDONED, function perror() will not be able to report the expected new text "owner can not release resource". This is expected to work in a future release of OpenVMS. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2 Problems addressed in this kit 6.2.1 lseek() and large file offsets 6.2.1.1 Problem Description: Function lseek() fails to correctly position files on offsets larger than ULONG_MAX (4294967295) bytes (under feature control macro_LARGEFILE). For example, calling lseek on a 6 gigabyte (16 megablock) file and specifying an offset of 0x100000000 leaves the file position at zero. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE Page 4 6.2.1.2 CLDs, and QARs reporting this problem: 6.2.1.2.1 CLD(s) 70-17-116,70-5-2477,CFS.106027,QXCM1000196144 6.2.1.2.2 QAR(s) None. 6.2.1.3 Problem Analysis: Internal calculations for positioning would convert values larger than 0xFFFFFFFF to 0. This leads to incorrect results and unexpected behavior. 6.2.1.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.1.5 Work-arounds: None. 6.2.2 mktime() loses a day 6.2.2.1 Problem Description: UTC time based function mktime() loses a day when structure member tm_mday is supplied with 0 or negative values. Function mktime() generates inconsistent days. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2.2.2 CLDs, and QARs reporting this problem: 6.2.2.2.1 CLD(s) CFS.107830,70-17-112 Page 5 6.2.2.2.2 QAR(s) None. 6.2.2.3 Problem Analysis: The mktime() algorithm has not changed since the original port (circa 1995). 6.2.2.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.2.5 Work-arounds: A workaround of compiling with _VMS_V6_SOURCE macro defined can work for some cases of the problem. 6.2.3 C header file reference directory protections 6.2.3.1 Problem Description: In previous CRTL ECO kits, new C header files installed in SYS$COMMON:[DECC$LIB.REFERENCE.DECC$RTLDEF] were protected against world read: o GLOB.H o POLL.H o SIGINFO.H o STATVFS.H Images Affected: - None. 6.2.3.2 CLDs, and QARs reporting this problem: 6.2.3.2.1 CLD(s) None. Page 6 6.2.3.2.2 QAR(s) None. 6.2.3.3 Problem Analysis: New C header files are apparently getting the default file protection. The C compiler kits used to be the only installer of C headers, and use VMSINSTAL, for slightly different effect. 6.2.3.4 Release Version of OpenVMS that will contain this change: Not Applicable 6.2.3.5 Work-arounds: The user can manually set protections. 6.2.4 Header POLL.H should have POLLWRNORM same as POLLOUT 6.2.4.1 Problem Description: X/Open documentation for header POLL.H states that POLLWRNORM should equal POLLOUT. It did not before this change. Images Affected: - None 6.2.4.2 CLDs, and QARs reporting this problem: 6.2.4.2.1 CLD(s) None. 6.2.4.2.2 QAR(s) 75-83-1053 6.2.4.3 Problem Analysis: None. Page 7 6.2.4.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.4.5 Work-arounds: None. 6.2.5 Add missing 'const' in iconv() in INCONV.H 6.2.5.1 Problem Description: The X/Open specification states that the second parameter to iconv() must have the type 'const char **'. The existing header file, iconv.h, prototypes the function without the 'const' qualifier. This const is only applicable to X/Open XPG5. Change the conditionalization to only expose the "const" when in XPG5 compliant mode - aka _XOPEN_SOURCE == 500. Images Affected: - None 6.2.5.2 CLDs, and QARs reporting this problem: 6.2.5.2.1 CLD(s) None. 6.2.5.2.2 QAR(s) None. 6.2.5.3 Problem Analysis: None. 6.2.5.4 Release Version of OpenVMS that will contain this change: V8.2 Page 8 6.2.5.5 Work-arounds: None. 6.2.6 STDDEF.H offsetof() macro 6.2.6.1 Problem Description: C header file STDDEF.H had some extra conditionalization around the definition of the offsetof() macro. Images Affected: - None 6.2.6.2 CLDs, and QARs reporting this problem: 6.2.6.2.1 CLD(s) None. 6.2.6.2.2 QAR(s) None. 6.2.6.3 Problem Analysis: None. 6.2.6.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.6.5 Work-arounds: None. 6.2.7 C++ header inline functions 6.2.7.1 Problem Description: The following files were changed: o Header Files: ctype.h stdio.h string.h wchar.h wctype.h Page 9 o Functions: Functions were changed to prefix inline functions with a CXXL$prefix. The problem was that if there is no prefix on the function and, for any reason, the function is not inlined, it will be prefixed with "DECC$" prefix which will cause Linker's multiply defined symbols because there is a function with the same name in DECC$SHR image. clearerr feof ferror getc getchar getwc getwchar isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace iswalnum iswalpha iswcntrl iswdigit iswgraph iswlower iswprint iswpunct iswspace iswupper iswxdigit isxdigit putwc putwchar supper Images Affected: - None 6.2.7.2 CLDs, and QARs reporting this problem: 6.2.7.2.1 CLD(s) None. 6.2.7.2.2 QAR(s) None. 6.2.7.3 Problem Analysis: See problem description. 6.2.7.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.7.5 Work-arounds: None. Page 10 6.2.8 IN6.H header IPv6 structures should be packed 6.2.8.1 Problem Description: IPv6 structure sockaddr_in6 in header file IN6.H should be packed but it is not, as the member alignment is on natural boundaries. This cause problems when applications expect and check size for packed structures. Images Affected: - None 6.2.8.2 CLDs, and QARs reporting this problem: 6.2.8.2.1 CLD(s) None. 6.2.8.2.2 QAR(s) None. 6.2.8.3 Problem Analysis: None. 6.2.8.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.8.5 Work-arounds: None. 6.2.9 mprotect() required mapped memory 6.2.9.1 Problem Description: Function mprotect() currently requires that memory be mapped by mmap(), or it returns an error. With this edit, users can set protection using function mprotect() for memory which was not mapped by function mmap(). Images Affected: - [SYSLIB]DECC$SHR.EXE Page 11 - [SYSLIB]DECC$SHR_EV56.EXE 6.2.9.2 CLDs, and QARs reporting this problem: 6.2.9.2.1 CLD(s) None. 6.2.9.2.2 QAR(s) 75-90-110 6.2.9.3 Problem Analysis: Behavior was changed in previous versions of OpenVMS 6.2.9.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.9.5 Work-arounds: None. 6.2.10 getpwnam_r() and getpwuid_r() pointer issues 6.2.10.1 Problem Description: o Programs calling the short-pointer version of getpwuid_r (aka _getpwuid_r32) could incorrectly pass a long pointer value for the 'buffer' (third) argument to this function. This user-specified buffer is allocated to members of the resulting 'passwd' structure, which are 32-bit pointers. This will cause an incorrect result for those members (pw_name, pw_dir, and pw_shell) if the buffer is in high memory. The same problem exists for the short-pointer version of getpwnam_r (aka _getpwnam_r32). This fix repairs the problem by modifying the prototype for the indicated functions so that they will accept only a 32-bit pointer for the 'buffer' argument, instead of a 64-bit pointer. o Programs including and calling _strtok_r32 or _strtok_r64 would not find a prototype in scope. This change repairs the problem by providing the missing prototypes. Page 12 Images Affected: - None 6.2.10.2 CLDs, and QARs reporting this problem: 6.2.10.2.1 CLD(s) None. 6.2.10.2.2 QAR(s) None. 6.2.10.3 Problem Analysis: See problem description. 6.2.10.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.10.5 Work-arounds: None. 6.2.11 BUILTINS.H: Fix PAL_BUGCHK 6.2.11.1 Problem Description: Using current C/C++ compilers, calling __PAL_BUGCHK with a parameter, will result in a fatal error. Also, many of the builtins had misleading comments regarding the implementation of the built-in function. Images Affected: - None 6.2.11.2 CLDs, and QARs reporting this problem: Page 13 6.2.11.2.1 CLD(s) None. 6.2.11.2.2 QAR(s) None. 6.2.11.3 Problem Analysis: See problem description. 6.2.11.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.11.5 Work-arounds: None. 6.2.12 vsnprintf() or snprintf() can overwrite memory 6.2.12.1 Problem Description: Under specific conditions, vsnprintf() or snprintf() can overwrite memory beyond the maximum count allowed in the user's buffer. For example: snprintf(t, 3, "%2sxxxx", "a"); will overwrite user buffer t beyond allowed t[2] using the format string provided. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2.12.2 CLDs, and QARs reporting this problem: Page 14 6.2.12.2.1 CLD(s) None. 6.2.12.2.2 QAR(s) None. 6.2.12.3 Problem Analysis: See problem description. 6.2.12.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.12.5 Work-arounds: None. 6.2.13 socket_fd() memory leak 6.2.13.1 Problem Description: A memory leak can occur in programs using socket_fd. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2.13.2 CLDs, and QARs reporting this problem: 6.2.13.2.1 CLD(s) CFS.105019 6.2.13.2.2 QAR(s) None. Page 15 6.2.13.3 Problem Analysis: A file control block (internal CRTL data) associated with a file descriptor was not being deallocated with the descriptor. 6.2.13.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.13.5 Work-arounds: None. 6.2.14 Prevent C++ compiler error with statvfs() 6.2.14.1 Problem Description: An error can occur when using the 'restrict' type qualifier: int statvfs(const char * __restrict path, ......) ....................................^ %CXX-E-EXPRPAREN, expected a ")" Headers DECC$TYPES.H and STATVFS.H add the 'restrict' type qualifier when the C/C++ compiler or X/Open standard (XPG6) supports it. Images Affected: - None - None 6.2.14.2 CLDs, and QARs reporting this problem: 6.2.14.2.1 CLD(s) None. 6.2.14.2.2 QAR(s) None. Page 16 6.2.14.3 Problem Analysis: None. 6.2.14.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.14.5 Work-arounds: None. 6.2.15 One time compiling support 6.2.15.1 Problem Description: C Run-Time headers were changed to allow a compiler optimization where header files are only compiled once, even with multiple #include statements for the same header file. Images Affected: - None 6.2.15.2 CLDs, and QARs reporting this problem: 6.2.15.2.1 CLD(s) None. 6.2.15.2.2 QAR(s) None. 6.2.15.3 Problem Analysis: Moved the 'using std::' section inside the guarded part of the header to allow include-once optimization (where #include statements are only evaluated one for the same include file). Page 17 6.2.15.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.15.5 Work-arounds: None. 6.2.16 Unexpected output from *printf() family of functions 6.2.16.1 Problem Description: This is a special case error only seen in unusual circumstances where the user's processed *printf data happens to match the size of the CRTL's internal buffers. Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2.16.2 CLDs, and QARs reporting this problem: 6.2.16.2.1 CLD(s) None. 6.2.16.2.2 QAR(s) QXCM1000201339, PTR 70-17-118 6.2.16.3 Problem Analysis: None 6.2.16.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.16.5 Work-arounds: None Page 18 6.2.17 Unexpected output from *printf() family of functions 6.2.17.1 Problem Description: Using fwrite to stdout will result in an error if the SYSGEN parameter MAXBUF is greater than or equal to 33278. The following is the reported error as viewed by the perror api after the failing fwrite call: Error writing output: : non-translatable vms error code: 0x186A4 %rms-f-rsz, invalid record size Images Affected: - [SYSLIB]DECC$SHR.EXE - [SYSLIB]DECC$SHR_EV56.EXE 6.2.17.2 CLDs, and QARs reporting this problem: 6.2.17.2.1 CLD(s) None. 6.2.17.2.2 QAR(s) PTR 70-17-121, QXCM1000218204 6.2.17.3 Problem Analysis: The CRTL uses RMS to open SYS$OUTPUT with a variable length record attribute. The value of the SYSGEN parameter MAXBUF is used to calculate a buffer size for RMS. It fails to account for the maximum record size allowed for terminal devices. This fix will take the maximum size into consideration for the buffer size calculation. 6.2.17.4 Release Version of OpenVMS that will contain this change: V8.2 6.2.17.5 Work-arounds: None Page 19 7 PROBLEMS ADDRESSED IN PREVIOUS KITS Problem addressed in previous VMS731_ACRTL patch kits can be found in the following files: o VMS731_ACRTL-V0300.RELEASE_NOTES o VMS731_ACRTL-V0200.RELEASE_NOTES o VMS731_ACRTL-V0100.RELEASE_NOTES 8 INSTALLATION INSTRUCTIONS 8.1 Compressed File This kit is provided as a DCX compressed kit. To expand this file to the installable PCSI file, run the file with a RUN file_name command. When the file is run you will see the following output: $ RUN VMS731_ACRTL-V0400.PCSI-DCX_AXPEXE FTSV DCX auto-extractible compressed file for OpenVMS (AXP) FTSV V3.0 -- FTSV$DCX_AXP_AUTO_EXTRACT Copyright (c) Digital Equipment Corp. 1993 Options: [output_file_specification] [input_file_specification] The decompressor needs to know the filename to use for the decompressed file. If you don't specify any, it will use the original name of the file before it was compressed, and create it in the current directory. If you specify a directory name, the file will be created in that directory. Decompress into (file specification): If you want the file to be expanded into a different directory, enter the directory specification. DO NOT enter a new file name. The expanded file must retain the original name. If you want to expand the file via batch, the command file must contain an answer to the Decompress into "(file specification)" question, either a or an alternate directory specification 8.2 Installation Command Install this kit with the POLYCENTER Software installation utility by logging into the SYSTEM account, and typing the following at the DCL prompt: PRODUCT INSTALL VMS731_ACRTL /SAVE_RECOVERY_DATA [/SOURCE=location of Kit] The /SAVE_RECOVERY_DATA qualifier is optional but highly Page 20 recommended. Using this qualifier will allow easy removal of the kit from the system in the event of problems. The kit location may be a tape drive, CD, or a disk directory that contains the kit. The /SOURCE qualifier is not needed if the PRODUCT INSTALL command is executed from the same directory as the kit location. Additional help on installing PCSI kits can be found by typing HELP PRODUCT INSTALL at the system prompt. 8.3 Scripting of Answers to Installation Questions During installation, this kit will ask and require user response to several questions. If you wish to automate the installation of this kit and avoid having to provide responses to these questions, you must create a DCL command procedure that includes the following logical name definitions and commands: o To avoid the BACKUP question, define the following: $ DEFINE/SYS NO_ASK$BACKUP TRUE o To avoid the REBOOT question, define the following: $ DEFINE/SYS NO_ASK$REBOOT TRUE o To save replaced files as *.*_OLD define the following logical name as YES. If you do not wish to save replaced files, define the logical name as NO. Note that if you use the /SAVE_RECOVERY_DATA qualifier (recommended) on the PRODUCT INSTALL command all replaced files will be saved as part of that operation. There is no need to also save files as *.*_OLD: $ DEFINE/JOB ARCHIVE_OLD NO o Add the following qualifiers to the PRODUCT INSTALL command and add that command to the DCL procedure. /PROD=DEC/BASE=AXPVMS/VER=V4.0/SAVE_RECOVERY_DATA o De-assign the logical names assigned For example, a sample command file to install the VMS731_ACRTL-V0400 kit would be: $ $ DEFINE/SYS NO_ASK$BACKUP TRUE $ DEFINE/SYS NO_ASK$REBOOT TRUE $ DEFINE/JOB ARCHIVE_OLD NO $! $ PROD INSTALL VMS731_ACRTL/PRODUCER=DEC/BASE=AXPVMS- /VER=V4.0/SAVE_RECOVERY_DATA Page 21 $! $ DEASSIGN/SYS NO_ASK$BACKUP $ DEASSIGN/SYS NO_ASK$REBOOT $! $ exit 9 COPYRIGHT AND DISCLAIMER: (C) Copyright 2005 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP and/or its subsidiaries required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. Neither HP nor any of its subsidiaries shall be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for HP products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY THIS PATCH IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED TO THE EXTENT PERMITTED BY APPLICABLE LAW. IN NO EVENT WILL HP BE LIABLE FOR ANY LOST REVENUE OR PROFIT, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, WITH RESPECT TO ANY PATCH MADE AVAILABLE HERE OR TO THE USE OF SUCH PATCH.