OpenVMS VAXLIBR01_072 OpenVMS VAX V7.2 LIBRTL ECO Summary
TITLE: OpenVMS VAXLIBR01_072 OpenVMS VAX V7.2 LIBRTL ECO Summary
Modification Date: 03-NOV-1999
Modification Type: New Kit
NOTE: An OpenVMS saveset or PCSI installation file is stored
on the Internet in a self-expanding compressed file.
The name of the compressed file will be kit_name-dcx_vaxexe
for OpenVMS VAX or kit_name-dcx_axpexe for OpenVMS Alpha.
Once the file is copied to your system, it can be expanded
by typing RUN compressed_file. The resultant file will
be the OpenVMS saveset or PCSI installation file which
can be used to install the ECO.
Copyright (c) Compaq Computer Corporation 1999. All rights reserved.
OP/SYS: OpenVMS VAX
COMPONENT: LIBRTL
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: VAXLIBR01_072
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 1116 Blocks
Saveset A - 1116 Blocks
Kit Applies To: OpenVMS VAX V7.2
System/Cluster Reboot Necessary: Yes
Rolling Re-boot Supported: Yes
Installation Rating: INSTALL_3
3 - To be installed on all systems running
the listed versions of OpenVMS which
are experiencing the problems described.}
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
None
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for OpenVMS VAX V7.2. This kit addresses the following
problems:
PROBLEMS ADDRESSED IN VAXLIBR01_072 KIT
o C compiler generates incorrectly optimized code
The source for LIB$VM_MALLOC (LIBMALLOC.C) is compiled with
the DEC C V5.2-003 compiler. This compiler can generate
incorrectly optimized code for a _REMQHI builtin.
Since incorrectly optimized code was generated for the _REMQHI
builtin, LIB$VM_MALLOC used an incorrect address for a memory
block. This problem in turn, caused LIB$VM_MALLOC to loop
indefinitely trying find a particular memory block.
The LIBRTL routine LIB$VM_MALLOC is used by the DEC C RTL
routine "malloc" to allocate memory. LIB$VM_MALLOC uses a
series of queues to manage blocks of memory of various sizes.
When memory is requested and a block of the required size is
not immediately available, LIB$VM_MALLOC may try to expand the
P0 region using $EXPREG. If this attempt fails, LIB$VM_MALLOC
will try to break up larger blocks of free memory, then merge
smaller blocks. This problem occurs when trying to merge
smaller blocks and LIB$VM_MALLOC loops indefinitely searching
for a block.
A workaround involved declaring the affected pointer as
"volatile". This caused the compiler to generate less
optimized, but correct code.
INSTALLATION NOTES:
Install this kit with the VMSINSTAL utility by logging into the
SYSTEM account, and typing the following at the DCL prompt:
@SYS$UPDATE:VMSINSTAL VAXLIBR01_072 [location of the saveset]
The saveset location may be a tape drive, CD, or a disk directory
that contains the kit saveset.
The images in this kit will not take effect until the system is
rebooted.
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.
All trademarks are the property of their respective owners.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
vaxlibr01_072.README
vaxlibr01_072.CHKSUM
vaxlibr01_072.CVRLET_TXT
vaxlibr01_072.a-dcx_vaxexe
vaxlibr01_072.CVRLET_TXT
|