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 - vaxacrt11_061
 
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.  All rights reserved.

PRODUCT:    OpenVMS VAX

COMPONENT:  DEC C RTL - DECC$SHR.EXE                                          
                        DECCCURSE.OLB                                         
                        DECCRTL.OLB                                           
                        DECCRTLG.OLB                                          
                        VAXC2DECC.EXE                                         
                        VAXCG2DECC.EXE 

SOURCE:     Digital Equipment Corporation

ECO INFORMATION:

     ECO Kit Name:  VAXACRT11_061
     ECO Kits Superseded by This ECO Kit:  VAXACRT10_061
                                           VAXACRT09_061
                                           VAXACRT08_061                      
                                           VAXACRT07_061                      
                                           VAXACRT06_061                      
                                           VAXACRT05_061                      
                                           VAXACRT03_061                      
                                           VAXACRT02_061                      
                                           VAXACRT01_061

     ECO Kit Approximate Size:  3006 Blocks
     Kit Applies To:  OpenVMS VAX V5.5-2, V5.5-2H4, V5.5-2HF, 
                                  V6.0, V6.1
     System/Cluster Reboot Necessary:  Yes
     Installation Rating:  3 - To be installed on all systems running
                                the listed versions of OpenVMS which
                                are experiencing the problems described.

     NOTE:  In order to receive the full fixes listed in this kit,
            the following remedial kits also need to be installed:

                 None


ECO KIT SUMMARY:

An ECO kit exists for DEC C RTL on OpenVMS VAX V5.5-2 through V6.1. This 
kit addresses the following problems: 

PROBLEMS ADDRESSED IN VAXACRT11_061 KIT:

  o  Unlike previous ACRTL remedial kits, the VAXACRT10_061
     remedial kit did not support V5.5-2, V5.5-2H4, V5.5-2HF 
     or V6.0.  This kit restores the prior version support.


PROBLEMS ADDRESSED IN VAXACRT10_061 KIT:

  o  A user application which linked against VAXC2DECC on an OpenVMS     
     V6.1  system  failed  when  run  on  an  OpenVMS  V6.2  system.     
     Investigation showed that the _CTYPE_ vector  had  accidentally     
     moved by 12 bytes.  It is now too late to correct this problem.     
     When attempting to use the VAXC2DECC image from  a  V6.1  as  a     
     "private"   shareable   on  the  V6.2  system,  registers  were     
     corrupted due to a mismatch  in  register  usage  by  the  V6.2     
     DECC$SHR   image.   The  register  save  masks  have  now  been     
     corrected to tolerate changes in the underlying DECC$SHR image.     

  o  The mkdir function used to perform exact placement  control  on    
     the  relative  volume set, even if the application called mkdir    
     with no extra parameters.  This problem has been corrected.  If    
     the  application  calls  this  function  with extra parameters,    
     exact placement will take place.  Otherwise  a  NULL  parameter    
     will be used.                                                      

  o  Certain devices  can  only  write  an  even  number  of  bytes.    
     Failure  to initialize the DEC C RTL internal I/O buffer caused    
     an indeterminate value to be written as the "pad byte" when  an    
     odd  number  of  bytes  was  written  to a file on this type of    
     device.                                                            
                                                                    
  o  Beginning with DEC C V5.6, the compiler looks for the  presence    
     of  a new symbol in the DECC$SHR image to determine the default    
     value of __CRTL_VER.  If this symbol is not found, the  default    
     is  set  to __VMS_VER, which defaults to the version of OpenVMS    
     on which the compilation is taking place.  With the addition of    
     this  symbol to DECC$SHR, the user will now be able to define a    
     logical pointing to DECC$SHR and safely compile on any  version    
     of OpenVMS without defining __CRTL_VER or __VMS_VER.               
                                                                    
  o  Mailbox devices are considered record oriented devices  by  the    
     DEC C Runtime Library except, those created by calling the pipe    
     function.  The impact of this is an  extra  linefeed  character    
     being  added  when the mailbox is read.  A change has been made    
     to treat mailboxes as stream oriented devices if an environment    
     variable  with  the name DECC$MAILBOX_CTX_STM is present at the    
     time the mailbox is opened.                                        
                                                                    
  o  The ANSI standard states that file  positioning  must  be  done    
     between  a read operation and a write operation for files which    
     are opened for update.  A change has  been  made  which  allows    
     serial  devices,  such  as  terminals, to implement positioning    
     functions such as rewind().  Prior to this change  attempts  to    
     position such devices would result in an error.                    


