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
» DOS
» 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
HP Services Software Patches - vaxcrtl05_071
 
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) Digital Equipment Corporation 1997, 1998.  All rights reserved.

PRODUCT:    DIGITAL OpenVMS VAX 

COMPONENT:  DEC C RTL - DECC$SHR.EXE                                         
            CRTLMSGDEF.OBJ   (Updates STARLET.OLB)                           
            CRTL.OBJ         (Updates STARLET.OLB)                           
            ACRT$ECO_DROP.COM   (If desired, this command file               
                                 may be used to remove the ECO               
                                 and restore the original                    
                                 files and libraries.)                       

SOURCE:     Digital Equipment Corporation

ECO INFORMATION:

     ECO Kit Name:  VAXCRTL05_071
     ECO Kits Superseded by This ECO Kit:  VAXACRT04_071
                                           VAXACRT03_071
                                           VAXACRT02_071
                                           VAXACRT01_071
     ECO Kit Approximate Size:  3978 Blocks
     Kit Applies To:  OpenVMS VAX V7.1
     System/Cluster Reboot Necessary:  Yes
     Rolling Reboot Supported:  Yes
     Installation Rating:  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:

         VAXY2K01_071

       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 DEC C Run-Time Library on OpenVMS VAX V7.1.
This kit addresses the following problems: 

Problems addressed in VAXCRTL05_071:

  o  The cache of values introduced in the getenv function 
     caused regressions to occur in numerous applications.  
     The default has been changed from using the cache to only 
     using the cache when a specific logical is set.  This new 
     logical, DECC$ENABLE_GETENV_CACHE, should be set prior to 
     invoking an application whose performance depends on using 
     the getenv cache. The logical DECC$DISABLE_GETENV_CACHE 
     is no longer used.

  o  Attempts to open a network mailbox fail.

  o  A correction was made to the rewind function which now  
     works correctly for a file opened using the append access mode.

  o  The fread function no longer access violates when passed
     stdin.  This error only occurred when the stdin file
     descriptor was a socket descriptor inherited from a parent 
     C process.

  o  The dup2 function would access violate when called with  
     the second file descriptor larger than 256.

  o  An ISV porting software to OpenVMS sought assistance in
     handling  parameters being passed to the image when invoked 
     as a foreign command.  A new function has been added which 
     gives an application control over how arguments to the image 
     are obtained. The new function is specified as:

       int decc$$set_get_foreign(const char* image_name,
                                 const char* image_location,
                                 const char* routine_name)

     If this function is called prior to the C main program, the
     DEC C RTL will call this routine instead of LIB$GET_FOREIGN to
     obtain the parameters.

  o  Performance improvements previously applied to only the
     sprintf function being called with a "%s" format specifier
     have now been made in all functions which use thread specific
     data.  Applications which use DECthreads and the DEC C RTL 
     may see significant performance improvements when calling
     functions which use thread specific data, such as those listed
     in section 1.7.1 of the reference manual.

  o  Data inconsistencies occurred when the sprintf function  
     was called by both an AST routine and the main program.

  o  It was reported that the functions strtol, strtoul, wcstol,
     wcstoul, and the OpenVMS Alpha specific functions strtoq and
     strtouq do not consume the trailing digits after an overflow
     condition.   This behavior is required by the ANSI standard.
     To have this correction not break existing applications, the
     correct behavior of consuming these characters must be enabled
     by defining the logical name DECC$STRTOL_ERANGE prior to the
     first call to any of these functions.


Problems addressed in VAXACRT04_071:

  o  The mmap function no longer fails if a  file  is  opened  with
     read  access  and  the  calling program has specified both the
     PROT_WRITE and MAP_PRIVATE flags.   The  correct  behavior  of
     using  the MAP_PRIVATE flag is to disregard the access mode of
     the opened file.

  o  The opendir function no longer fails if a file having the same
     name,  but  no  extension, exists in the same directory as the
     directory being opened.   Prior  to  this  change,  having  an
     extensionless  file  in  the  same  directory as the directory
     being opened would fail, even if the full name  and  extension
     was used in the opendir call.

  o  Changes made in OpenVMS V7.0 have affected the  processing  of
     files  having  "FORTRAN  Carriage  Control" record attributes.
     The following changes were introduced in OpenVMS V7.0 and  are
     repaired in this ECO kit:

        +  The DEC C RTL now prepends (instead of  appends)  linefeed
           characters  to  records  with  the  single-space  carriage
           control.  This was the behavior  prior  to  OpenVMS  V7.0.
           Prefixing  this  type of record with linefeeds is what RMS
           requires and allows overprinting to work better than  when
           the linefeed was appended.

     The only known problem  with  the  new  version  is  that  the
     carriage-control  character  is  not  generated after the last
     file record.  This problem will be fixed in the  next  release
     of CRTL."

  o  A regression was introduced in the VAXACRT03_071 ECO kit  such
     that  calls  to  the  stat function which use the "DNA=STRING"
     parameter access violate.  Calls  to  fopen  may  also  access
     violate when the fopen function calls stat to determine if the
     file exists.


