Jump to page titleUNITED STATES
hp.com home products and services support and drivers solutions how to buy
» contact hp

more options
hp.com home
End of Jump to page title
HP Services Software Patches
Jump to content

» software & drivers
» ask Compaq
» reference library
» forums & communities
» support tools
» warranty information
» contact support
» parts
» give us feedback

patches by topic
» OpenVMS
» Security
» Tru64 Unix
» Ultrix 32
» Windows
» Windows NT

associated links
» what's new
» contract access
» browse patch tree
» search patch tree
» join mailing list

connection tools
» nameserver lookup
» traceroute
» ping

Find Support Information and Customer Communities for Presario.
Content starts here
OpenVMS VMS73_ACRTL-V0200 Alpha V7.3 Compaq C RTL ECO Summary
TITLE: OpenVMS VMS73_ACRTL-V0200 Alpha V7.3 Compaq C RTL ECO Summary
Modification Date:  20-MAR-2002
Modification Date:  Not Applicable
Modification Type:  NEW KIT

NOTE:  An OpenVMS saveset or PCSI installation file is stored
       on the Internet in a self-expanding compressed file.
       For OpenVMS savesets, the name of the compressed saveset
       file will be kit_name.a-dcx_vaxexe for OpenVMS VAX or
       kit_name.a-dcx_axpexe for OpenVMS Alpha. Once the OpenVMS
       saveset is copied to your system, expand the compressed
       saveset by typing RUN kitname.dcx_vaxexe or kitname.dcx_alpexe.
       For PCSI files, once the PCSI file is copied to your system,
       rename the PCSI file to kitname.pcsi-dcx_axpexe, then it can
       be expanded by typing RUN kitname.pcsi-dcx_axpexe.  The resultant
       file will be the PCSI installation file which can be used to install
       the ECO.


Copyright (c) Compaq Computer Corporation 2002.  All rights reserved.

OP/SYS:     OpenVMS Alpha 


SOURCE:     Compaq Computer Corporation


     ECO Kit Name:  VMS73_ACRTL-V0200
     ECO Kits Superseded by This ECO Kit: None  
     ECO Kit Approximate Size:  14416 Blocks
     Kit Applies To:  OpenVMS Alpha V7.3
     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), or later, must be installed BEFORE
       installation of this, or any required  kit:


       In order to receive all the corrections listed in this
       kit, the following remedial kits should also be installed:



