[inseparable changes from match from perl-5.003_93 to perl-5.003_94]
[p5sagit/p5-mst-13.2.git] / vms / config.vms
index 6deaac7..5a362c9 100644 (file)
@@ -8,9 +8,10 @@
  * GenConfig.pl when producing Config.pm.
  *
  * config.h for VMS
+ * Version: 5.003_08
  */                 
 
-/* Configuration time: 12-Oct-1994 17:00
+/* Configuration time: 19-Nov-1996 23:34
  * Configured by: Charles Bailey  bailey@genetics.upenn.edu
  * Target system: VMS
  */
 #ifndef _config_h_
 #define _config_h_
 
+/* CAT2:
+ *     This macro catenates 2 tokens together.
+ */
+/* STRINGIFY:
+ *     This macro surrounds its token with double quotes.
+ */
+#ifdef __STDC__
+#define CAT2(a,b)a ## b
+#define CAT3(a,b,c)a ## b ## c
+#define CAT4(a,b,c,d)a ## b ## c ##d
+#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
+#define StGiFy(a) # a
+#define STRINGIFY(A)StGiFy(a)
+#define SCAT2(a,b)StGiFy(a) StGiFy(b)
+#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
+#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
+#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
+#else
+#define CAT2(a,b)a/**/b
+#define CAT3(a,b,c)a/**/b/**/c
+#define CAT4(a,b,c,d)a/**/b/**/c/**/d
+#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
+#define STRINGIFY(a)"a"
+#endif
+
+/* config-start */
+
 /* MEM_ALIGNBYTES:
  *     This symbol contains the number of bytes required to align a
  *     double. Usual values are 2, 4 and 8.
  */
 #define MEM_ALIGNBYTES 8       /**/
 
-/* BYTEORDER:
- *     This symbol hold the hexadecimal constant defined in byteorder,
- *     i.e. 0x1234 or 0x4321, etc...
+/* OSNAME:
+ *     This symbol contains the name of the operating system, as determined
+ *     by Configure.
  */
-#define BYTEORDER 0x1234       /* large digits for MSB */
+#define OSNAME "VMS"           /**/
 
 /* ARCHLIB:
  *     This variable, if defined, holds the name of the directory in
  *     same as PRIVLIB, it is not defined, since presumably the
  *     program already searches PRIVLIB.
  */
-#undef ARCHLIB         /**/
+/* ARCHLIB_EXP:
+ *     This symbol contains the ~name expanded version of ARCHLIB, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*     ==> NOTE <==
+ * This value is automatically updated by FndVers.Com
+ * when Perl is built.  Please do not change it by hand; make
+ * any changes to FndVers.Com instead.
+ */
+#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00394"  /**/
+#define ARCHLIB ARCHLIB_EXP    /*config-skip*/
 
-/* CAT2:
- *     This macro catenates 2 tokens together.
+/* ARCHNAME:
+ *     This symbol holds a string representing the architecture name.
+ *     It may be used to construct an architecture-dependant pathname
+ *     where library files may be held under a private library, for
+ *     instance.
  */
-/* STRINGIFY:
- *     This macro surrounds its token with double quotes.
+#define ARCHNAME "VMS_VAX"  /**/
+
+/* BINCOMPAT3:
+ *     This symbol, if defined, indicates that Perl 5.004 should be
+ *     binary-compatible with Perl 5.003.
  */
-#ifdef __STDC__
-#define CAT2(a,b) a##b  /* config-skip */
-#define CAT3(a,b,c) a##b##c     /* config-skip */
-#define CAT4(a,b,c,d) a##b##c##d        /* config-skip */
-#define CAT5(a,b,c,d,e) a##b##c##d##e   /* config-skip */
-#define STRINGIFY(a) #a         /* config-skip */
-#else
-#define CAT2(a,b) a/**/b        /* config-skip */
-#define CAT3(a,b,c) a/**/b/**/c         /* config-skip */
-#define CAT4(a,b,c,d) a/**/b/**/c/**/d  /* config-skip */
-#define CAT5(a,b,c,d,e) a/**/b/**/c/**/d/**/e   /* config-skip */
-#define STRINGIFY(a) "a"        /* config-skip */
-#endif
+#undef BINCOMPAT3
 
 /* CPPSTDIN:
  *     This symbol contains the first part of the string which will invoke
  */
 #undef HAS_BCMP        /**/
 
+#include <string.h> /* Check whether new DECC has #defined bcopy and bzero */
 /* HAS_BCOPY:
  *     This symbol is defined if the bcopy() routine is available to
  *     copy blocks of memory.
  */
 #undef HAS_BCOPY       /**/
+#ifdef bcopy
+#  define HAS_BCOPY            /*config-skip*/
+#endif
 
 /* HAS_BZERO:
  *     This symbol is defined if the bzero() routine is available to
  *     set a memory block to 0.
  */
 #undef HAS_BZERO       /**/
+#ifdef bzero
+#  define HAS_BZERO            /*config-skip*/
+#endif
 
 /* CASTNEGFLOAT:
  *     This symbol is defined if the C compiler can cast negative
 #define        CASTNEGFLOAT            /**/
 #define CASTFLAGS 0            /**/
 
-/* CHARSPRINTF:
- *     This symbol is defined if this system declares "char *sprintf()" in
- *     stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
- *     is up to the package author to declare sprintf correctly based on the
- *     symbol.
- */
-#undef CHARSPRINTF     /**/
-
 /* HAS_CHSIZE:
  *     This symbol, if defined, indicates that the chsize routine is available
  *     to truncate files.  You might need a -lx to get this routine.
  *     trigger the necessary tests.
  */
 #define HASCONST       /**/
-#ifndef HASCONST
-#define const
-#endif
 
 /* HAS_CRYPT:
  *     This symbol, if defined, indicates that the crypt routine is available
  *     to encrypt passwords and the like.
  */
