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 - alpacrt10_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 Alpha

COMPONENTS:  DEC C RTL - DECC$SHR.EXE
                         STARLET.OLB (updated with CRTL.OBJ and CRTLMSGDEF.OBJ)

SOURCE:      Digital Equipment Corporation

ECO INFORMATION:

     ECO Kit Name:  ALPACRT10_061
     ECO Kits Superseded by This ECO Kit:  ALPACRT09_061
                                           ALPACRT08_061                      
                                           ALPACRT07_061                      
                                           ALPACRT06_061 (Never Released)     
                                           ALPACRT05_061                      
                                           AXPACRT04_061 (AXPACRT)            
                                           AXPACRT03_061                      
                                           AXPACRT02_061                      
                                           AXPACRT01_061 (CSCPAT_2066)

     ECO Kit Approximate Size:  8275 Blocks
                    Saveset A - 8226 Blocks

     Kit Applies To:  OpenVMS Alpha V6.1, V6.1-1H1, V6.1-1H2
     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 the DEC C RTL on OpenVMS Alpha V6.1 through             
V6.1-1H2.  This kit addresses the following problems:


PROBLEMS ADDRESSED IN ALPACRT10_061 KIT:

  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,  so           
     that   if  the  application  calls  this  function  with  extra           
     parameters then 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 ALPACRT09_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 ALPACRT08_061 KIT:

  o  The exec functions which are passed  argument  and  environment    
     vectors  no  longer  produce incorrect values for arguments and    
     environment variables which are between 127 and 256 bytes long.    
                                                                    
  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 ALPACRT07_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 ALPACRT06_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 ALPACRT05_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 Alpha V6.2.  It  worked  under      
     OpenVMS Alpha V6.1.                                                  
                                                                      
  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 Alpha V6.2.  It  worked  under      
     OpenVMS Alpha V6.1.                                                  
                                                                      
  o  The function ungetc stopped working in OpenVMS  V6.2  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 both     
     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  Alpha  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 Alpha 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 Alpha V6.2  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.                                     
                                                                      
  o  The read function was not loading  characters  from  the  unget      
     buffer before reading from the disk.


PROBLEMS ADDRESSED IN AXPACRT04_061 KIT:

  o  A regression was introduced in the ECO kit AXPACRT03_061  which       
     causes certain parent/child pipe communication to hang.                 
                                                                         
  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  The functions strpbrk, strspn, and strcspn do not properly deal         
     with 8 bit characters which leads to unpredictable results.         
                                                                         
  o  The ANSI standard states in section 4.10.3.4 that  calling  the         
     function realloc with a size parameter of zero is the same as a         
     free.                                                                   


PROBLEMS ADDRESSED IN AXPACRT03_061 KIT
    
  o  A correction has been made which allows OpenVMS AXP C  programs       
     to correctly open an LRA0, a PC printer device found on certain     
     newer AXP systems.  Prior to  this  correction,  attempting  to     
     open  such  devices  would  result  in  vaxc$errno being set to     
     RMS$_IOP (operation invalid for file organization or device).   
                                                                         
  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 (NL:) 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 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.                              


PROBLEMS ADDRESSED IN AXPACRT02_061 KIT:

  o  DEC C on OpenVMS AXP V6.1 ignores the Maximum Record Size (mrs)    
     value  provided  by  the  user,  and  sets  the  mrs  to  32767    
     regardless of the mrs value specified.  For example,  with  the    
     statement:                                                         
                                                                    
         fp = fopen("test.dat","w","mrs=512");                          
                                                                    
     The mrs is still set to 32767 instead of the specified 512.        
                                                                    
  o  If the user has privileges set to be able to create SUPER  mode    
     logicals, then the chdir request will always be permanent.         
                                                                    
  o  A program calls fclose(fp) to close the  disk  file  associated    
     with  the "FILE *" fp, but the disk is full and 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  Wait gets confused with multiple children.  The problem  occurs    
     if  the  process that finished is not the first of the children    
     and no children have finished before the call to wait.             
                                                                    
  o  After installing the AXPACRT01_061 ECO kit, the  IEEE  problems    
     with printf have been fixed.  The IEEE problems with fcvt still    
     exist.                                                             
                                                                    
  o  The lseek function fails to write to the correct block  if  the    
     file does *not* exist and the write is 1024 bytes.                 


PROBLEMS ADDRESSED IN AXPACRT01_061 KIT:

  o  The getch curses routine does not wait  for  input,  even  when    
     compiling  using  /DEFINE=__VMS_CURSES.   This  kit  fixes  the    
     problem when the C code is compiled using /DEFINE=__VMS_CURSES      
                                                                    
  o  The access routine, when used to determine  access  of  a  file    
     through  the  use of a search list that spans multiple physical    
     devices, fails.                                                    
                                                                    
  o  This ECO fixes a problem with the strtok function, caused by an    
     internal  array  of 256 entries not initializing the last entry    
     of the array.  This array is used to determine which characters    
     are  to be treated as token separators.  Being allocated on the    
     stack, this final entry is randomly either zero or non-zero.       
                                                                    
     If this byte is non-zero and  the  user's  string  contains  an    
     X'FF' byte, the strtok function produces incorrect results.  If    
     this byte is zero or the user's  string  does  not  contain  an    
     ASCII 255 byte, then the function behaves correctly.               
                                                                    
  o  The printf family of functions, as well as the  fcvt  function,    
     did  not  correctly  output  t-float  floating point numbers in    
     programs compiled as:                                              
                                                                    
                cc/float=ieee                                           


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 ALPACRT10_061 [location of the saveset]

The saveset location may be a tape drive, or a disk directory that
contains the kit saveset.

System should be rebooted after successful installation of the kit. If  
you have other nodes in your VMScluster, they should also be rebooted 
in order to make use of the new image(s). 

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 V6.1 systems. The new image will not take effect until the 
system is rebooted.


REMOVAL INSTRUCTIONS:

Remove this kit and restore the original files and libraries by logging  
into the SYSTEM account, and typing the following at the DCL prompt:

         @SYS$UPDATE:ACRT$ECO_DROP
Files on this server are as follows:
»alpacrt10_061.README
»alpacrt10_061.CHKSUM
»alpacrt10_061.CVRLET_TXT
»alpacrt10_061.a-dcx_axpexe
privacy statement using this site means you accept its terms