An ECO kit exists for Compaq C on OpenVMS Alpha V7.3.  This kit 
addresses the following problems: 


  o  In previous releases of C RTL, all file positions were
     calculated using 32-bit arithmetic.  This restricted certain
     file operations to file sizes less than 2GB.

     This restriction has now been removed.  File operations using
     C RTL I/O may now be performed on file sizes up to 2

     By default, applications may only use offsets expressed in 32
     bits.  The function fgetpos() now returns the correct file
     offset when the file position is beyond 2GB.

     Developers can also program their application to express file
     sizes and positions in 64-bits.

     The new 64-bit interfaces can be selected at compile time by
     defining the _LARGEFILE feature macro:

          $ CC /DEFINE=_LARGEFILE 

     When specified, a 64-bit integer is used to express the
     integral type off_t.

     Support has been added for compiling applications to use file
     sizes and offsets that are 2 gigabytes or larger.  This is
     accomplished by allowing file offsets of 64-bit integers.  Two
     new functions have been added:

           -  fseeko

           -  ftello

     These are identical to fseek and ftell , but they accept or
     return values of type off_t , which allows for a 64-bit
     variant of off_t to be used.

     Modifications to accommodate a 64-bit file offset have been
     made to the following existing C RTL functions:

           -  fstat

           -  ftruncate

           -  ftw

           -  lseek

           -  mmap

           -  stat

           -  truncate

     Note that ECO kits released in August 2000 and later for both
     VAX and Alpha had a problem with stream file larger than 2GB.
     Attempts to position at the beginning of file using rewind(),
     lseek() or fseek() may fail and leave the file position at
     end-of-file.  In V7.3, this can cause an ACCVIO.  This is also

  o  Support for the Chinese GB18030 character set was added to the
     C Run-Time for the VMSI18N Internationalization kit which also
     supports GB18030.

     This is one of two kits required for GB18030 support, the
     other is ALPVMSI18N01_073 on OpenVMS Alpha V7.3.

     This C Run-Time kit must be installed before the VMSI18N kit.

  o  The function strftime() V conversion specifier, did not return
     the correct number of weeks in the year for some boundary
     dates at the end of December or the beginning of January.

       o  Function strftime() reported either week 52 or 53 for last
          week of December.  It should report "1" for December dates
          which are in the same week as January 1st of the next
          year, when the week that contains Jan 1 has four or more
          days in the next year.

       o  Function strftime() always reported week 53 when early
          January dates were not in week 1, even if the last week in
          December was actually week 52.  They should be reported as
          week 52.

  o  Threaded C applications can hang, when doing operations which
     result in file I/O.

     The frequency of the hang varies with the timing of statements
     in the user's program.  Changing the program can eliminate the
     hang, especially adding extra I/O function calls.

  o  Function ecvt() (convert to string) had performance problems
     due to its use of thread-specific data.  The function called
     LIB$AST_IN_PROG() protects the thread-specific data against
     corruption by an interrupting AST.  LIB$AST_IN_PROG()
     introduces a high overhead resulting in poor performance.

     Function ecvt() was not intended to be AST-safe.  The handling
     of thread-specific data was revised in C RTL for OpenVMS
     V7.1-1.  This introduced the test for LIB$AST_IN_PROG() and
     the resulting overhead.

     The default is now thread-safe but not AST-safe.  This greatly
     improves performance.

     The AST-safe mode can be restored by enabling the feature


  o  A C application can become noticeably slower after adding
     calls to C Run-Time function times() to get performance data.

     The times() function used an asynchronous system call $GETJPI
     which includes significant overhead.

     Function times() has been changed to take advantage of changes
     in OpenVMS which now make the call synchronous which
     significantly reduces overhead.

  o  Function alarm() did not correctly recognize an unexpired
     timer and did not always return the correct time remaining.

     Function alarm() supports a single timer.  When another
     request to alarm() is issued, any pending request should be
     canceled, a new alarm scheduled and the time remaining on the
     original timer returned.

     Function alarm() was changed to:

       o  Use static variable for storing scheduled alarm.

       o  If the unexpired time is less than zero then report zero.

       o  If the unexpired time is greater than zero then return a
          minimum of 1.

  o  When called from a higher access mode, function fopen() can
     fail with a Bad Address error.

  o  Child processes did not inherit file open context "ctx=eol"
     when specified in the parent process.

     The child process inherits the file open contexts of the
     parent.  It does this by interpreting the context and
     generating an open request with the reconstituted optional
     arguments.  The algorithm for building the open request was
     not updated accordingly, and so this option was ignored.

     This has been fixed.

  o  C programs cannot create files with special characters such as
     '#' in UNIX mode.

     The CRTL requires a new feature logical DECC$EFS_CHARSET to be
     defined with the value ENABLE to use EFS extended characters.
     Many existing applications make assumptions about file names
     based on the presence of certain characters.  This is
     necessary because non-standard and undocumented C RTL
     extensions do not work when EFS extended character set support
     is enabled.

     The existing feature logical DECC$FILENAME_UNIX_ONLY specifies
     filename interpretation.  Two new feature logical have been
     created to enable some of these features independent of
     whether OpenVMS names are accepted.

       *  DECC$FILENAME_UNIX_ONLY - Always interpret names as UNIX

          Never interpret a name as a OpenVMS format name.  This is
          the primary behavior when DECC$FILENAME_UNIX_ONLY is set
          to ENABLE.

       *  DECC$FILENAME_UNIX_NO_VERSION - Ignore OpenVMS generation
          numbers and never treat the last element of a UNIX name as
          a generation number.

          This behavior can now be selected independently by
          enabling feature logical DECC$FILENAME_UNIX_NO_VERSION.

       *  When not otherwise specified, always report file names in
          UNIX style.

          This behavior can now be selected independently by
          enabling feature logical DECC$FILENAME_UNIX_REPORT.

     The implementation supports conversion from OpenVMS to UNIX
     needed for readdir(), ftw(), getname(), fgetname(), and
     getcwd(), etc.

  o  Function fstat() is not reporting permissions for files of
     type S_IFCHR and reports that owner is owner of current

     Function fstat() leaves the XABITM block for
     XAB$_UCHAR_DIRECTORY linked to the FAB if $DISPLAY fails.

     This also affects stat().

  o  Function setvbuf() restricted maximun buffer size for stream
     files to 32767 instead of 65535.

     When setvbuf() is used on a file not opened by RMS, such as a
     socket, the application may ACCVIO.

  o  Applications testing the return status of pclose() in OpenVMS
     mode cannot detect warnings.

     To check the OpenVMS status, compile with the _VMS_WAIT macro
     defined.  This will enable OpenVMS Warning, Failure and
     Success conditions.

        $ cc/define=_VMS_WAIT 

     This is similar to function waitpid(), where _VMS_WAIT is

  o  C programs calling sockets were slow because of how the CRTL
     was resolving entries for socket functions in TCP/IP shared

  o  Extraneous thousands separator displayed for negative values
     when using locale support with printf().

     For example, "-,999,999.00" instead of "-999,999.00".

  o  Functions remove() and unlink() cannot delete files that are
     open.  This is expected to work, and has been fixed.

  o  The C RTL was unconditionally converting the values for PATH
     and HOME to lowercase.

     C RTL preserves case in command line arguments when
     DECC$ARGV_PARSE_STYLE is enabled and "SET
     PROC/PARSE_STYLE=EXTENDED" is in effect.

     It is appropriate that when command line arguments have case
     preserved that the environment variables HOME and PATH be
     treated likewise.

  o  This was fixed.

  o  Function access() is not testing whether the device is
     software write-locked when a user requests write access.

     If device is write-locked, errno is set to EROFS and failure
     is now returned.

  o   -  tempnam() is required by the standard to offer at least
         10,000 unique names.  CRTL currently allows 156.

      -  access() is called to determine if a file to be created
         exists.  For tempnam() the name is always in
         OpenVMS-style.  When OpenVMS style names are disabled,
         access() will always fail indicating that there is no
         matching file.

      -  tmpnam() reports the new name in a static buffer, instead
         of a thread-specific buffer.

      -  When tempnam() is called repeatedly, no attempt is made to
         remember the last generated name.  If a file is created
         for each call, the program will get slower as it tests for
         the existence for each created file.

  o  If the top level directory on a device contains file names
     which collate before 000000.DIR, ftw() and readdir do not
     detect that 000000.DIR is a special directory and will
     recursively search it.

     000000.DIR is now recognized as the top level directory and
     treated appropriately.

  o  Trying to rename() file xx.yy to zz gets filename zz.yy.

     Trying to rename() file xx.yy to .zz gets filename xx.zz.

     This problem has been fixed, but requires a C RTL feature
     logical set.  The user will get zz or .zz, as they specified.

     For compatibility with existing programs the new behavior must
     be enabled using a feature logical name:


     If DECC$RENAME_NO_INHERIT is ENABLED, the rename function
     tries to emulate UNIX.

       -  There is some validation of old and new names to determine
          if they are directories and ensure that a directory name
          will be valid after the rename.

       -  The effective new name does not inherit any elements from
          the old name.

       -  rename is performed using RMS function SYS$RENAME.

     This mode is designed for UNIX style names.  Validation is
     less complete for OpenVMS style names.

     If feature DECC$RENAME_NO_INHERIT is DISABLED, the rename
     function follows OpenVMS renaming policy.  Apart from
     converting UNIX names to OpenVMS format, in this mode the
     underlying LIBRTL function LIB$RENAME_FILE performs most of
     the validation.

  o  A call to function "access(path, W_OK)" will fail if the
     file/directory does not have delete access enabled.

     Write access to a directory is commonly tested to see if a
     file can be created in the directory.  Directories on OpenVMS
     are not typically created with delete access.  Change access()
     to allow access with write access.

  o  Function getenv() call could corrupt the stack and cause an
     ACCVIO in a multi-threading application.  This has been fixed.

  o  Function getch() will ACCVIO for termination sequences longer
     than 8 bytes.  This has been fixed.