-#undef HAS_CRYPT               /**/
+#define HAS_CRYPT              /**/
+
+/* BYTEORDER:
+ *     This symbol hold the hexadecimal constant defined in byteorder,
+ *     i.e. 0x1234 or 0x4321, etc...
+ */
+#define BYTEORDER 0x1234       /* large digits for MSB */
 
 /* CSH:
  *     This symbol, if defined, indicates that the C-shell exists.
  */
 #define HAS_FSETPOS    /**/
 
+/* HAS_GETTIMEOFDAY:
+ *     This symbol, if defined, indicates that the gettimeofday() system
+ *     call is available for a sub-second accuracy clock. Usually, the file
+ *     <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
+ *     The type "Timeval" should be used to refer to "struct timeval".    
+ */
+#undef HAS_GETTIMEOFDAY /**/
+#ifdef HAS_GETTIMEOFDAY
+#  define Timeval struct timeval /*config-skip*/
+#endif
+
 /* HAS_GETGROUPS:
  *     This symbol, if defined, indicates that the getgroups() routine is
  *     available to get the list of process groups.  If unavailable, multiple
  */
 #undef HAS_UNAME               /**/
 
-/* HAS_GETPGRP:
- *     This symbol, if defined, indicates that the getpgrp routine is
- *     available to get the current process group.
- */
-#undef HAS_GETPGRP             /**/
-
-/* HAS_GETPGRP2:
- *     This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
- *     routine is available to get the current process group.
- */
-#undef HAS_GETPGRP2            /**/
-
 /* HAS_GETPRIORITY:
  *     This symbol, if defined, indicates that the getpriority routine is
  *     available to get a process's priority.
  *     This symbol, if defined, indicates that the mbstowcs routine is
  *     available to covert a multibyte string into a wide character string.
  */
-#undef HAS_MBSTOWCS            /**/
+#ifdef __DECC
+#  define      HAS_MBSTOWCS            /*config-skip*/
+#else
+#  undef       HAS_MBSTOWCS            /*config-skip*/
+#endif
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
  *     to covert a multibyte to a wide character.
  */
-#undef HAS_MBTOWC              /**/
+#ifdef __DECC
+#  define HAS_MBTOWC           /*config-skip*/
+#else
+#  undef HAS_MBTOWC            /*config-skip*/
+#endif
 
 /* HAS_MEMCMP:
  *     This symbol, if defined, indicates that the memcmp routine is available
  */
 #define HAS_OPEN3              /**/
 
+/* HAS_POLL:
+ *     This symbol, if defined, indicates that the poll routine is
+ *     available to poll active file descriptors.
+ */
+#undef HAS_POLL                /**/
+
 /* HAS_READDIR:
  *     This symbol, if defined, indicates that the readdir routine is
  *     available to read directory entries. You may have to include
  */
 #define HAS_RMDIR              /**/
 
-/* HAS_SELECT:
- *     This symbol, if defined, indicates that the select routine is
- *     available to select active file descriptors. If the timeout field
- *     is used, <sys/time.h> may need to be included.
- */
-#undef HAS_SELECT      /**/
-
 /* HAS_SEM:
  *     This symbol, if defined, indicates that the entire sem*(2) library is
  *     supported.
  */
 #undef HAS_SETEUID             /**/
 
-/* HAS_SETLOCALE:
- *     This symbol, if defined, indicates that the setlocale routine is
- *     available to handle locale-specific ctype implementations.
- */
-#undef HAS_SETLOCALE   /**/
-
-/* HAS_SETPGID:
- *     This symbol, if defined, indicates that the setpgid routine is
- *     available to set process group ID.
- */
-#undef HAS_SETPGID     /**/
-
-/* HAS_SETPGRP2:
- *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
- *     routine is available to set the current process group.
- */
-#undef HAS_SETPGRP2            /**/
 
 /* HAS_SETPRIORITY:
  *     This symbol, if defined, indicates that the setpriority routine is
  *     but not always right so it should be emitted by the program only
  *     when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
  */
-#undef Shmat_t char *  /**/ /* config-skip */
+#undef Shmat_t         /**/ /* config-skip */
 #undef HAS_SHMAT_PROTOTYPE     /**/
 
+/* HAS_SIGACTION:
+ *     This symbol, if defined, indicates that Vr4's sigaction() routine
+ *     is available.
+ */
+#undef HAS_SIGACTION   /**/
+
 /* USE_STAT_BLOCKS:
  *     This symbol is defined if this system has a stat structure declaring
  *     st_blksize and st_blocks.
  */
 #undef USE_STAT_BLOCKS         /**/
 
-/* USE_STD_STDIO:
- *     This symbol is defined if this system has a FILE structure declaring
- *     _ptr and _cnt in stdio.h.
+/* USE_STDIO_PTR:
+ *     This symbol is defined if the _ptr and _cnt fields (or similar)
+ *     of the stdio FILE structure can be used to access the stdio buffer
+ *     for a file handle.  If this is defined, then the FILE_ptr(fp)
+ *     and FILE_cnt(fp) macros will also be defined and should be used
+ *     to access these fields.
+ */
+/* USE_STDIO_BASE:
+ *     This symbol is defined if the _base field (or similar) of the
+ *     stdio FILE structure can be used to access the stdio buffer for
+ *     a file handle.  If this is defined, then the FILE_base(fp) macro
+ *     will also be defined and should be used to access this field.
+ *     Also, the FILE_bufsiz(fp) macro will be defined and should be used
+ *     to determine the number of bytes in the buffer.  USE_STDIO_BASE
+ *     will never be defined unless USE_STDIO_PTR is.
+ */
+/* STDIO_PTR_LVALUE:
+ *     This symbol is defined if the FILE_ptr macro can be used as an
+ *     lvalue.
+ */
+/* STDIO_CNT_LVALUE:
+ *     This symbol is defined if the FILE_cnt macro can be used as an
+ *     lvalue.
+ */
+#ifdef __DECC
+#  define USE_STDIO_PTR                /*config-skip*/
+#  define USE_STDIO_BASE       /*config-skip*/
+#  define STDIO_PTR_LVALUE     /*config-skip*/
+#  define STDIO_CNT_LVALUE     /*config-skip*/
+#else
+#  undef USE_STDIO_PTR         /*config-skip*/
+#  undef USE_STDIO_BASE                /*config-skip*/
+#  undef STDIO_PTR_LVALUE      /*config-skip*/
+#  undef STDIO_CNT_LVALUE      /*config-skip*/
+#endif
+
+/* FILE_ptr:
+ *     This macro is used to access the _ptr field (or equivalent) of the
+ *     FILE structure pointed to by its argument. This macro will always be
+ *     defined if USE_STDIO_PTR is defined.
+ */
+/* FILE_cnt:
+ *     This macro is used to access the _cnt field (or equivalent) of the
+ *     FILE structure pointed to by its argument. This macro will always be
+ *     defined if USE_STDIO_PTR is defined.
  */