PROBLEMS ADDRESSED IN VAXACRT09_061 KIT:

  o  An ISV reports that extra  characters are seen on  occasion    
     when  using  a  subprocess  which sends data back to the parent    
     process using a mailbox.                                           
                                                                    
  o  A case was found where the  fseek  function  failed,  correctly    
     returned a -1 value, but failed to set errno properly.             


PROBLEMS ADDRESSED IN VAXACRT08_061 KIT:

  o  Extra  characters  may  be  written  to  stdout  under  the       
     conditions that the application is reading from stdin and it is       
     not a terminal.  The extra  characters  appear  random  in  the       
     output,  but in fact are written each time a new record is read       
     from stdin.                                                           
                                                                       
  o  An application which closes either stdin,  stdout,  or  stderr,       
     and  then  reopens  it  using the dup function may not have the       
     file actually  closed  if  i/o  is  not  done  using  the  file       
     descriptor.   A workaround is to force i/o on the file by using       
     a function call such as sync or flush.                                


PROBLEMS ADDRESSED IN VAXACRT07_061 KIT:

  o  The qsort function no longer access  violates  when  sorting  a    
     large  number  of  records.   This  was demonstrated by sorting    
     1966079 records whose values were 1 through 1966079.  The qsort    
     function can now sort the maximum number of records.               
                                                                    
  o  The DEC C Runtime Library had previously added the ability  for    
     users to define the logical name DECC$DEFAULT_LRL to change the    
     default longest record length value on stream files.  A problem    
     existed  such  that defining this logical name to zero resulted    
     in files which had fixed length records  instead  of  stream_lf    
     records.                                                           


PROBLEMS ADDRESSED IN VAXACRT06_061 KIT:

  o  The lseek function may  position  incorrectly  when  given  the    
     SEEK_END  option.   Typically  this  occurs  when  the internal    
     buffer is full and the last operation done to the file is flush    
     or sync.                                                           
                                                                    
  o  Since changing the default LRL value for stream files from 0 to    
     32767,  we've  been  informed  that  this change has a dramatic    
     affect on sort times and workfile size.   We  now  look  for  a    
     logical  DECC$DEFAULT_LRL  for  this  value, using 32767 if not    
     defined.                                                           


PROBLEMS ADDRESSED IN VAXACRT05_061 KIT

  o  The DEC C RTL routine chdir fails when passed a logical  search    
     list.                                                              
                                                                    
  o  In the DSNlink and DIA C database, there is an article  on  how    
     to  implement  non-blocking  pipes  under OpenVMS.  The article    
     title is:                                                          
                                                                    
     Example-C Implementing Non-Blocking Pipes Using VAX C RTL          
                                                                    
     This example fails under OpenVMS V6.2 and was introduced in  an    
     earlier ECO kit for OpenVMS V6.1.                                  
                                                                    
  o  The function ungetc stopped working in OpenVMS  V6.1  for  both    
     variable and fixed length records.                                 
                                                                    
  o  Using VAXC, the curses code fragment:                              
                                                                    
          wmove(win, 1, 2);  wprintw(win, "First line" );               
          wmove(win, 2, 2);  wprintw(win, "Second line");               
                                                                    
     produces the output:                                               
                                                                    
       C  First line                                                    
          Second Line                                                   
                                                                    
     Using the compatible VMS Curses package provided by DECC on bot    h
     VAX and Alpha, the results are:                                    
                                                                    
         First lineSecond Line                                          
                                                                    
                                                                    
  o  Issuing a call to getenv("TERM") would fail when  used  from  a    
     VT500 class terminal.                                              
                                                                    
  o  If you were to run a program containing the following  fragment    
     on  OpenVMS  V6.1,  you  would  notice  one  file  was  created    
     (test.file).  A second run would append to the  file.   If  you    
     run  it  on OpenVMS V6.2, it created a new file every time.  It    
     did not append.                                                    
                                                                    
     fp = fopen("TEST", "a", "dna=SYS$DISK:[].file");                   
                                                                    
  o  On slow systems, the return value from sleep (which is  defined    
     to  be  how  much  of  the  time  we  did not sleep) could be a    
     negative number if we slept too long.                              
                                                                    
  o  Two locks may be obtained during I/O operations.  In the fclose    
     function, lock A was obtained before lock B.  In all other CRTL    
     functions lock B was obtained before  lock  A.   Under  adverse    
     conditions, deadlock results.                                      
                                                                    
  o  When using fflush/fsynch with DEC C the "stdout" buffer is  NOT    
     flushed  at  the  time  you  call  these  RTLs.  Eventually the    
     buffers do get flushed, but with VAX C the  buffer  is  flushed    
     using the same RTLs.                                               
                                                                    
  o  Positioning to the end of file using the  fseek  function  with    
     the SEEK_SET option would no longer succeed if the user did not    
     open the file with write.                                          
                                                                    
  o  Bizarre  I/O  behavior  when   the   I/O   operation   involved    
     positioning to the last block in the file.                         
                                                                    
  o  A regression was introduced in OpenVMS V6.1 whereby  the  scanw    
     and wscanw routines always access violate.                         
                                                                    
  o  When reading  zero  length  records  from  a  Fortran  carriage    
     control  record  file.  The result is that the carriage control    
     from the previous read is used and  may  result  in  an  access    
     violation dereferencing the data in the buffer.                    
                                                                    
  o  The read function fails to load characters that have been  used    
     in calls to the ungetc function.                                   


