Australia - Updated: 24-SEP-2003
hp.com home products and services support and drivers solutions how to buy
» contact hp
hp.com home hp OpenVMS ECOs

IMPORTANT NOTICE

The online distribution of OpenVMS and related product patches is being migrated to the HP ITRC (Information Technology Resource Center) patch distribution site. The new ITRC patch server will allow OpenVMS customers to take advantage of many enhanced features for patch searching and distribution.

Beginning August 1, 2003, OpenVMS and related Layered Product, publicly available patches will be available from the HP ITRC web site at

http://itrc.hp.com/service/patch/mainPage.do

The same patches will still be available from the existing patch server in Colorado Springs (http://www.support.compaq.com/patches/) through the end of October 2003, to give customers sufficient time to update their bookmarks and make the transition to the HP ITRC web site.

ECO kits will also be available by raw FTP from (ftp://ftp.itrc.hp.com/).

PLEASE UPDATE YOUR BOOKMARKS AND REGISTER ON THE NEW SITE NOW

Note: if you're having trouble connecting to the ITRC site, please delete any cookies for "itrc.hp.com" from your browser and try again. Report any difficulties with or suggestions to MrVMS

» Sydney CSC home page

Navigation
» ECOinfo main index
» Search ECOs
» Search FTP site
» Browse FTP site

ECO Indexes
» Chronological Index
» Indexed by Version
» Indexed by Rating
» Alpha Indexed by Name
» VAX Indexed by Name
» On Hold List

Associated Links
» OpenVMS Home Page
» OpenVMS News
» DIA/WIS Web Service

Feedback
» mail to CSC
.
Sydney Customer Support Centre OpenVMS ECO information
    Updated: 24-SEP-2003 (Use your browsers' Reload button to ensure you're viewing the most recent version)

ALPACRT10_061 Alpha V6.1 DEC C RTL ECO Summary

To obtain this kit please call the Customer Support Centre or use the FTP site

Search for this ECO kit and dependencies
Search the Compaq FTP web site this kit (exact match)
Search the Compaq FTP web site this or related ECOs

    
    
    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 <lf> 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 <lf> 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
    
    
    RELATED ARTICLES:
    
    Detailed articles describing the problems listed above may exist in the
    OPENVMS database.  To view these articles, open the appropriate product
    database and perform a query using either of the following search
    strings: 'ALPACRT10_061' or 'ALPACRT'.
    
    
    ECO KIT ORDERING INSTRUCTIONS:
    
    If after an evaluation you wish to obtain this kit, request it
    electronically using the appropriate Advanced Electronic Services
    (AES) Service Tool.  If you are not familiar with how to request
    kits electronically, open the DIA, WIS or DSNLINK database and
    review the article entitled:
    
         [AES] How To Electronically Request ECO Kits Using Service Tools
    
    
    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
      
      ==========================================================================
      |                     Table of Kit Image Information                     |
      +----------------------------+----------+-----------------+--------------+
      |                            | Overall  | Image File      | Image Link   |
      | Image Name                 | Checksum | Identification  | Date/Time    |
      +----------------------------+----------+-----------------+--------------+
      | DECC$SHR.EXE               | 83AFE8EF | V6.1-010        | 25-JUN-1997  |
      |                                       |                 | 16:37:00.10  |
      +----------------------------+----------+-----------------+--------------+
    
privacy statement using this site means you accept its terms feedback to the webmaster
VMS rules VMS rocks OpenVMS rules OpenVMS rocks