-#undef USE_STD_STDIO   /**/
+#ifdef USE_STDIO_PTR
+#  define FILE_ptr(fp) ((*fp)->_ptr)
+#  define FILE_cnt(fp) ((*fp)->_cnt)
+#endif
+
+/* FILE_base:
+ *     This macro is used to access the _base field (or equivalent) of the
+ *     FILE structure pointed to by its argument. This macro will always be
+ *     defined if USE_STDIO_BASE is defined.
+ */
+/* FILE_bufsiz:
+ *     This macro is used to determine the number of bytes in the I/O
+ *     buffer pointed to by _base field (or equivalent) of the FILE
+ *     structure pointed to its argument. This macro will always be defined
+ *     if USE_STDIO_BASE is defined.
+ */
+#ifdef USE_STDIO_BASE
+#  define FILE_base(fp)        ((*fp)->_base)
+#  define FILE_bufsiz(fp)      ((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)
+#endif
 
 /* USE_STRUCT_COPY:
  *     This symbol, if defined, indicates that this C compiler knows how
  */
 #define HAS_STRERROR           /**/
 #undef HAS_SYS_ERRLIST /**/
-#ifdef HAS_STRERROR
-#  define Strerror(e) strerror((e),vaxc$errno)
-#else
-#define Strerror(e) ((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e]) /**/ /* config-skip */
-#endif
+#define Strerror(e) strerror((e),vaxc$errno)
 
 /* HAS_SYMLINK:
  *     This symbol, if defined, indicates that the symlink routine is available
  */
 #define HAS_VFORK      /**/
 
+/* Signal_t:
+ *     This symbol's value is either "void" or "int", corresponding to the
+ *     appropriate return type of a signal handler.  Thus, you can declare
+ *     a signal handler using "Signal_t (*handler)()", and define the
+ *     handler using "Signal_t handler(sig)".
+ */
+#define Signal_t void  /* Signal handler's return type */
+
 /* HASVOLATILE:
  *     This symbol, if defined, indicates that this C compiler knows about
  *     the volatile declaration.
  *     This symbol, if defined, indicates that the waitpid routine is
  *     available to wait for child process.
  */
-#undef HAS_WAITPID     /**/
+#define HAS_WAITPID    /**/
 
 /* HAS_WCSTOMBS:
  *     This symbol, if defined, indicates that the wcstombs routine is
  *     available to convert wide character strings to multibyte strings.
  */
-#undef HAS_WCSTOMBS    /**/
+#ifdef __DECC
+#  define HAS_WCSTOMBS /*config-skip*/
+#else
+#  undef HAS_WCSTOMBS  /*config-skip*/
+#endif
 
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <limits.h> to get definition of symbols like WORD_BIT or
  *     LONG_MAX, i.e. machine dependant limitations.
  */
-#undef I_LIMITS                /**/
+#define I_LIMITS               /**/
 
 /* I_MEMORY:
  *     This symbol, if defined, indicates to the C program that it should
 #undef PWCHANGE        /**/
 #undef PWCLASS /**/
 #undef PWEXPIRE        /**/
-#undef PWCOMMENT       /**/
+#define PWCOMMENT      /**/
 
 /* I_STDDEF:
  *     This symbol, if defined, indicates that <stddef.h> exists and should
  */
 #undef I_SYS_IOCTL             /**/
 
-/* HAS_IOCTL:
- *     This symbol, if defined, indicates that the ioctl() routine is
- *     available to set I/O characteristics
- */
-#undef HAS_IOCTL               /**/
-
 /* I_SYS_NDIR:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/ndir.h>.
  */
 #undef I_SYS_NDIR      /**/
 
+/* I_SYS_RESOURCE:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/resource.h>.
+ */
+#undef I_SYS_RESOURCE          /**/
+
 /* I_SYS_SELECT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/select.h> in order to get definition of struct timeval.
  */
 #undef I_SYS_SELECT    /**/
 
+/* I_DBM:
+ *     This symbol, if defined, indicates that <dbm.h> exists and should
+ *     be included.
+ */
+/* I_RPCSVC_DBM:
+ *     This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
+ *     should be included.
+ */
+#undef I_DBM   /**/
+#undef I_RPCSVC_DBM    /**/
+
+/* I_SFIO:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sfio.h>.
+ */
+#undef I_SFIO          /**/
+
+/* I_SYS_STAT:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/stat.h>.
+ */
+#define        I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #undef I_SYS_TIMES             /**/
 
+/* I_SYS_TYPES:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/types.h>.
+ */
+#define        I_SYS_TYPES             /**/
+
+/* I_SYS_UN:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/un.h> to get UNIX domain socket definitions.
+ */
+#undef I_SYS_UN                /**/
+
+/* I_SYS_WAIT:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/wait.h>.
+ */
+#undef I_SYS_WAIT      /**/
+
 /* I_TERMIO:
  *     This symbol, if defined, indicates that the program should include
  *     <termio.h> rather than <sgtty.h>.  There are also differences in
  */
 #undef I_UTIME         /**/
 