Problems addressed in VAXACRT03_071:

  o  Users have requested that kill support the POSIX semantics of
     "if the process id is negative but not -1, the signal will be
     sent to all processes whose group ID is equal to the absolute
     value of the process id, and for which the process has
     permission to send a signal." This has been added with the
     restrictions that the process is executing on the same node
     and does not have a SYSTEM UIC.  The errno value is set to
     ESRCH if no processes are found which match the condition
     specified.

  o  The performance of DEC C sprintf was three times slower than
     VAX C.  An analysis of the printf engine resulted in changes
     which brings DEC C within 10% of VAX C.

  o  The functions fopen and freopen were mapping invalid access
     modes to read mode.  Invalid modes now cause errno to be set
     to EINVAL and the open call to fail.

  o  The times function was changed in OpenVMS V7.0 to return the
     number of clock ticks since boot time.  Performing year 2000
     testing by setting the system time forward causes this return
     value to overflow.  The times function has been changed to
     return the number of clock ticks since login time, which is
     less likely to overflow.

  o  The lseek function may position incorrectly with repeated
     calls to seek in a file containing fixed length records of 
     odd length.  This problem does not occur with even length 
     or variable length records.


  o  Mailbox devices are record-oriented devices, except when
     created by the pipe function where they are opened as stream
     devices.  Applications which use mailboxes can now force the
     library to treat all mailboxes as stream devices by creating
     an environment variable named DECC$MAILBOX_CTX_STM.

  o  The runtime library has been corrected to treat UNIX directory
     specifications identically in each of the routines which
     accept a directory specification as a parameter.  These
     runtime library functions are access, opendir, mkdir, and
     rmdir.  Prior to this change, one could call opendir with
     "/dev/dir", but was forced to append ".dir" to this when
     calling the access function.

  o  This ECO kit includes major performance improvements when
     using time-related functions along with Universal Coordinated
     Time.

     A cache of values has been added to the getenv function to
     avoid the library making repeated calls to translate a logical
     name, or to obtain a symbol value for environment variables
     which are not set.  If your application makes direct calls to
     set logical names, this caching can be disabled by defining
     DECC$DISABLE_GETENV_CACHE prior to calling any runtime library
     functions.

  o  The ANSI standard states that streams opened in update mode
     may read and write to the stream.  It further states that
     reads must be followed by file positioning prior to writing 
     to the stream.  The problem corrected was that positioning
     functions would fail when the file was a terminal.  Applications  
     may now position such streams back to the beginning using either 
     rewind or seek.

  o  It was reported that opendir overflowed the stack when running
     in a threaded application.  While correcting this problem, the
     opendir successful return value was changed from one to zero
     to align with with the X/Open Specifications.

  o  A problem introduced in OpenVMS V7.1 causes the first record
     of a file to be overwritten when the file is opened in append
     mode.  The correct behavior is that all write operations are
     done at the end of the file.

  o  Porting code to OpenVMS is hampered by the difference between
     command procedures and executable images and the mechanisms
     necessary to invoke them.  When passed the string "TEST",
     the exec functions now search for "TEST.", "TEST.EXE", and
     "TEST.COM".  If found, it is executed as either an image or 
     a command procedure, depending on information in the file
     header.

  o  Several new universals have been added to the DECC$SHR image
     shipped with this ECO kit.  The presence of these universals
     may affect application developers who compile using this
     image.  If a developer begins to get errors of the form

          %LINK-W-MULDEF, symbol DECC$XXX multiply defined
          in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1

     while linking the application, the compile command should be
     modified to include "/PREFIX=EXCEPT=XXX".  This instructs the
     compiler to exclude this function when doing name prefixing,
     which is equivalent to the behavior prior to this ECO kit.

  o  The printf function was enhanced to print "(null)" when passed
     a null pointer to be used with the "%S" format specifier.
     Prior to this, the DEC C RTL would issue an access violation
     error.

  o  Several functions were found to not accept the angle bracket
     form of directory specifications.  These functions include
     decc$translate_vms and stat, which now accept either square
     brackets or angle brackets in the directory portion of file
     specifications.

  o  The exec functions use a mailbox to coordinate open file
     information between the parent and child processes.  A user
     reported their system hung after 1000 successful invocations
     of the same child process.  This hang was caused by the parent
     process failing to release an exclusive mode lock being used
     to coordinate access to the mailbox.  The hang would occur
     when a mailbox was assigned to the parent process for a second
     time.

  o  A user reports calling ioctl sets errno to ENOSYS (Function
     not implemented).  Beginning with OpenVMS V7.0, the library
     looks for support in the underlying TCPIP stack and sets this
     error if the support is not found.  The function has been
     enhanced to execute UCX$EXAMPLES:UCX$IOCTL_ROUTINES under
     these conditions.

  o  The decc$to_vms function has been enhanced to recognize names
     found on other systems, converting "/dev/null" to "NLA0:",
     "/tmp" to "SYS$SCRATCH:", and "/bin" to "SYS$SYSTEM:".

  o  The getpwnam function now uppercases the username parameter if
     it is not found in its original form.  Prior to this change,
     the function would fail.