Because the images in this kit will not take effect until the
system is rebooted, you must reboot the system after installing
this kit.

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.


Install this kit with the POLYCENTER Software Installation Utility
by logging into the SYSTEM account, and typing the following at the
DCL prompt:


The kit location may be a tape drive, CD, or a disk directory that
contains the kit.  If /SOURCE is not specified, the utility
searches in the location defined by the logical name PCSI$SOURCE.
If PCSI$SOURCE is not defined, and the /SOURCE qualifier is not
specified, the POLYCENTER Software Installation utility searches
the current default directory.



     During installation you may see the following message:

     %INSTALL-E-NODELSHRADR, unable to delete image with shareable 
     address data
     -INSTALL-I-PLSREBOOT, please reboot to install a new version of 
     this image

     This is not  a  cause  for  concern.   It  simply  means  that
     DECC$SHR.EXE  was  installed as a resident image, which is the
     standard configuration for OpenVMS  Alpha  systems.   The  new
     image will not take effect until the system is rebooted.

  o  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 definitions and commands:



       -  Add  the  following  qualifiers  to  the  PRODUCT  INSTALL
          command and add that command to the DCL procedure.


       -  De-assign the logicals assigned

     For  example,  a  sample   command   file   to   install   the
     VMS73_ACRTL-V0200 kit would be:

          $ exit

All trademarks are the property of their respective owners.
All trademarks are the property of their respective owners.
Files on this server are as follows:
privacy statement using this site means you accept its terms