-/* HAS_UTIME:
- *     This symbol, if defined, indicates that the routine utime() is
- *     available to update the access and modification times of files.
- */
-#undef HAS_UTIME               /**/
-
-/* I_STDARG:
- *     This symbol, if defined, indicates that <stdarg.h> exists and should
- *     be included.
- */
 /* I_VARARGS:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <varargs.h>.
  */
-#define I_STDARG               /**/
 #undef I_VARARGS               /**/
 
 
  */
 #undef I_VFORK /**/
 
-/* INTSIZE:
- *     This symbol contains the size of an int, so that the C preprocessor
- *     can make decisions based on it.
- */
-#define INTSIZE 4              /**/
-
-
 /* CAN_PROTOTYPE:
  *     If defined, this macro indicates that the C compiler can handle
  *     function prototypes.
  *     is defined, and 'int *' otherwise.  This is only useful if you 
  *     have select(), of course.
  */
-#define Select_fd_set_t        fd_set *        /**/
+#define Select_fd_set_t        int *   /**/
 
 /* STDCHAR:
  *     This symbol is defined to be the type of char used in stdio.h.
  */
 #define STDCHAR char   /**/
 
-/* VOIDFLAGS:
- *     This symbol indicates how much support of the void type is given by this
- *     compiler.  What various bits mean:
- *
- *         1 = supports declaration of void
- *         2 = supports arrays of pointers to functions returning void
- *         4 = supports comparisons between pointers to void functions and
- *                 addresses of void functions
- *         8 = suports declaration of generic void pointers
- *
- *     The package designer should define VOIDUSED to indicate the requirements
- *     of the package.  This can be done either by #defining VOIDUSED before
- *     including config.h, or by defining defvoidused in Myinit.U.  If the
- *     latter approach is taken, only those flags will be tested.  If the
- *     level of void support necessary is not present, defines void to int.
- */
-#ifndef VOIDUSED
-#define VOIDUSED 15
-#endif
-#define VOIDFLAGS 15
-#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
-#define void int               /* is void to be avoided? */  /* config-skip */
-#define M_VOID                 /* Xenix strikes again */     /* config-skip */
-#endif
-
-
-/* EUNICE:
- *     This symbol, if defined, indicates that the program is being compiled
- *     under the EUNICE package under VMS.  The program will need to handle
- *     things like files that don't go away the first time you unlink them,
- *     due to version numbering.  It will also need to compensate for lack
- *     of a respectable link() command.
- */
-/* VMS:
- *     This symbol, if defined, indicates that the program is running under
- *     VMS.  It is currently only set in conjunction with the EUNICE symbol.
+/* UNLINK_ALL_VERSIONS:
+ *     This symbol, if defined, indicates that the program should arrange
+ *     to remove all versions of a file if unlink() is called.
  */
-#define EUNICE         /**/
-/* This symbol is automagically defined by all VMS C compilers I've seen.
- * Just in case, however . . . */
-#ifndef VMS
-#define VMS            /**/
-#endif
+#undef UNLINK_ALL_VERSIONS             /**/
 
 /* LOC_SED:
  *     This symbol holds the complete pathname to the sed program.
  *     This symbol holds the path of the bin directory where the package will
  *     be installed. Program must be prepared to deal with ~name substitution.
  */
+/* BIN_EXP:
+ *     This symbol is the filename expanded version of the BIN symbol, for
+ *     programs that do not want to deal with that at run-time.
+ */
 #define BIN "/perl_root/000000"        /**/
+#define BIN_EXP "/perl_root/000000"    /**/
 
 /* HAS_ALARM:
  *     This symbol, if defined, indicates that the alarm routine is
  */
 #define HAS_ALARM              /**/
 
+/* HASATTRIBUTE:
+ *     This symbol indicates the C compiler can check for function attributes,
+ *     such as printf formats. This is normally only supported by GNU cc.
+ */
+#ifdef __GNUC__
+#  define HASATTRIBUTE         /*config-skip*/
+#else
+#  undef HASATTRIBUTE  /*config-skip*/
+#endif
+#ifndef HASATTRIBUTE
+#define __attribute__(_arg_)
+#endif
+
 /* CASTI32:
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
  *     This symbol, if defined, indicates that the getlogin routine is
  *     available.
  */
-#undef HAS_GETLOGIN            /**/
+#define HAS_GETLOGIN           /**/
 
 /* HAS_GETPPID:
  *     This symbol, if defined, indicates that the getppid routine is
  */
 #undef HAS_GETPPID             /**/
 
-/* HAS_GROUP:
- *     This symbol, if defined, indicates that the group routine is
- *     available.
- */
-#undef HAS_GROUP               /**/
-
-
 /* HAS_HTONL:
  *     This symbol, if defined, indicates that the htonl() routine (and
  *     friends htons() ntohl() ntohs()) are available to do network
  *     This symbol, if defined, indicates that the mblen routine is available
  *     to find the number of bytes in a multibye character.
  */
-#undef HAS_MBLEN               /**/
+#ifdef __DECC
+#  define HAS_MBLEN            /*config-skip*/
+#else
+#  undef HAS_MBLEN             /*config-skip*/
+#endif
 
 /* HAS_MKTIME:
  *     This symbol, if defined, indicates that the mktime routine is
  *     available.
  */
-#undef HAS_MKTIME              /**/
+#ifdef __DECC
+#  define HAS_MKTIME           /*config-skip*/
+#else
+#  undef HAS_MKTIME            /*config-skip*/
+#endif
 
 /* HAS_NICE:
  *     This symbol, if defined, indicates that the nice routine is
  */
 #define HAS_NICE               /**/
 