Problems addressed in VAXACRT02_071:

  o  Those functions, such as printf,  which  have  thread  specific
     data  incorrectly  use  the  threads  interface to release that
     memory when a thread is being destroyed.  The  result  is  that
     all thread specific memory is lost.

  o  The read, fread, write, and fwrite  DEC  C  RTL  functions  now
     return  unsuccessful  status with errno set to EINVAL if one of
     the arguments of size_t type or total number  of  bytes  to  be
     transmitted is not in the range 0 to INT_MAX.  The total number
     of bytes is the product of the  size_of_item  and  number_items
     arguments for fread and fwrite functions.  The value of INT_MAX
     is defined in the  header file.

  o  The interval timer function, setitimer, fails to  reset  itself
     when  used  in  a  multithreaded  application.  The result is a
     single firing of the timer as opposed to repeated firing of the
     timer at fixed intervals.

  o  A change made in  OpenVMS  V7.1  and  remedial  kits  to  other
     versions  cause calls to the mktemp function using templates of
     the form "dumpXXXXXX.txt" to no longer substitute  the  pattern
     with  the  process id.  While a change is necessary to prohibit
     substituting the  directory  portion  in  a  template  such  as
     "[XX]dumpXXXXXX",  the  change  that was made was overly harsh,
     forcing all substitution to the end of the pattern.

  o  The strstr function accesses memory  beyond  the  ends  of  the
     strings   passed.    In  cases  where  the  next  page  is  not
     accessible, the result is an access violation.  The problem was
     reported  against  the  ADA  compiler,  which  uses  the strstr
     function in this way.

  o  Although files in  general  are  correctly  inherited  after  a
     fork/exec  function call, files which are opened in any sort of
     sharing mode are not.

  o  The ECO kits ALPACRT01_071 and VAXACRT01_071  made  changes  to
     the  return  value of the puts and fputs routines.  While these
     changes were in line with the documentation, which states  that
     they   return   non-negative   numbers   on  success,  specific
     applications were coded to expect zero as success.  Since  this
     zero return value was documented with the VAXC product, we have
     restored the original behavior.

  o  When accessing files in  stream  mode,  closing  the  file  may
     result  in an extra byte being written to the file.  While this
     byte is not seen using the type command, it may  be  seen  when
     using the dump utility.


Problems addressed in VAXACRT01_071:

  o  The stat function now uses a thread specific buffer to store
     data.  Prior to this correction, stat called from two
     separate threads would interfere with one another.

  o  An ISV reports that extra  characters are seen on occasion
     when using a subprocess that sends data back to the parent
     process using a mailbox.

  o  A case was found where the fseek function fails.  It
     correctly returns a -1 value, but fails to set errno
     properly.

  o  One of the arguments to the decc$to_vms function is
     "allow_wild" which is documented to accept the values 
     zero and one.  If wildcards are used in the file 
     specification, they are either rejected or expanded into  
     the resultant file specifications.  Passing a value of  
     -1 for the allow_wild parameter now returns the file 
     specifications with the wildcards intact, but after 
     having prepared to the point of doing a sys$search.

  o  Unlike Digital UNIX, the fsync(socket_id) call results in 
     an access violation instead of returning an EINVAL status.

  o  Opening and closing sockets does not properly release mutexes.
     This problem which was introduced in OpenVMS V7.0 eventually
     causes the mutex resources to be exhausted.

  o  Applications which call opendir and readdir recursively to traverse
     subdirectories may end up in an infinite loop when reading the
     directory that includes returning [000000]000000.DIR.  The readdir 
     function no longer returns an entry which is equivalent to the 
     directory being read.

  o  OpenVMS V7.1 changed the behavior of the readdir function so
     that it no longer retains the ".dir" extension when returning
     a directory using the UNIX file syntax.  Applications which
     rely on this extension can now define a DECC$READDIR_KEEPDOTDIR 
     logical to restore this behavior.

  o  Beginning with OpenVMS V7.1, the DEC C Runtime Library does
     not read the first record while opening the file if such
     preloading will cause RMS to lock the record.  Several users
     have reported that images which used to work fine now fail.
     The record preloading code has been modified to take these 
     user programs into account.


INSTALLATION NOTES:

The images in this kit will not take effect until the system is
rebooted.  If there are other nodes in the VMScluster, 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.

NOTE:  During installation the following message may be seen:

       %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 VAX V7.1 systems.  The new
Files on this server are as follows:
Files on this server are as follows:
»vaxcrtl05_071.README
»vaxcrtl05_071.CHKSUM
»vaxcrtl05_071.CVRLET_TXT
»vaxcrtl05_071.a-dcx_vaxexe
privacy statement using this site means you accept its terms