PROBLEMS ADDRESSED IN VAXACRT02_061 KIT:

  o  The functions fprintf & printf truncate the  output  when  more    
     than one element is specified in the I/O list and the number of    
     characters  written  for  a  particular  element  exceeds  2048    
     characters.  For example:                                          
                                                                    
          char buffer[2048];  printf("++++%s", buffer);                 
                                                                    
     In this particular case the output  will  be  "++++"  plus  the    
     first 2044 characters from "buffer".  Remove the "++++" and all    
     2048 characters from "buffer" are output.  If the  "buffer"  is    
     larger  than 2048 characters, then the same is true except that    
     characters 1-2044 will be output, characters 2045-2048 will  be    
     truncated  and  then  characters  2049 -> end-of-buffer will be    
     output.                                                            
                                                                    
  o  When the following code section is used in  a  signal  handler,    
     two control-c characters abort the program.                        
                                                                    
     void signal_handler (int sig) { signal  (SIGINT,  SIG_IGN);  /*    
     Ignore control-c characters */ << do actual work >> }              


PROBLEMS ADDRESSED IN VAXACRT01_061 KIT:

  o  The functions which write data to a file corrupt  the  data  in    
     the  file  if  an "exceeded disk quota" error occurs during the    
     write operation.                                                   
                                                                    
  o  The behavior of passing negated scansets to the scanf  function    
     was  changed  such  that a "-" between two characters where the    
     first is less than the second is treated as a  range  character    
     set.                                                               
                                                                    
  o  The function getenv was enhanced to perform a case  insensitive    
     lookup if the case sensitive lookup fails.                         
                                                                    
  o  The functions which read data from files  would  fail  to  read    
     lines from an RMS "variable with fixed control" file with print    
     format carriage control attributes.  This typically occurred if    
     the lines were double spaced.                                      
                                                                    
  o  Calls to the fwrite function without a trailing n  resulted  in    
     implied  newlines  being  written  if  the following conditions    
     applied:  the file was an RMS sequential  variable  with  fixed    
     control file with print format carriage control attributes.        
                                                                    
  o  The functions close and fclose did not properly set  the  value    
     of vaxc$errno when the close operation failed.                     
                                                                    
  o  The function ftell has been corrected to take into account that    
     an  unget character may exist.  If such a character exists, the    
     file position is returned as the position of this character  in    
     the file; as if the character has not yet been read.               
                                                                    
  o  When working with  remotely  accessed  files  via  DECnet,  the    
     function  fseek  would  fail  to  position  correctly  in files    
     containing fixed length  records.   Also,  the  function  ftell    
     would report an incorrect position.                                
                                                                    
  o  A process would terminate after the second CTRL-C  (CONTROL  C)    
     regardless    of   the   application   re-establishing   SIGINT    
     processing.  The SIGINT handling now works as documented.          
                                                                    
  o  The file writing functions would lose characters  when  writing    
     to  a  file  whose  attributes include carriage return carriage    
     control and whose record size is the size  of  the  I/O  buffer    
     being  used  by the RTL.  Typically this buffer size is a power    
     of 2 greater than 8192.                                            
                                                                    
  o  In V6.1 and earlier releases, if the buffer argument to setvbuf    
     was  NULL,  then  setvbuf  would  reset  the  buffer to the one    
     allocated by the DEC C RTL  when  the  file  was  opened.   New    
     behavior  is  that if a NULL buffer argument is passed, and the    
     size argument is larger than the buffer allocated  by  the  RTL    
     when  the  file was opened, then setvbuf will allocate a buffer    
     equal to the specified size, and use that as the file buffer.      
                                                                    
  o  The  functions  stat  and  fstat  would  fail  to  return   any    
     information  about  a  remote  file that was already opened for    
     exclusive access.                                                  
                                                                    
  o  The fclose function has been corrected to  properly  deallocate    
     channels used when the user has opened the NULL device.            
                                                                    
  o  The printf function was enhanced to print "(null)" when  passed    
     a  null  pointer.   Prior to this, the DEC C RTL would issue an    
     access violation error.                                            
                                                                    
  o  The RTL now properly parses RMS options  of  the  form  "DNA=".    
     This  change was made for the benefit of applications migrating    
     from VAX C to DEC C.                                               
                                                                    
  o  The function puts now correctly can write a string whose length    
     exceeds  32,767  bytes.  Prior to this correction, the function    
     would report that it succeeded, while it actually had failed.      
                                                                    
     The function puts has been corrected such that when strings are    
     written  whose  length  exceeds  8131 bytes, typing the file no    
     longer results in the error message "SYSTEM-F-EXQUOTA,  process    
     quota exceeded".                                                   
                                                                    
  o  The function read no longer adds an extra NULL character to the    
     end  of  a record when the record attribute is Fortran Carriage    
     Control and the carriage control character is  NULL.   The  new    
     behavior is now compatible with VAX C, which simply removes the    
     carriage control character.                                        
                                                                    
  o  A problem was fixed when  reading  fixed  length  record  files    
     using  a  combination  of  'lseek'  and  'read'  which  behaved    
     correctly using the VAX C product.                                 
                                                                    
  o  The function fseek no longer fails when passed a  direction  of    
     SEEK_END  and  a  non-zero  offset  argument.   This correction    
     applies to files with fixed length records.                        
                                                                    
  o  The function read has been corrected to allow reading  the  'n'    
     character from a DECnet task to task network device.               
                                                                    
  o  The function system may now be used from a signal handler which    
     has  been  triggered  by  the  SIGALRM function.  Prior to this    
     correction, this combination of calls resulted in  the  process    
     issuing the system call hanging.                                   
                                                                    
  o  The function getname no longer access violates if called  prior    
     to a CLI being established for the process.                        
                                                                    
  o  The function pipe no longer fails if the flags O_RDWR, O_RDONLY    
     or  O_WRONLY are specified.  These flags are now ignored by the    
     function.                                                          
                                                                    
  o  For child processes in  which  the  parent  has  used  the  dup    
     function  to  redefine  file  descriptor  zero  to  be  a pipe,    
     SYS$ERROR is no longer defined to be the NLA0 device.              
                                                                    
  o  A correction has been made to the RTL such that the I/O  system    
     properly  inherits  a  record attribute of none when a previous    
     version of the file had an undefined record format.   Prior  to    
     this  correction,  the newly created file would be created with    
     carriage return record attributes.                                 
                                                                    
     The functions fopen, open, and creat  have  been  corrected  to    
     allow   the  RMS  option  "rat=none"  to  override  the  record    
     attributes of the previous version of the file.                    
                                                                    
     The function ftell now correctly reports the file position  for    
     files  which  have  an  undefined record format.  This includes    
     when the file is positioned at the end of the file.                
                                                                    
  o  Depending upon previous usages of  virtual  memory,  the  first    
     call  to  the  alarm function in an application sometimes would    
     return a non-zero value.  Also, the first call  to  the  strtok    
     function,  when  passed  NULL  as  the  first  argument,  would    
     sometimes return a non-zero value.                                 
                                                                    
  o  The RTL no longer ignores the Maximum Record Size  (mrs)  value    
     when  provided by the caller.  Prior to this correction, stream    
     files would always be created with a  maximum  record  size  of    
     32767.  For example, with the statement:                           
                                                                    
     fp = fopen("test.dat","w","mrs=512");                              
                                                                    
     the mrs value is now  correctly  set  to  512  instead  of  the    
     incorrect behavior of setting it to 32767.                         
                                                                    
  o  The function chdir has been corrected to behave as  documented.    
     A  problem was fixed where changing the directory was permanent    
     even if the parameter was passed specifying this change  to  be    
     temporary.                                                         
                                                                    
  o  If a program calls fclose(fp) to close the disk file associated    
     with  the  "FILE  *"  fp, and the disk is full, the fclose call    
     fails.  At this point the file cannot be deleted from the  disk    
     because  the  program still has it open; but the program cannot    
     close it.  As a result the file cannot be deleted for  as  long    
     as the program is running.                                         
                                                                    
  o  The lseek function no longer fails  to  write  to  the  correct    
     block if the file does not exist and the write is 1024 bytes.      
                                                                    
  o  The function strtok no longer stops on 0Xff characters found in    
     the  users buffer unless that character is explicitly passed as    
     a token separator.                                                 
                                                                    
  o  The function access no longer fails when  the  filename  passed    
     contains  a  search  list  logical name whose translation spans    
     multiple physical devices.                                         
                                                                    
  o  The DEC C RTL no longer  fails  to  close  stdin,  stdout,  and    
     stderr  if  called from a language other than C.  Prior to this    
     correction,  the  results  were   either   an   incomplete   or    
     nonexistent  file.   This problem had been corrected in OpenVMS    
     AXP V6.1 and is now corrected on both platforms.                   
                                                                    
  o  The printf function, using the %g format specifier,  no  longer    
     displays  a  colon  instead  of  a  number.   For  example, the    
     function using a format specifier "%#13.6g"  with  a  value  of    
     "314109.968750"  would  result  in  the  incorrect  display  of    
     "31410:".  It now correctly displays the value "314110".           
                                                                    
  o  The function decc$set_reentrancy now allows the first  call  to    
     lower the reentrancy level.                                        
                                                                    
  o  While the documentation had indicated that signals  were  reset    
     to SIG_DFL after they are caught, this was not true for SIGINT.    
     Prior to this correction, raising  the  signal  a  second  time    
     would  result  in  the  process  exiting  with a status message    
     instead of exiting quietly.                                        
                                                                    
  o  A successful call to  a  socket  function  would  inadvertently    
     reset the value of errno to zero, which is not permitted by the    
     ANSI standard.                                                     
                                                                    
  o  The curses function clrtobot no longer incorrectly  clears  the    
     entire  screen.   It  now correctly clears only from the cursor    
     position to the end of the screen.                                 
                                                                    
  o  The value of the environment name "TERM", obtained  by  calling    
     the getenv function, has been corrected to return values of the    
     form "vt300-80", as opposed to the incorrect value of the  form    
     "USER=ME".                                                         
                                                                    
  o  The functions stat and fstat would not work  with  disks  which    
     have allocation classes.                                           
                                                                    
  o  The RTL no longer sets errno as a side effect  of  successfully    
     creating a file.                                                   
                                                                    
  o  The functions fwrite, fputs, and puts now  properly  clear  the    
     unget character buffer.                                            
                                                                    
  o  The DEC C RTL has been corrected to properly deal with EOF when    
     reading and writing to pipes.  The correct behavior is found in    
     the POSIX  IEEE  standard  1003.1-1988  section  6.4.1.2  which    
     states  that  an  EOF is written to a pipe only when no writers    
     are left.  Before implementing the POSIX behavior,  the  DEC  C    
     RTL  was  writing an EOF to a pipe every time a writer closed a    
     pipe.                                                              
                                                                    
     The DEC C RTL no longer incorrectly writes an  EOF  to  a  pipe    
     when  the  user  issues  a  write of zero bytes.  The corrected    
     behavior now conforms to the POSIX  IEEE  standard  1003.1-1988    
     section  6.4.1.2 which states that writing zero bytes to a file    
     has no effect.                                                     
                                                                    
  o  The  close  function  has  been  corrected  to  free  the  file    
     descriptor  associated  with  a socket, even if an error occurs    
     during the operation.                                              
                                                                    
  o  The signal function has been corrected to continue ignoring the    
     SIGINT signal value, even after one has been received.             


INSTALLATION NOTES:

In order for the corrections in this kit to take effect, the system must
be rebooted.  If the system is a member of a VMScluster, the entire
cluster should be rebooted. 

NOTE: 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 VAX V5.5-2, V6.0, and V6.1 
      systems.  The new image will not take effect until the system 
      is rebooted.
Files on this server are as follows:
»vaxacrt11_061.README
»vaxacrt11_061.CHKSUM
»vaxacrt11_061.CVRLET_TXT
»vaxacrt11_061.a-dcx_vaxexe
privacy statement using this site means you accept its terms