-/* HAS_PASSWD:
- *     This symbol, if defined, indicates that the passwd routine is
- *     available.
- */
-#undef HAS_PASSWD              /**/
-
 /* HAS_PAUSE:
  *     This symbol, if defined, indicates that the pause routine is
  *     available.
  *     This symbol, if defined, indicates that the strcoll routine is
  *     available to compare strings using collating information.
  */
-#undef HAS_STRCOLL     /**/
+#ifdef __DECC
+#  define HAS_STRCOLL  /*config-skip*/
+#else
+#  undef HAS_STRCOLL   /*config-skip*/
+#endif
+
+/* HAS_STRTOD:
+ *     This symbol, if defined, indicates that the strtod routine is
+ *     available to provide better numeric string conversion than atof().
+ */
+#define HAS_STRTOD     /**/
+
+/* HAS_STRTOL:
+ *     This symbol, if defined, indicates that the strtol routine is available
+ *     to provide better numeric string conversion than atoi() and friends.
+ */
+#define HAS_STRTOL     /**/
+
+/* HAS_STRTOUL:
+ *     This symbol, if defined, indicates that the strtoul routine is
+ *     available to provide conversion of strings to unsigned long.
+ */
+#define HAS_STRTOUL    /**/
 
 /* HAS_STRXFRM:
  *     This symbol, if defined, indicates that the strxfrm() routine is
  *     available to compare strings using collating information.
  */
-#undef HAS_STRXFRM     /**/
+#ifdef __DECC
+#  define HAS_STRXFRM  /*config-skip*/
+#else
+#  undef HAS_STRXFRM   /*config-skip*/
+#endif
 
 /* HAS_TCGETPGRP:
  *     This symbol, if defined, indicates that the tcgetpgrp routine is
  */
 #define HAS_UMASK              /**/
 
-/* VOIDSIG:
- *     This symbol is defined if this system declares "void (*signal(...))()" in
- *     signal.h.  The old way was to declare it as "int (*signal(...))()".  It
- *     is up to the package author to declare things correctly based on the
- *     symbol.
- */
-#define VOIDSIG        /**/
-
 /* HAS_WCTOMB:
  *     This symbol, if defined, indicates that the wctomb routine is available
  *     to covert a wide character to a multibyte.
  */
-#undef HAS_WCTOMB              /**/
+#ifdef __DECC
+#  define HAS_WCTOMB           /*config-skip*/
+#else
+#  undef HAS_WCTOMB            /*config-skip*/
+#endif
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
  *     It can be int, ushort, uid_t, etc... It may be necessary to include
  *     <sys/types.h> to get any typedef'ed information.
  */
-#define Gid_t unsigned int             /* Type for getgid(), etc... */
+#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
+#  define Gid_t gid_t          /* config-skip */
+#else
+#  define Gid_t unsigned int   /* config-skip */
+#endif
 
 /* I_DLFCN:
  *     This symbol, if defined, indicates that <dlfcn.h> exists and should
  */
 #define I_MATH         /**/
 
+/* INTSIZE:
+ *     This symbol contains the size of an int, so that the C preprocessor
+ *     can make decisions based on it.
+ */
+/* LONGSIZE:
+ *     This symbol contains the value of sizeof(long) so that the C
+ *     preprocessor can make decisions based on it.
+ */
+/* SHORTSIZE:
+ *     This symbol contains the value of sizeof(short) so that the C
+ *     preprocessor can make decisions based on it.
+ */
+#define INTSIZE 4              /**/
+#define LONGSIZE 4             /**/
+#define SHORTSIZE 2            /**/
+
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
  *     It can be int, long, off_t, etc... It may be necessary to include
  *     <sys/types.h> to get any typedef'ed information.
  */
 #define Off_t int              /* <offset> type */
+
+/* I_VALUES:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <values.h> to get definition of symbols like MINFLOAT or
+ *     MAXLONG, i.e. machine dependant limitations.  Probably, you
+ *     should use <limits.h> instead, if it is available.
+ */
+#undef I_VALUES                /**/
+
+/* Free_t:
+ *     This variable contains the return type of free().  It is usually
+ * void, but occasionally int.
+ */
 /* Malloc_t:
  *     This symbol is the type of pointer returned by malloc and realloc.
  */
 #define Malloc_t void *                        /**/
+#define Free_t void                    /**/
 
 /* MYMALLOC:
  *     This symbol, if defined, indicates that we're using our own malloc.
  */
 #undef MYMALLOC                        /**/
 
+/* SH_PATH:
+ *     This symbol contains the full pathname to the shell used on this
+ *     on this system to execute Bourne shell scripts.  Usually, this will be
+ *     /bin/sh, though it's possible that some systems will have /bin/ksh,
+ *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as D:/bin/sh.
+ */
+#define SH_PATH "MCR"  /**/
+
+/* SIG_NAME:
+ *     This symbol contains a list of signal names in order. This is intended
+ *     to be used as a static array initialization, like this:
+ *             char *sig_name[] = { SIG_NAME };
+ *     The signals in the list are separated with commas, and each signal
+ *     is surrounded by double quotes. There is no leading SIG in the signal
+ *     name, i.e. SIGQUIT is known as "QUIT". Duplicates are allowed.
+ *     The signal number for sig_name[i] is stored in sig_num[i].
+ *     The last element is 0 to terminate the list with a NULL.  This
+ *     corresponds to the 0 at the end of the sig_num list.
+ *     See SIG_NUM and SIG_MAX.
+ */
+#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
+                 "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\
+                 "ABRT","USR1","USR2",0
+
+/* SIG_NUM:
+ *     This symbol contains a list of signal number, in the same order as the
+ *     SIG_NAME list. It is suitable for static array initialization, as in:
+ *             int sig_num[] = { SIG_NUM };
+ *     The signals in the list are separated with commas, and the indices
+ *     within that list and the SIG_NAME list match, so it's easy to compute
+ *     the signal name from a number or vice versa at the price of a small
+ *     dynamic linear lookup. Duplicates are allowed, so you can't assume
+ *     sig_num[i] == i.  Instead, the signal number corresponding to
+ * sig_name[i] is sig_number[i].
+ * The last element is 0, corresponding to the 0 at the end of
+ * the sig_name list.
+ */
+#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0        /**/
+
 /* Mode_t:
  *     This symbol holds the type used to declare file modes 
  *     for systems calls.  It is usually mode_t, but may be
  */
 #define SSize_t int     /* signed count of bytes */
 
