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)

VAXACRT12_062 VAX V6.2 DEC C RTL ECO Summary [ON HOLD]

Kit is ON HOLD

Alternate kit is VAXCRTL11_062

Note we do not expect further updates

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) Compaq Computer Corporation 1996, 1999.  All rights reserved.
    
              ********************  ON HOLD  ********************
              *                                                 *
              *  OpenVMS Engineering is currently researching   *
              *  a problem with this ECO and requested that it  *
              *  be placed on hold.                             *
              *                                                 *
              *  This kit will never be taken off hold.         *
              *  Please refer to VAXCRTL11_062.                 *
              *                                                 *
              ***************************************************
    
    Modification Date:  10-NOV-2000
    Modification Type:  Kit Placed on Hold.  Please see VAXCRTL11_062
                        for the most recent fixes for OpenVMS VAX V6.2.
    
    PRODUCT:    OpenVMS VAX
    
    COMPONENT:  DEC C RTL - DECC$SHR.EXE
                            LOCALEDEF.EXE
                            CTRL.OBJ           (Updates STARLET.OLB)
                            CRTLMSGDEF.OBJ     (Updates STARLET.OLB)
                            CRTL$ECO_DROP.COM  (Removes Kit)
    
    
    SOURCE:     Compaq Computer Corporation
    
    NOTE:  In order to maintain consistency between this series of ECO
           kits and the OpenVMS Alpha series of DEC C RTL ECO kits, the
           name of this kit is VAXACRT12_062 instead of VAXCRTL12_062.
    
    
    ECO INFORMATION:
    
         ECO Kit Name:  VAXACRT12_062
         ECO Kits Superseded by This ECO Kit:  VAXCRTL11_062
                                               VAXACRT10_062
                                               VAXACRT09_062
                                               VAXACRT08_062
                                               VAXACRT07_062
                                               VAXACRT06_062
                                               VAXACRT05_062
                                               VAXACRT04_062
                                               VAXACRT03_062
                                               VAXACRT02_062
    
         ECO Kit Approximate Size:  3186 Blocks
         Kit Applies To:  OpenVMS VAX V6.2
         System/Cluster Reboot Necessary:  Yes
         Rolling Reboot Supported: Yes
         Installation Rating:  3 - To be installed on all systems running
                                    the listed versions of OpenVMS which
                                    are experiencing the problems described.
    
         KIT DEPENDENCIES:
    
         The  following  remedial  kit(s)  must  be  installed   BEFORE
         installation of this kit:
    
           None
    
    
         In order to receive the all the  corrections  listed  in  this
         kit, the following remedial kits should also be installed:
    
           None
    
    
    ECO KIT SUMMARY:
    
    An ECO kit exists for DEC C RTL on OpenVMS VAX V6.2.  This kit addresses
    the following problems:
    
    Problems Addressed in the VAXACRT12_062 Kit:
    
      o  The getenv() function has been corrected to check for a
         Command Line Interpreter (CLI) symbol only when called
         in user access mode.  While DEC C RTL is a user-mode run
         time library, a decision was made to correct getenv() in
         order to make the library more robust.  The reason for this
         change is because calling the CLI from within exec or kernel
         mode may result in an access violation.
    
         With this fix, when called from inner access mode, the
         getenv() function will search only the C environment list
         and OpenVMS logical names.
    
         This fix does not mean however that the user-mode only
         restriction was lifted.  It is still unsupported to call
         the DEC C RTL functions, including getenv(), in any access
         mode other than in user-mode.
    
      o  The strptime() function has been modified to comply with
         X/Open CAE Specification System Interfaces and Headers
         Issue 5 (commonly known as XPG5).  In XPG5, how the
         strptime() function processes the "%y" directive was changed
         for a two-digit year within the century, if no century is
         specified.
    
         According to XPG5, for the "%y" directive, when a century is
         not otherwise specified, values in the range 69-99 refer to
         years in the twentieth century (1969 to 1999 inclusive), while
         values in the range 00-68 refer to years in the twenty-first
         century (2000 to 2068 inclusive).  Essentially, for the "%y"
         directive, strptime() became a "pivoting" function with 69
         being a pivoting year.
    
         Before this change, the strptime() function was  always
         interpreting a two-digit year with no century as a year
         within the twentieth century.
    
         With the current ECO kit, XPG5-compliant strptime() becomes
         a default strptime() function in the DEC C RTL.  However,
         for compatibility reasons, the previous "non-pivoting"
         XPG4-compliant strptime() function was retained.
    
         The "pivoting" is controlled by the DECC$XPG4_STRPTIME logical
         name.   Defining this logical name prior to invoking the
         application (any equivalence string) will cause the DEC C RTL
         to use the "non-pivoting" flavor of strptime().   Also,
         "non-pivoting" strptime() can be called directly as the
         decc$strptime_xpg4() function.
    
         While there is an easy way to disable "pivoting" by just
         defining a logical name, you should be aware that if the
         application ceases to work correctly due to the change in
         the strptime() function, it almost certainly means that
         there is a Y2K problem in the application.  Y2K-safe
         applications should not be affected by the change in strptime().
    
      o  The stat() function has been corrected to process file
         specifications such as "foo:[000000]", where foo is defined
         as a concealed device like the following:
    
              $ define/trans=(conc) foo device:[bar.]
    
         Prior to this fix, the stat() function would fail for such a
         file specification with errno set to ENOENT (No such file or
         directory).
    
      o  Both flavors of the system() function were corrected to ensure
         that the function always returns the correct status.
    
         The POSIX-compliant system() function has been corrected to
         always return a status corresponding to the signal, which
         terminated the child process if the child process was
         terminated due to receiving a signal.
    
         Prior to this fix, there was a small timing window when the
         function could return the status corresponding to the child
         process completion code, even in the case when the child
         process was terminated by a signal.
    
         The Non-POSIX system() function has been corrected to always
         return the OpenVMS completion code of the child process.
    
         Prior to this fix, there was a small timing window when the
         function could return the status from LIB$SPAWN(), instead of
         the completion code of the child process.
    
      o  The opendir() and readdir() functions have been corrected to
         process directories on a remote node specified using the
         following DECnet file specification:
    
              nodename"username password"::device:[directory]
    
         Prior to this fix, opendir() could fail with errno set to
         ENOTDIR (Not a directory).  In the case when opendir() could
         successfully open the directory, the readdir() function could
         return incorrect file names.
    
      o  The times() and clock() functions have been modified to be
         both thread-safe and AST-reentrant.
    
         Prior to this change, these functions belonged to the class of
         functions which are thread safe, but not AST-reentrant (see
         section 1.7.2 Multithread Restrictions in the DEC C RTL
         Reference Manual).
    
         The change in the reentrancy status of the times() and clock()
         functions will be reflected in the next release of the Manual.
    
      o  The stat() function no longer fails due to the failure of the
         mktime() function.
    
         It was reported that the stat() function fails for a file
         created on April 4th 1999 at 2:04 a.m.  EST, which is the
         "missing hour" in the transition from standard to daylight
         saving time in the Eastern time zone.
    
         The problem was due to the failure of the mktime() function to
         process the "missing hour" (stat() calls mktime() to fill
         st_?time members of the stat structure with the UTC time).
    
         While the mktime() function was not fixed, the stat() function
         was corrected to handle the failure of mktime() and set
         st_?time fields correctly, even if mktime() fails.
    
         Note, that, strictly speaking, "missing hour" is an invalid
         input for mktime(): there is no such time as "April 4th 1999
         2:04 a.m.", for example, in the Eastern time zone.  Given the
         possibility of calling mktime() with an invalid time, the
         stat() function probably should not have used mktime() in the
         first place or at least should have been prepared for an
         mktime() failure.
    
      o  The select() function has been corrected to return a failure
         status if either an invalid file descriptor or file descriptor
         not associated with a socket is found in one of the specified
         file descriptor sets.  In the case of an invalid file
         descriptor, the select() function sets errno to EBADF.  In
         case of a file descriptor not associated with a socket, the
         function sets errno to ENOTSOCK.
    
         Failure with errno set to EBADF is the standard requirement
         for the select() function.  Failure with errno set to ENOTSOCK
         occurs because the select() function can currently operate
         only on sockets.
    
         Prior to this fix, the function was setting errno as described
         above, but otherwise was ignoring invalid file descriptors and
         file descriptors not associated with sockets.
    
         The old behavior can be requested by defining the logical name
         DECC$SELECT_IGNORES_INVALID_FD prior to invoking the
         application (any equivalence string).
    
      o   The problem commonly known as the "Y2038 bug" has been fixed.
          The C run-time library time functions, which access the
          current time using the OpenVMS time functions, have been
          corrected to handle times after 19-Jan-2038 3:14:07.  Data
          type time_t is defined on OpenVMS as an unsigned 32-bit
          integer.   However, some of the functions which retrieve
          current time from the system and convert it to time_t format
          were using signed arithmetic.
    
          This fix affects the functions:
    
              o  decc$fix_time()
              o  time()
              o  ftime()
              o  gettimeofday()
              o  getclock()
    
         With this fix, DEC C RTL time functions will handle times
         successfully until 07-Feb-2106 06:28:15.
    
      o  The printf() family of functions have been enhanced to perform
         better when the calling application has exhausted available
         memory.
    
      o  The file access functions have been corrected to process
         file names on UNIX systems over DECnet.  The file name for
         a file on a UNIX system accessed over DECnet was being
         converted to uppercase, even when the name was enclosed in
         double quotes.  This problem was introduced on OpenVMS V7.2
         and also affects OpenVMS V7.1-2 and OpenVMS V7.2-1.  File
         names of the form node::"dir/name" are now processed correctly.
    
    
    Problems Addressed in the VAXCRTL11_062 Kit:
    
      o  Sometimes a call to sigvec function may cause an application to
         hang.   The reason for the hang is that, under some conditions,
         the sigvec function fails to release mutexes.  So, when  called
         the next time, the function is trying to acquire already locked
         mutexes.  This results in  placing  the  process  in  hibernate
         state when running in MULTITHREAD reentrancy mode.
    
      o  The printf function was enhanced to print "(null)" when  passed
         a  null  pointer  to  be  used  with the "%S" format specifier.
         Prior to this, the DEC C RTL would issue  an  access  violation
         error.
    
      o  The setlocale function was enhanced  to  detect  the  situation
         where run-time support for specified locale is not available on
         the system.  Prior to this,  the  function  would  successfully
         load  the  locale,  but a call to mbtowc function, for example,
         would result in access violation.
    
    
    Problems Addressed in the VAXACRT10_062 Kit:
    
      o  Repeatedly calling seek functions involving  files  containing
         fixed  length  records,  whose  length  is  odd, may result in
         incorrect positioning.
    
      o  Except for those created by calling the pipe function, mailbox
         devices  are considered record oriented devices .  This limits
         these solutions to those applications whose child  process  is
         also  a  C program.  The RTL now checks for the presence of an
         environment variable "DECC$MAILBOX_CTX_STM" which, if defined,
         tells the RTL not to add additional data to the mailbox data.
    
      o  The ANSI standard states that streams opened  in  update  mode
         may  read  and  written to.  It also states that reads must be
         followed by a file positioning call prior to  writing  to  the
         stream.   While  devices such as terminals do not allow random
         position, all streams now allow positioning to the  beginning,
         regardless of device type.
    
      o  The access  function  would  incorrectly  examine  the  SYSTEM
         protection  codes and use those codes in determining if access
         would be allowed.
    
    
    Problems Addressed in the VAXACRT09_062 Kit:
    
      o  Customers who installed the previous ECO kit for OpenVMS V6.2
         (VAXACRT08_062), have reported problems accessing VFC (Variable
         Fixed-length Control) files.  The symptom is incorrect data when
         reading the first record of the file.
    
      o  The printf function has been corrected to properly initialize a work
         buffer during the format string processing.  Prior to this change,
         the processing of a format specifier could result in data from the
         last specifier processed remaining in the buffer.  This problem was
         reported as fixed in the ALPACRT04_062 and VAXACRT04_062, but
         continued testing showed that the problem still exists.
    
      o  Although files in general are correctly inherited after a fork/exec
         function call, files which are opened in any sort of sharing mode
         are not.
    
         A child process created by exec* function fails to inherit the file
         opened by the parent for shared access.
    
      o  Unlike Digital UNIX, calling the fsync function with a socket
         descriptor results in an access violation.  The correct behavior is
         to set errno to EINVAL (Invalid Value) and return a failure status.
    
      o  When accessing files in stream mode, closing the file may result in
         an extra byte being written to the file.  While this byte is not
         seen using the type command, it may be seen when using the DUMP
         Utility.
    
         5.6  Control character remains disabled after image exit
    
              5.6.1  Problem Description:
    
      o  The runtime library disables control_y for a process when a call is
         made to the signal function instructing it to ignore SIGINT signals,
         but does not restore control_y state on image exit, so that after
         image rundown they remain disabled.
    
         Note that the during image rundown, the runtime library restores the
         state to that which existed when they were disabled.  Applications
         which make calls to the LIBRTL routines LIB$DIS/ENABLE_CTRL after
         calling signal may have these changes discarded on image exit.
    
    
    Problems Addressed in the VAXACRT08_062 Kit:
    
      o  An ISV (Internet Service Provider) 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.
    
      o  A user migrating to OpenVMS V6.2 is having difficulty processing
         VFC (Variable Fixed-length Control) files.  Calling the fgetc
         function results in the error RMS-W-RTB which is "record too
         large for user's buffer".  In addition, carriage control
         information in PRINT VFC files is not interpreted correctly
         resulting in superfluous or missing blank lines when the contents
         are displayed to a terminal.
    
    
    Problems Addressed in the VAXACRT07_062 Kit:
    
      o  Testing of the printf function showed that the conversion of
         "printf("%.9sn",s)" will access all 9 characters of the string even
         if the null terminator is earlier in the string.  If the terminator
         is at the end of a page and the next page is a protected page, an
         access violation will result.
    
      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 the VAXACRT06_062 Kit:
    
      o  A change occurred in how fseek works with fixed length odd byte
         record lengths.  The description of fseek in the RTL Reference
         Manual says:
    
              "The function can position fixed-length record-access file
               with no carriage control or a stream-access file on any
               byte offset, ....".
    
         Using OpenVMS V6.1, the phrase "on any byte offset", did not include
         the pad byte that RMS keeps on disk between records of odd length in
         fixed length record format sequential files.  By the time of OpenVMS
         V6.2, the phrase "on any byte offset" apparently includes that pad
         byte.
    
      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.
    
      o  A problem in the way the timer functions, such as sleep and alarm,
         was introduced into OpenVMS V6.2.  This family of functions has been
         rewritten to no longer lose Timer Queue Entries.
    
      o  The rewind function is documented to write all buffered output and
         discard all buffered input prior to rewinding the file. Under
         certain situations, the buffer was not being flushed to disk.
    
      o  In the access function, the user_group and user_member components
         are no longer truncated when they are larger than 255.  In addition,
         the system group now abides by the MAXSYSGROUP SYSGEN parameter.
    
    
    Problems Addressed in the VAXACRT05_062 Kit:
    
      o  The RAB size for the LRL (longest record length) was incorrectly set
         to -1 when the value was greater than the maximum allowed value -
         greater than 8K.  An invalid fseek was therefore performed.
    
    
    Problems Addressed in the VAXACRT04_062 Kit:
    
      o  Calls to execve with a parameter or environment list larger than 127
         bytes fails.
    
      o  Poor performance or failure when attempting to SORT a Stream_LF file
         with variable length records.
    
      o  DECC$TO_VMS doesn't recognize hyphens in VMS file names resulting in
         an aggravated difficulty to port software to VMS.
    
    
    Problems Addressed in the VAXACRT03_062 Kit:
    
      o  OpenVMS V6.2 STARLET modified two symbols (SYS_ERRLIST and SYS_NERR)
         to have DECC$ prefixes.  These symbols were not able to be accessed.
         The ability to access these symbols via external references was not
         shipped with OpenVMS V6.2 and is included here.
    
    
    Problems Addressed in the VAXACRT02_062 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  When using fgets to read a remote file using DECnet, you get
         different results than when reading an identical file locally.
    
      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:
    
              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 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  The implementation of toupper/tolower was changed to use the value
         supplied by the user to index into the table of lowercase
         characters. DEC C RTL was incorrectly using only 7 bits instead of 8.
    
      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  The symptoms for this are the following linker errors:
    
              %LINK-W-NUDFSYMS, 2 undefined symbols:
              %LINK-I-UDFSYM,         CC$RMS_XABFHC
              %LINK-I-UDFSYM,         CC$RMS_XABPRO
    
      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.
    
    
    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: 'VAXACRT12_062', 'VAXACRT' or 'VAXCRTL'.
    
    
    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:
    
    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.
    
    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 V6.2 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 (the CMKRNL privilege is needed in order to
    execute this command procedure):
    
        @SYS$UPDATE:CRTL$ECO_DROP
    
        NOTE:
    
          CRTL$ECO_DROP.COM INSTALLs the earlier version of
          DECC$SHR.EXE.  However, the earlier version will not take
          effect until the system is rebooted.  A reboot MUST be
          done as part of the removal process.  Otherwise, the system
          may be left in an inconsistant state.
    
    To remove the kit from an OpenVMS cluster node, the CRTL$ECO_DROP.COM
    file must be run and a reboot MUST be performed on any system disk upon
    which the kit was installed.
      
      ==========================================================================
      |                     Table of Kit Image Information                     |
      +----------------------------+----------+-----------------+--------------+
      |                            | Overall  | Image File      | Image Link   |
      | Image Name                 | Checksum | Identification  | Date/Time    |
      +----------------------------+----------+-----------------+--------------+
      | DECC$SHR.EXE               |%XDA751CE3| V06.0-64        |  3-AUG-1999  |
      |                                       |                 | 17:40:28.54  |
      +----------------------------+----------+-----------------+--------------+
      | LOCALEDEF.EXE              |%XB60B5EB9| V1.0            |  3-AUG-1999  |
      |                                       |                 | 17:46:13.31  |
      +----------------------------+----------+-----------------+--------------+
    All trademarks are the property of their respective owners.
    
    
    
privacy statement using this site means you accept its terms feedback to the webmaster
VMS rules VMS rocks OpenVMS rules OpenVMS rocks