+/* VAL_O_NONBLOCK:
+ *     This symbol is to be used during open() or fcntl(F_SETFL) to turn on
+ *     non-blocking I/O for the file descriptor. Note that there is no way
+ *     back, i.e. you cannot turn it blocking again this way. If you wish to
+ *     alternatively switch between blocking and non-blocking, use the
+ *     ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
+ */
+/* VAL_EAGAIN:
+ *     This symbol holds the errno error code set by read() when no data was
+ *     present on the non-blocking file descriptor.
+ */
+/* RD_NODATA:
+ *     This symbol holds the return code from read() when no data is present
+ *     on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
+ *     not defined, then you can't distinguish between no data and EOF by
+ *     issuing a read(). You'll have to find another way to tell for sure!
+ */
+/* EOF_NONBLOCK:
+ *     This symbol, if defined, indicates to the C program that a read() on
+ *     a non-blocking file descriptor will return 0 on EOF, and not the value
+ *     held in RD_NODATA (-1 usually, in that case!).
+ */
+#undef VAL_O_NONBLOCK
+#undef VAL_EAGAIN
+#undef RD_NODATA
+#undef EOF_NONBLOCK
+
+/* OLDARCHLIB:
+ *     This variable, if defined, holds the name of the directory in
+ *     which the user has perl5.000 or perl5.001 architecture-dependent
+ *     public library files for $package.  For the most part, these
+ *     files will work with 5.002 (and later), but that is not
+ *     guaranteed.
+ */
+/* OLDARCHLIB_EXP:
+ *     This symbol contains the ~name expanded version of OLDARCHLIB, to be
+ *     used in programs that are not prepared to deal with ~ expansion at 
+ *     run-time.
+ */
+/*     ==> NOTE <==
+ * This value is automatically updated by FndVers.Com
+ * when Perl is built.  Please do not change it by hand; make
+ * any changes to FndVers.Com instead.
+ */
+#define OLDARCHLIB_EXP "/perl_root/lib/VMS_VAX"  /**/
+#define OLDARCHLIB OLDARCHLIB_EXP  /*config-skip*/
 
 /* PRIVLIB:
  *     This symbol contains the name of the private library for this package.
  *     execution path, but it should be accessible by the world.  The program
  *     should be prepared to do ~ expansion.
  */
-#define PRIVLIB "/perl_root/lib"               /**/
+/* PRIVLIB_EXP:
+ *     This symbol contains the ~name expanded version of PRIVLIB, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#define PRIVLIB_EXP "/perl_root/lib"           /**/
+#define PRIVLIB PRIVLIB_EXP  /*config-skip*/
 
-/* SCRIPTDIR:
- *     This symbol holds the name of the directory in which the user wants
- *     to put publicly executable scripts for the package in question.  It
- *     is often a directory that is mounted across diverse architectures.
- *     Programs must be prepared to deal with ~name expansion.
+/* SITELIB:
+ *     This symbol contains the name of the private library for this package.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.  The program
+ *     should be prepared to do ~ expansion.
+ *     The standard distribution will put nothing in this directory.
+ *     Individual sites may place their own extensions and modules in
+ *     this directory.
+ */
+/* SITELIB_EXP:
+ *     This symbol contains the ~name expanded version of SITELIB, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SCRIPTDIR "/perl_root/script"  /**/
+#define SITELIB_EXP    "/perl_root/lib/site_perl"      /**/
+#define SITELIB SITELIB_EXP  /*config-skip*/
 
-/* SIG_NAME:
- *     This symbol contains a list of signal names in order. This is intended
- *     to be used as a static array initialization, like this:
- *             char *sig_name[] = { SIG_NAME };
- *     The signals in the list are separated with commas, and each signal
- *     is surrounded by double quotes. There is no leading SIG in the signal
- *     name, i.e. SIGQUIT is known as "QUIT".
+/* SITEARCH:
+ *     This symbol contains the name of the private library for this package.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.  The program
+ *     should be prepared to do ~ expansion.
+ *     The standard distribution will put nothing in this directory.
+ *     Individual sites may place their own extensions and modules in
+ *     this directory.
  */
-#define SIG_NAME "HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL",\
-                 "BUS","SEGV","SYS","PIPE","ALRM","TERM"
+/* SITEARCH_EXP:
+ *     This symbol contains the ~name expanded version of SITEARCH, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*     ==> NOTE <==
+ * This value is automatically updated by FndVers.Com
+ * when Perl is built.  Please do not change it by hand; make
+ * any changes to FndVers.Com instead.
+ */
+#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_VAX"  /**/
+#define SITEARCH SITEARCH_EXP  /*config-skip*/
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     It can be int, ushort, uid_t, etc... It may be necessary to include
  *     <sys/types.h> to get any typedef'ed information.
  */
-#define Uid_t unsigned int             /* UID type */
+#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
+#  define Uid_t uid_t          /* config-skip */
+#else
+#  define Uid_t unsigned int   /* config-skip */
+#endif
 
 /* I_SYS_PARAM:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #undef I_SYS_PARAM
 
-/* GNUC_ATTRIBUTE_CHECK:
- *     This symbol indicates the C compiler can check for function attributes,
- *     such as printf formats.
- */
-/* VMS: true for gcc, undef for VAXC/DECC.  This is handled in Descrip.MMS
- * C. Bailey  26-Aug-1994
- */
-/*#define      GNUC_ATTRIBUTE_CHECK    /* */
-
 /* VOID_CLOSEDIR:
  *     This symbol, if defined, indicates that the closedir() routine
  *     does not return a value.
 #undef SETUID_SCRIPTS_ARE_SECURE_NOW   /**/
 #undef DOSUID          /**/
 
-/* HAS_DREM:
- *     This symbol, if defined, indicates that the drem routine is
- *     available.  This is a Pyramid routine that is the same as
- *     fmod.
- */
-#undef HAS_DREM                /**/
-
-/* HAS_FMOD:
- *     This symbol, if defined, indicates that the fmod routine is
- *     available.
- */
-#define HAS_FMOD               /**/
-
-/* Gconvert:
- *     This preprocessor macro is defined to convert a floating point
- *     number to a string without a trailing decimal point.  This
- *     emulates the behavior of sprintf("%g"), but is sometimes much more
- *     efficient.  If gconvert() is not available, but gcvt() drops the
- *     trailing decimal point, then gcvt() is used.  If all else fails,
- *     a macro using sprintf("%g") is used.
+/* HAS_INET_ATON:
+ *     This symbol, if defined, indicates to the C program that the
+ *     inet_aton() function is available to parse IP address "dotted-quad"
+ *     strings.
+ *     VMS: SocketShr doesn't support this, so we let the Socket extension
+ *     roll its own.
  */
-#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b)
+#undef HAS_INET_ATON           /**/
 
 /* HAS_ISASCII:
  *     This manifest constant lets the C program know that the
  */
 #define HAS_ISASCII            /**/
 
-/* USE_LINUX_STDIO:
- *     This symbol is defined if this system has a FILE structure declaring
- *     _IO_read_base, _IO_read_ptr, and _IO_read_end in stdio.h.
+/* HAS_SETLOCALE:
+ *     This symbol, if defined, indicates that the setlocale routine is
+ *     available to handle locale-specific ctype implementations.
+ */
+/* I_LOCALE:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <locale.h>.
  */
-#undef USE_LINUX_STDIO         /**/
-
 /* HAS_LOCALECONV:
  *     This symbol, if defined, indicates that the localeconv routine is
  *     available for numeric and monetary formatting conventions.
  */
-#undef HAS_LOCALECONV  /**/
+#ifdef __DECC
+#  define      I_LOCALE                /*config-skip*/
+#  define HAS_SETLOCALE        /*config-skip*/
+#  define HAS_LOCALECONV       /*config-skip*/
+#else
+#  undef       I_LOCALE                /*config-skip*/
+#  undef HAS_SETLOCALE /*config-skip*/
+#  undef HAS_LOCALECONV        /*config-skip*/
+#endif
 
 /* HAS_MKFIFO:
  *     This symbol, if defined, indicates that the mkfifo routine is
  */
 #define HAS_SAFE_MEMCPY        /**/
 
+/* HAS_SANE_MEMCMP:
+ *     This symbol, if defined, indicates that the memcmp routine is available
+ *     and can be used to compare relative magnitudes of chars with their high
+ *     bits set.  If it is not defined, roll your own version.
+ */
+#define HAS_SANE_MEMCMP        /**/
+
 /* HAS_SETPGRP:
  *     This symbol, if defined, indicates that the setpgrp routine is
  *     available to set the current process group.
  */
+/* USE_BSD_SETPGRP:
+ *     This symbol, if defined, indicates that setpgrp needs two
+ *     arguments whereas USG one needs none.  See also HAS_SETPGID
+ *     for a POSIX interface.
+ */
 /* USE_BSDPGRP:
  *     This symbol, if defined, indicates that the BSD notion of process
  *     group is to be used. For instance, you have to say setpgrp(pid, pgrp)
  *     instead of the USG setpgrp().
  */
 #undef HAS_SETPGRP             /**/
+#undef USE_BSD_SETPGRP /**/
 #undef USE_BSDPGRP             /**/
 
+/* HAS_SETPGID:
+ *     This symbol, if defined, indicates that the setpgid routine is
+ *     available to set process group ID.
+ */
+#undef HAS_SETPGID     /**/
+
+/* HAS_SETPGRP2:
+ *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
+ *     routine is available to set the current process group.
+ */
+#undef HAS_SETPGRP2            /**/
+
 /* HAS_SYSCONF:
  *     This symbol, if defined, indicates that sysconf() is available
  *     to determine system related limits and options.
  */
 #undef HAS_SYSCONF     /**/
 
+/* Gconvert:
+ *     This preprocessor macro is defined to convert a floating point
+ *     number to a string without a trailing decimal point.  This
+ *     emulates the behavior of sprintf("%g"), but is sometimes much more
+ *     efficient.  If gconvert() is not available, but gcvt() drops the
+ *     trailing decimal point, then gcvt() is used.  If all else fails,
+ *     a macro using sprintf("%g") is used.  Arguments for the Gconvert
+ *     macro are: value, number of digits, whether trailing zeros should
+ *     be retained, and the output buffer.
+ *     Possible values are:
+ *             d_Gconvert='gconvert((x),(n),(t),(b))'
+ *             d_Gconvert='gcvt((x),(n),(b))'
+ *             d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+ *     The last two assume trailing zeros should not be kept.
+ */
+#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b)
+
+/* HAS_GETPGID:
+ *     This symbol, if defined, indicates to the C program that 
+ *     the getpgid(pid) function is available to get the
+ *     process group id.
+ */
+#undef HAS_GETPGID             /**/
+
+/* HAS_GETPGRP:
+ *     This symbol, if defined, indicates that the getpgrp routine is
+ *     available to get the current process group.
+ */
+/* USE_BSD_GETPGRP:
+ *     This symbol, if defined, indicates that getpgrp needs one
+ *     arguments whereas USG one needs none.
+ */
+#undef HAS_GETPGRP             /**/
+#undef USE_BSD_GETPGRP /**/
+
+/* HAS_GETPGRP2:
+ *     This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
+ *     routine is available to get the current process group.
+ */
+#undef HAS_GETPGRP2            /**/
+
+/* USE_SFIO:
+ *     This symbol, if defined, indicates that sfio should
+ *     be used.
+ */
+#undef USE_SFIO                /**/
+
+/* Sigjmp_buf:
+ * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
+ */
+/* Sigsetjmp:
+ * This macro is used in the same way as sigsetjmp(), but will invoke
+ * traditional setjmp() if sigsetjmp isn't available.
+ */
+/* Siglongjmp:
+ * This macro is used in the same way as siglongjmp(), but will invoke
+ * traditional longjmp() if siglongjmp isn't available.
+ */
+#undef HAS_SIGSETJMP   /**/
+#ifdef HAS_SIGSETJMP
+#define Sigjmp_buf sigjmp_buf  /* config-skip */
+#define Sigsetjmp(buf,save_mask) sigsetjmp(buf,save_mask)      /* config-skip */
+#define Siglongjmp(buf,retval) siglongjmp(buf,retval)  /* config-skip */
+#else
+#define Sigjmp_buf jmp_buf     /* config-skip */
+#define Sigsetjmp(buf,save_mask) setjmp(buf)   /* config-skip */
+#define Siglongjmp(buf,retval) longjmp(buf,retval)     /* config-skip */
+#endif
+
 /* USE_DYNAMIC_LOADING:
  *     This symbol, if defined, indicates that dynamic loading of
  *     some sort is available.
  */
 #define USE_DYNAMIC_LOADING            /**/
 
+/* STARTPERL:
+ *     This variable contains the string to put in front of a perl
+ *     script to make sure (one hopes) that it runs with perl and not
+ *     some shell.
+ */
+#define STARTPERL ""           /**/
+
+/* Groups_t:
+ *     This symbol holds the type used for the second argument to
+ *     getgroups().  Usually, this is the same of gidtype, but
+ *     sometimes it isn't.  It can be int, ushort, uid_t, etc... 
+ *     It may be necessary to include <sys/types.h> to get any 
+ *     typedef'ed information.  This is only required if you have
+ *     getgroups().
+ */
+#ifdef HAS_GETGROUPS
+#define Groups_t unsigned int  /* Type for 2nd arg to getgroups() */  /* config-skip */
+#endif
+
+/* DB_Prefix_t:
+ *     This symbol contains the type of the prefix structure element
+ *     in the <db.h> header file.  In older versions of DB, it was
+ *     int, while in newer ones it is u_int32_t.
+ */
+/* DB_Hash_t:
+ *     This symbol contains the type of the prefix structure element
+ *     in the <db.h> header file.  In older versions of DB, it was
+ *     int, while in newer ones it is size_t.
+ */
+#undef DB_Hash_t       /**/
+#undef DB_Prefix_t     /**/
+
+/* USE_PERLIO:
+ *     This symbol, if defined, indicates that the PerlIO abstraction should
+ *     be used throughout.  If not defined, stdio should be
+ *     used in a fully backward compatible manner.
+ */
+#undef USE_PERLIO              /**/
+
+/* VOIDFLAGS:
+ *     This symbol indicates how much support of the void type is given by this
+ *     compiler.  What various bits mean:
+ *
+ *         1 = supports declaration of void
+ *         2 = supports arrays of pointers to functions returning void
+ *         4 = supports comparisons between pointers to void functions and
+ *                 addresses of void functions
+ *         8 = suports declaration of generic void pointers
+ *
+ *     The package designer should define VOIDUSED to indicate the requirements
+ *     of the package.  This can be done either by #defining VOIDUSED before
+ *     including config.h, or by defining defvoidused in Myinit.U.  If the
+ *     latter approach is taken, only those flags will be tested.  If the
+ *     level of void support necessary is not present, defines void to int.
+ */
+#ifndef VOIDUSED
+#define VOIDUSED 15
+#endif
+#define VOIDFLAGS 15
+#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
+#define void int               /* is void to be avoided? */  /* config-skip */
+#define M_VOID                 /* Xenix strikes again */     /* config-skip */
+#endif
+
 #ifdef VMS_DO_SOCKETS
 /* HAS_SOCKET:
  *     This symbol, if defined, indicates that the BSD socket interface is
  */
 #undef I_NETINET_IN    /**/              /* config-skip */
 
-/* Groups_t:
- *     This symbol holds the type used for the second argument to
- *     getgroups().  Usually, this is the same of gidtype, but
- *     sometimes it isn't.  It can be int, ushort, uid_t, etc... 
- *     It may be necessary to include <sys/types.h> to get any 
- *     typedef'ed information.  This is only required if you have
- *     getgroups().
- */
-#ifdef HAS_GETGROUPS
-#define Groups_t unsigned int  /* Type for 2nd arg to getgroups() */  /* config-skip */
-#endif
-
 /* I_NET_ERRNO:
  *     This symbol, if defined, indicates that <net/errno.h> exists and 
  *     should be included.
 */
 #undef I_NET_ERRNO             /**/          /* config-skip */
 
+/* HAS_SELECT:
+ *     This symbol, if defined, indicates that the select routine is
+ *     available to select active file descriptors. If the timeout field
+ *     is used, <sys/time.h> may need to be included.
+ */
+#define HAS_SELECT     /**/              /* config-skip */
+
 #else /* VMS_DO_SOCKETS */
 
 #undef HAS_SOCKET              /**/          /* config-skip */
 #undef HAS_GETHOSTENT          /**/      /* config-skip */
 #undef I_NETINET_IN    /**/              /* config-skip */
 #undef I_NET_ERRNO             /**/          /* config-skip */
+#undef HAS_SELECT      /**/              /* config-skip */
 
 #endif /* !VMS_DO_SOCKETS */