This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix {,un}tainting of $1 etc. when C<use locale>
[perl5.git] / config_H
index 0ed7b11..cec8188 100644 (file)
--- a/config_H
+++ b/config_H
  * that running config_h.SH again will wipe out any changes you've made.
  * For a more permanent change edit config.sh and rerun config_h.SH.
  *
- * $Id: Config_h.U,v 3.0.1.3 1995/01/30 14:25:39 ram Exp $
+ * $Id: Config_h.U,v 3.0.1.4 1995/09/25 09:10:49 ram Exp $
  */
 
-/* Configuration time: Fri Jun  2 14:50:10 EDT 1995
- * Configured by: andy
- * Target system: crystal crystal 3.2 2 i386 
+/* Configuration time: Wed Sep 11 15:24:25 EDT 1996
+ * Configured by: doughera
+ * Target system: sunos fractal 5.5 generic i86pc i386 i86pc 
  */
 
 #ifndef _config_h_
  */
 #define MEM_ALIGNBYTES 4       /**/
 
-/* 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.
- */
-#define ARCHLIB_EXP "/usr/local/lib/perl5/i386-isc"            /**/
-
 /* BIN:
  *     This symbol holds the path of the bin directory where the package will
  *     be installed. Program must be prepared to deal with ~name substitution.
  */
-#define BIN "/usr/local/bin"   /**/
-
-/* BYTEORDER:
- *     This symbol hold the hexadecimal constant defined in byteorder,
- *     i.e. 0x1234 or 0x4321, etc...
- */
-#define BYTEORDER 0x1234       /* large digits for MSB */
+#define BIN "/opt/perl/bin"    /**/
 
 /* CAT2:
  *     This macro catenates 2 tokens together.
@@ -52,7 +40,7 @@
 /* STRINGIFY:
  *     This macro surrounds its token with double quotes.
  */
-#if 1 == 1
+#if 42 == 1
 #define CAT2(a,b)a/**/b
 #define CAT3(a,b,c)a/**/b/**/c
 #define CAT4(a,b,c,d)a/**/b/**/c/**/d
@@ -60,7 +48,7 @@
 #define STRINGIFY(a)"a"
                /* If you can get stringification with catify, tell me how! */
 #endif
-#if 1 == 42
+#if 42 == 42
 #define CAT2(a,b)a ## b
 #define CAT3(a,b,c)a ## b ## c
 #define CAT4(a,b,c,d)a ## b ## c ## d
  *     This symbol indicates the C compiler can check for function attributes,
  *     such as printf formats. This is normally only supported by GNU cc.
  */
-/*#define HASATTRIBUTE         /**/
+/*#define HASATTRIBUTE         / **/
 #ifndef HASATTRIBUTE
 #define __attribute__(_arg_)
 #endif
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
  */
-/*#define      CASTI32         /**/
+#define        CASTI32         /**/
 
 /* CASTNEGFLOAT:
  *     This symbol is defined if the C compiler can cast negative
  *             2 = couldn't cast >= 0x80000000
  *             4 = couldn't cast in argument expression list
  */
-/*#define      CASTNEGFLOAT            /**/
-#define CASTFLAGS 7            /**/
+#define        CASTNEGFLOAT            /**/
+#define CASTFLAGS 0            /**/
 
 /* HAS_CHOWN:
  *     This symbol, if defined, indicates that the chown routine is
  *     This symbol, if defined, indicates that the chsize routine is available
  *     to truncate files.  You might need a -lx to get this routine.
  */
-/*#define      HAS_CHSIZE              /**/
+/*#define      HAS_CHSIZE              / **/
 
 /* VOID_CLOSEDIR:
  *     This symbol, if defined, indicates that the closedir() routine
  *     does not return a value.
  */
-/*#define VOID_CLOSEDIR                /**/
+/*#define VOID_CLOSEDIR                / **/
 
 /* HASCONST:
  *     This symbol, if defined, indicates that this C compiler knows about
  *     within your programs. The mere use of the "const" keyword will
  *     trigger the necessary tests.
  */
-/*#define HASCONST     /**/
+#define HASCONST       /**/
 #ifndef HASCONST
 #define const
 #endif
  *     available to return a string describing the last error that
  *     occurred from a call to dlopen(), dlclose() or dlsym().
  */
-/*#define HAS_DLERROR  /**/
-
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- *     This symbol, if defined, indicates that the bug that prevents
- *     setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- *     This symbol, if defined, indicates that the C program should
- *     check the script that it is executing for setuid/setgid bits, and
- *     attempt to emulate setuid/setgid on systems that have disabled
- *     setuid #! scripts because the kernel can't do it securely.
- *     It is up to the package designer to make sure that this emulation
- *     is done securely.  Among other things, it should do an fstat on
- *     the script it just opened to make sure it really is a setuid/setgid
- *     script, it should make sure the arguments passed correspond exactly
- *     to the argument on the #! line, and it should not trust any
- *     subprocesses to which it must pass the filename rather than the
- *     file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW        /**/
-/*#define DOSUID               /**/
+#define HAS_DLERROR    /**/
 
 /* HAS_DUP2:
  *     This symbol, if defined, indicates that the dup2 routine is
  *     This symbol, if defined, indicates that the fchmod routine is available
  *     to change mode of opened files.  If unavailable, use chmod().
  */
-/*#define HAS_FCHMOD           /**/
+#define HAS_FCHMOD             /**/
 
 /* HAS_FCHOWN:
  *     This symbol, if defined, indicates that the fchown routine is available
  *     to change ownership of opened files.  If unavailable, use chown().
  */
-/*#define HAS_FCHOWN           /**/
+#define HAS_FCHOWN             /**/
 
 /* HAS_FCNTL:
  *     This symbol, if defined, indicates to the C program that
  *     This symbol, if defined, indicates that the fgetpos routine is
  *     available to get the file position indicator, similar to ftell().
  */
-/*#define HAS_FGETPOS  /**/
+#define HAS_FGETPOS    /**/
 
 /* FLEXFILENAMES:
  *     This symbol, if defined, indicates that the system supports filenames
  *     longer than 14 characters.
  */
-/*#define      FLEXFILENAMES           /**/
+#define        FLEXFILENAMES           /**/
 
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
  */
-/*#define HAS_FLOCK            /**/
+/*#define HAS_FLOCK            / **/
 
 /* HAS_FORK:
  *     This symbol, if defined, indicates that the fork routine is
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
-/*#define HAS_FSETPOS  /**/
+#define HAS_FSETPOS    /**/
 
-/* 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.
+/* 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".
  */
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
+/*#define HAS_GETTIMEOFDAY     / **/
+#ifdef HAS_GETTIMEOFDAY
+#define Timeval struct timeval /* Structure used by gettimeofday() */
+#endif
 
 /* HAS_GETGROUPS:
  *     This symbol, if defined, indicates that the getgroups() routine is
  *     This symbol, if defined, indicates that the gethostent routine is
  *     available to lookup host names in some data base or other.
  */
-/*#define HAS_GETHOSTENT               /**/
+#define HAS_GETHOSTENT         /**/
 
 /* HAS_UNAME:
  *     This symbol, if defined, indicates that the C program may use the
  */
 #define HAS_GETLOGIN           /**/
 
-/* HAS_GETPGRP:
- *     This symbol, if defined, indicates that the getpgrp routine is
- *     available to get the current process group.
- */
-#define 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.
  */
-/*#define HAS_GETPGRP2         /**/
+/*#define HAS_GETPGRP2         / **/
 
 /* HAS_GETPPID:
  *     This symbol, if defined, indicates that the getppid routine is
  *     This symbol, if defined, indicates that the getpriority routine is
  *     available to get a process's priority.
  */
-/*#define HAS_GETPRIORITY              /**/
+#define HAS_GETPRIORITY                /**/
 
 /* HAS_HTONL:
  *     This symbol, if defined, indicates that the htonl() routine (and
 #define HAS_NTOHL              /**/
 #define HAS_NTOHS              /**/
 
+/* 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.
+ */
+#define HAS_INET_ATON          /**/
+
 /* HAS_ISASCII:
  *     This manifest constant lets the C program know that isascii 
  *     is available.
  *     to kill process groups.  If unavailable, you probably should use kill
  *     with a negative process number.
  */
-/*#define HAS_KILLPG   /**/
+#define HAS_KILLPG     /**/
 
 /* HAS_LINK:
  *     This symbol, if defined, indicates that the link routine is
  *     This symbol, if defined, indicates that the mblen routine is available
  *     to find the number of bytes in a multibye character.
  */
-/*#define HAS_MBLEN            /**/
+#define HAS_MBLEN              /**/
 
 /* HAS_MBSTOWCS:
  *     This symbol, if defined, indicates that the mbstowcs routine is
  *     available to covert a multibyte string into a wide character string.
  */
-/*#define      HAS_MBSTOWCS            /**/
+#define        HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
  *     to covert a multibyte to a wide character.
  */
-/*#define HAS_MBTOWC           /**/
+#define HAS_MBTOWC             /**/
 
 /* HAS_MEMCMP:
  *     This symbol, if defined, indicates that the memcmp routine is available
  *     only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
  *     own version.
  */
-/*#define HAS_MEMMOVE  /**/
+#define HAS_MEMMOVE    /**/
 
 /* HAS_MEMSET:
  *     This symbol, if defined, indicates that the memset routine is available
  */
 #define HAS_PIPE               /**/
 
+/* HAS_POLL:
+ *     This symbol, if defined, indicates that the poll routine is
+ *     available to poll active file descriptors.
+ */
+#define HAS_POLL               /**/
+
 /* HAS_READDIR:
  *     This symbol, if defined, indicates that the readdir routine is
  *     available to read directory entries. You may have to include
  *     probably use memmove() or memcpy(). If neither is defined, roll your
  *     own version.
  */
-/*#define HAS_SAFE_MEMCPY      /**/
+/*#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_SELECT:
  *     This symbol, if defined, indicates that the select routine is
  *     available to change stderr or stdout from block-buffered or unbuffered
  *     to a line-buffered mode.
  */
-/*#define HAS_SETLINEBUF               /**/
+#define HAS_SETLINEBUF         /**/
 
 /* HAS_SETLOCALE:
  *     This symbol, if defined, indicates that the setlocale routine is
  */
 #define HAS_SETLOCALE  /**/
 
-/* HAS_SETPGID:
- *     This symbol, if defined, indicates that the setpgid routine is
- *     available to set process group ID.
- */
-#define HAS_SETPGID    /**/
-
-/* HAS_SETPGRP:
- *     This symbol, if defined, indicates that the setpgrp routine is
- *     available to set the current process group.
- */
-/* 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().
- */
-#define HAS_SETPGRP            /**/
-/*#define USE_BSDPGRP          /**/
-
 /* HAS_SETPGRP2:
  *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
  *     routine is available to set the current process group.
  */
-/*#define HAS_SETPGRP2         /**/
+/*#define HAS_SETPGRP2         / **/
 
 /* HAS_SETPRIORITY:
  *     This symbol, if defined, indicates that the setpriority routine is
  *     available to set a process's priority.
  */
-/*#define HAS_SETPRIORITY              /**/
+#define HAS_SETPRIORITY                /**/
 
 /* HAS_SETREGID:
  *     This symbol, if defined, indicates that the setregid routine is
  *     process.
  */
 #define HAS_SETREGID           /**/
-/*#define HAS_SETRESGID                /**/
+/*#define HAS_SETRESGID                / **/
 
 /* HAS_SETREUID:
  *     This symbol, if defined, indicates that the setreuid routine is
  *     process.
  */
 #define HAS_SETREUID           /**/
-/*#define HAS_SETRESUID                /**/
+/*#define HAS_SETRESUID                / **/
 
 /* HAS_SETRGID:
  *     This symbol, if defined, indicates that the setrgid routine is available
  *     to change the real gid of the current program.
  */
-/*#define HAS_SETRGID          /**/
+/*#define HAS_SETRGID          / **/
 
 /* HAS_SETRUID:
  *     This symbol, if defined, indicates that the setruid routine is available
  *     to change the real uid of the current program.
  */
-/*#define HAS_SETRUID          /**/
+/*#define HAS_SETRUID          / **/
 
 /* HAS_SETSID:
  *     This symbol, if defined, indicates that the setsid 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.
  */
-#define Shmat_t char * /**/
-/*#define HAS_SHMAT_PROTOTYPE  /**/
+#define Shmat_t void * /**/
+#define HAS_SHMAT_PROTOTYPE    /**/
+
+/* HAS_SIGACTION:
+ *     This symbol, if defined, indicates that Vr4's sigaction() routine
+ *     is available.
+ */
+#define HAS_SIGACTION  /**/
 
 /* HAS_SOCKET:
  *     This symbol, if defined, indicates that the BSD socket interface is
  *     supported.
  */
 #define HAS_SOCKET             /**/
-/*#define HAS_SOCKETPAIR       /**/
+#define HAS_SOCKETPAIR /**/
 
 /* USE_STAT_BLOCKS:
  *     This symbol is defined if this system has a stat structure declaring
  *     st_blksize and st_blocks.
  */
-/*#define USE_STAT_BLOCKS      /**/
+#define USE_STAT_BLOCKS        /**/
 
 /* USE_STDIO_PTR:
  *     This symbol is defined if the _ptr and _cnt fields (or similar)
  *     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.
- */
-#define USE_STDIO_PTR  /**/
-#define USE_STDIO_BASE         /**/
-
 /* 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
  *     This symbol is defined if the FILE_cnt macro can be used as an
  *     lvalue.
  */
+/* FILE_filbuf:
+ *     This macro is used to access the internal stdio _filbuf function
+ *     (or equivalent), if STDIO_CNT_LVALUE and STDIO_PTR_LVALUE
+ *     are defined.  It is typically either _filbuf or __filbuf.
+ *     This macro will only be defined if both STDIO_CNT_LVALUE and
+ *     STDIO_PTR_LVALUE are defined.
+ */
+#define USE_STDIO_PTR  /**/
 #ifdef USE_STDIO_PTR
 #define FILE_ptr(fp)   ((fp)->_ptr)
-#define STDIO_PTR_LVALUE
+#define STDIO_PTR_LVALUE               /**/
 #define FILE_cnt(fp)   ((fp)->_cnt)
-#define STDIO_CNT_LVALUE
+#define STDIO_CNT_LVALUE               /**/
+#if defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
+#define FILE_filbuf(fp)        _filbuf(fp)             /**/
+#endif
 #endif
 
+/* 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.
+ */
 /* 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
  *     structure pointed to its argument. This macro will always be defined
  *     if USE_STDIO_BASE is defined.
  */
+#define USE_STDIO_BASE         /**/
 #ifdef USE_STDIO_BASE
 #define FILE_base(fp)  ((fp)->_base)
 #define FILE_bufsiz(fp)        ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
  *     functions are available for string searching.
  */
 #define HAS_STRCHR     /**/
-/*#define HAS_INDEX    /**/
+/*#define HAS_INDEX    / **/
 
 /* HAS_STRCOLL:
  *     This symbol, if defined, indicates that the strcoll routine is
 #define HAS_SYS_ERRLIST        /**/
 #define Strerror(e) strerror(e)
 
+/* HAS_STRTOD:
+ *     This symbol, if defined, indicates that the strtod routine is
+ *     available to translate strings to doubles.
+ */
+#define HAS_STRTOD     /**/
+
+/* HAS_STRTOL:
+ *     This symbol, if defined, indicates that the strtol routine is
+ *     available to translate strings to integers.
+ */
+#define HAS_STRTOL     /**/
+
+/* HAS_STRTOUL:
+ *     This symbol, if defined, indicates that the strtoul routine is
+ *     available to translate strings to integers.
+ */
+#define HAS_STRTOUL    /**/
+
 /* HAS_STRXFRM:
  *     This symbol, if defined, indicates that the strxfrm() routine is
  *     available to transform strings.
  *     This symbol, if defined, indicates that the truncate routine is
  *     available to truncate files.
  */
-/*#define HAS_TRUNCATE /**/
+#define HAS_TRUNCATE   /**/
 
 /* HAS_TZNAME:
  *     This symbol, if defined, indicates that the tzname[] array is
 /* HAS_VFORK:
  *     This symbol, if defined, indicates that vfork() exists.
  */
-/*#define HAS_VFORK    /**/
+/*#define HAS_VFORK    / **/
 
 /* Signal_t:
  *     This symbol's value is either "void" or "int", corresponding to the
  *     This symbol, if defined, indicates that this C compiler knows about
  *     the volatile declaration.
  */
-/*#define      HASVOLATILE     /**/
+#define        HASVOLATILE     /**/
 #ifndef HASVOLATILE
 #define volatile
 #endif
  *     symbol.
  */
 #define HAS_VPRINTF    /**/
-/*#define USE_CHAR_VSPRINTF    /**/
+/*#define USE_CHAR_VSPRINTF    / **/
 
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
-/*#define HAS_WAIT4    /**/
+#define HAS_WAIT4      /**/
 
 /* HAS_WAITPID:
  *     This symbol, if defined, indicates that the waitpid routine is
  *     This symbol, if defined, indicates that the wcstombs routine is
  *     available to convert wide character strings to multibyte strings.
  */
-/*#define HAS_WCSTOMBS /**/
+#define HAS_WCSTOMBS   /**/
 
 /* HAS_WCTOMB:
  *     This symbol, if defined, indicates that the wctomb routine is available
  *     to covert a wide character to a multibyte.
  */
-/*#define HAS_WCTOMB           /**/
+#define HAS_WCTOMB             /**/
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
  *     portably declare your directory entries.
  */
 #define I_DIRENT               /**/
-/*#define DIRNAMLEN    /**/
+/*#define DIRNAMLEN    / **/
 #define Direntry_t struct dirent
 
 /* I_DLFCN:
  *     This symbol, if defined, indicates that <dlfcn.h> exists and should
  *     be included.
  */
-/*#define I_DLFCN              /**/
+#define I_DLFCN                /**/
 
 /* I_FCNTL:
  *     This manifest constant tells the C program to include <fcntl.h>.
  *     This symbol, if defined, indicates to the C program that it should
  *     include <memory.h>.
  */
-/*#define I_MEMORY             /**/
+/*#define I_MEMORY             / **/
 
 /* I_NDBM:
  *     This symbol, if defined, indicates that <ndbm.h> exists and should
  *     This symbol, if defined, indicates that <net/errno.h> exists and 
  *     should be included.
  */
-#define I_NET_ERRNO            /**/
+/*#define I_NET_ERRNO          / **/
 
 /* I_NETINET_IN:
  *     This symbol, if defined, indicates to the C program that it should
  *     contains pw_comment.
  */
 #define I_PWD          /**/
-/*#define PWQUOTA      /**/
+/*#define PWQUOTA      / **/
 #define PWAGE  /**/
-/*#define PWCHANGE     /**/
-/*#define PWCLASS      /**/
-/*#define PWEXPIRE     /**/
+/*#define PWCHANGE     / **/
+/*#define PWCLASS      / **/
+/*#define PWEXPIRE     / **/
 #define PWCOMMENT      /**/
 
 /* I_STDDEF:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/dir.h>.
  */
-#define I_SYS_DIR              /**/
+/*#define I_SYS_DIR            / **/
 
 /* I_SYS_FILE:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/file.h> to get definition of R_OK and friends.
  */
-/*#define I_SYS_FILE           /**/
+/*#define I_SYS_FILE           / **/
 
 /* I_SYS_IOCTL:
  *     This symbol, if defined, indicates that <sys/ioctl.h> exists and should
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/ndir.h>.
  */
-/*#define I_SYS_NDIR   /**/
+/*#define I_SYS_NDIR   / **/
 
 /* I_SYS_PARAM:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #define I_SYS_PARAM            /**/
 
+/* I_SYS_RESOURCE:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/resource.h>.
+ */
+#define 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.
  */
-/*#define I_SYS_SELECT /**/
+#define I_SYS_SELECT   /**/
 
 /* I_SYS_TIMES:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #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.
+ */
+#define I_SYS_UN               /**/
+
+/* I_SYS_WAIT:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/wait.h>.
+ */
+#define 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
  *     <sgtty.h> rather than <termio.h>.  There are also differences in
  *     the ioctl() calls that depend on the value of this symbol.
  */
-/*#define I_TERMIO             /**/
+/*#define I_TERMIO             / **/
 #define I_TERMIOS              /**/
-/*#define I_SGTTY              /**/
+/*#define I_SGTTY              / **/
 
 /* I_TIME:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/time.h> with KERNEL defined.
  */
-/*#define I_TIME               /**/
+/*#define I_TIME               / **/
 #define I_SYS_TIME             /**/
-/*#define I_SYS_TIME_KERNEL            /**/
+/*#define I_SYS_TIME_KERNEL            / **/
 
 /* I_UNISTD:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates to the C program that it should
  *     include <varargs.h>.
  */
-/*#define I_STDARG             /**/
-#define I_VARARGS      /**/
+#define I_STDARG               /**/
+/*#define I_VARARGS    / **/
 
 /* I_VFORK:
  *     This symbol, if defined, indicates to the C program that it should
  *     include vfork.h.
  */
-/*#define I_VFORK      /**/
+/*#define I_VFORK      / **/
 
 /* INTSIZE:
  *     This symbol contains the size of an int, so that the C preprocessor
  */
 #define Mode_t mode_t   /* file mode parameter for system calls */
 
-/* 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 "/usr/local/lib/perl5"             /**/
-
 /* CAN_PROTOTYPE:
  *     If defined, this macro indicates that the C compiler can handle
  *     function prototypes.
  *
  *             int main _((int argc, char *argv[]));
  */
-/*#define      CAN_PROTOTYPE   /**/
+#define        CAN_PROTOTYPE   /**/
 #ifdef CAN_PROTOTYPE
 #define        _(args) args
 #else
  *     is often a directory that is mounted across diverse architectures.
  *     Programs must be prepared to deal with ~name expansion.
  */
-#define SCRIPTDIR "/usr/local/bin"     /**/
+#define SCRIPTDIR "/opt/perl/script"   /**/
 
 /* Select_fd_set_t:
  *     This symbol holds the type used for the 2nd, 3rd, and 4th
  */
 #define Select_fd_set_t        fd_set *        /**/
 
-/* 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".
- */
-#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","ABRT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","CLD","PWR","WINCH","21","POLL","CONT","STOP","TSTP","TTIN","TTOU"     /**/
-
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
-/* SSize_t:
- *     This symbol holds the type used by functions that return
- *     a count of bytes or an error condition.  It must be a signed type.
- *     It is usually ssize_t, but may be long or int, etc.
- *     It may be necessary to include <sys/types.h> or <unistd.h>
- *     to get any typedef'ed information.
- *     We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
- */
-#define SSize_t int     /* signed count of bytes */
-
 /* STDCHAR:
  *     This symbol is defined to be the type of char used in stdio.h.
  *     It has the values "unsigned char" or "char".
  */
 #define Uid_t uid_t            /* UID type */
 
-/* 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.
+/* LOC_SED:
+ *     This symbol holds the complete pathname to the sed program.
  */
-#ifndef VOIDUSED
-#define VOIDUSED 15
-#endif
-#define VOIDFLAGS 15
-#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
-#define void int               /* is void to be avoided? */
-#define M_VOID                 /* Xenix strikes again */
-#endif
+#define LOC_SED        "/bin/sed"      /**/
 
-/* VMS:
- *     This symbol, if defined, indicates that the program is running under
- *     VMS.  It is currently only set in conjunction with the EUNICE symbol.
+/* OSNAME:
+ *     This symbol contains the name of the operating system, as determined
+ *     by Configure.  You shouldn't rely on it too much; the specific
+ *     feature tests from Configure are generally more reliable.
  */
-/*#define VMS          /**/
+#define OSNAME "solaris"               /**/
 
-/* LOC_SED:
- *     This symbol holds the complete pathname to the sed program.
+/* ARCHLIB:
+ *     This variable, if defined, holds the name of the directory in
+ *     which the user wants to put architecture-dependent public
+ *     library files for perl5.  It is most often a local directory
+ *     such as /usr/local/lib.  Programs using this variable must be
+ *     prepared to deal with filename expansion.  If ARCHLIB is the
+ *     same as PRIVLIB, it is not defined, since presumably the
+ *     program already searches PRIVLIB.
  */
-#define LOC_SED        "/bin/sed"      /**/
+/* 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.
+ */
+#define ARCHLIB "/opt/perl/lib/i86pc-solaris/5.00305"          /**/
+#define ARCHLIB_EXP "/opt/perl/lib/i86pc-solaris/5.00305"              /**/
+
+/* BINCOMPAT3:
+ *     This symbol, if defined, indicates that Perl 5.004 should be
+ *     binary-compatible with Perl 5.003.
+ */
+#define BINCOMPAT3             /**/
+
+/* BYTEORDER:
+ *     This symbol holds the hexadecimal constant defined in byteorder,
+ *     i.e. 0x1234 or 0x4321, etc...
+ *     On NeXT 4 (and greater), you can build "Fat" Multiple Architecture
+ *     Binaries (MAB) on either big endian or little endian machines.
+ *     The endian-ness is available at compile-time.  This only matters
+ *     for perl, where the config.h can be generated and installed on 
+ *     one system, and used by a different architecture to build an
+ *     extension.  Older versions of NeXT that might not have
+ *     defined either *_ENDIAN__ were all on Motorola 680x0 series,
+ *     so the default case (for NeXT) is big endian to catch them. 
+ *     This might matter for NeXT 3.0.
+ */
+#ifndef NeXT
+#define BYTEORDER 0x1234       /* large digits for MSB */
+#else  /* NeXT */
+#ifdef __LITTLE_ENDIAN__
+#define BYTEORDER 0x1234
+#else /* __BIG_ENDIAN__ */
+#define BYTEORDER 0x4321
+#endif /* ENDIAN CHECK */
+#endif /* NeXT */
 
 /* CSH:
  *     This symbol, if defined, indicates that the C-shell exists.
  *     makes sense if you *have* dlsym, which we will presume is the
  *     case if you're using dl_dlopen.xs.
  */
-/*#define      DLSYM_NEEDS_UNDERSCORE  /* */
+/*#define      DLSYM_NEEDS_UNDERSCORE  / **/
+
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ *     This symbol, if defined, indicates that the bug that prevents
+ *     setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ *     This symbol, if defined, indicates that the C program should
+ *     check the script that it is executing for setuid/setgid bits, and
+ *     attempt to emulate setuid/setgid on systems that have disabled
+ *     setuid #! scripts because the kernel can't do it securely.
+ *     It is up to the package designer to make sure that this emulation
+ *     is done securely.  Among other things, it should do an fstat on
+ *     the script it just opened to make sure it really is a setuid/setgid
+ *     script, it should make sure the arguments passed correspond exactly
+ *     to the argument on the #! line, and it should not trust any
+ *     subprocesses to which it must pass the filename rather than the
+ *     file descriptor of the script to be executed.
+ */
+#define SETUID_SCRIPTS_ARE_SECURE_NOW  /**/
+/*#define DOSUID               / **/
+
+/* 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) 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.
+ */
+#define 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.
+ */
+#define HAS_GETPGRP            /**/
+/*#define USE_BSD_GETPGRP      / **/
+
+/* HAS_SETPGID:
+ *     This symbol, if defined, indicates to the C program that 
+ *     the setpgid(pid, gpid) function is available to set the
+ *     process group id.
+ */
+#define HAS_SETPGID            /**/
+
+/* 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().  This should be obsolete since
+ *     there are systems which have BSD-ish setpgrp but USG-ish getpgrp.
+ */
+#define HAS_SETPGRP            /**/
+/*#define USE_BSD_SETPGRP      / **/
+/*#define USE_BSDPGRP          / **/
+
+/* USE_SFIO:
+ *     This symbol, if defined, indicates that sfio should
+ *     be used.
+ */
+/*#define      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.
+ *     See HAS_SIGSETJMP.
+ */
+/* Siglongjmp:
+ *     This macro is used in the same way as siglongjmp(), but will invoke
+ *     traditional longjmp() if siglongjmp isn't available.
+ *     See HAS_SIGSETJMP.
+ */
+#define HAS_SIGSETJMP  /**/
+#ifdef HAS_SIGSETJMP
+#define Sigjmp_buf sigjmp_buf
+#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
+#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
+#else
+#define Sigjmp_buf jmp_buf
+#define Sigsetjmp(buf,save_mask) setjmp((buf))
+#define Siglongjmp(buf,retval) longjmp((buf),(retval))
+#endif
 
 /* USE_DYNAMIC_LOADING:
  *     This symbol, if defined, indicates that dynamic loading of
  *     some sort is available.
  */
-/*#define USE_DYNAMIC_LOADING          /**/
+#define USE_DYNAMIC_LOADING            /**/
+
+/* 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.
+ */
+/*#define I_DBM        / **/
+#define I_RPCSVC_DBM   /**/
+
+/* I_LOCALE:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <locale.h>.
+ */
+#define        I_LOCALE                /**/
+
+/* I_SFIO:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sfio.h>.
+ */
+/*#define      I_SFIO          / **/
 
 /* I_SYS_STAT:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #define        I_SYS_STAT              /**/
 
+/* 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.
+ */
+#define 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 char *                        /**/
+#define Malloc_t void *                        /**/
 #define Free_t void                    /**/
 
 /* MYMALLOC:
  */
 #define MYMALLOC                       /**/
 
+/* 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!).
+ */
+#define VAL_O_NONBLOCK O_NONBLOCK
+#define VAL_EAGAIN EAGAIN
+#define RD_NODATA -1
+#define 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 perl5.  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.
+ */
+/*#define OLDARCHLIB ""                / **/
+/*#define OLDARCHLIB_EXP ""            / **/
+
+/* PRIVLIB:
+ *     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.
+ */
+/* 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 "/opt/perl/lib"                /**/
+#define PRIVLIB_EXP "/opt/perl/lib"            /**/
+
+/* 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.exe.
+ */
+#define SH_PATH "/bin/sh"  /**/
+
+/* SIG_NAME:
+ *     This symbol contains a list of signal names in order of
+ *     signal number. 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".
+ *     Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
+ *     etc., where nn is the actual signal number (e.g. NUM37).
+ *     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.
+ */
+/* SIG_NUM:
+ *     This symbol contains a list of signal numbers, 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, but are moved to the end of the list.
+ *     The signal number corresponding to sig_name[i] is sig_number[i].
+ *     if (i < NSIG) then sig_number[i] == i.  
+ *     The last element is 0, corresponding to the 0 at the end of
+ *     the sig_name list.
+ */
+#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","ABRT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","CHLD","PWR","WINCH","URG","IO","STOP","TSTP","CONT","TTIN","TTOU","VTALRM","PROF","XCPU","XFSZ","WAITING","LWP","FREEZE","THAW","CANCEL","RTMIN","NUM38","NUM39","NUM40","NUM41","NUM42","NUM43","RTMAX","IOT","CLD","POLL",0 /**/
+#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,6,18,22,0 /**/
+
+/* 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.
+ */
+/* 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.
+ */
+#define SITEARCH "/opt/perl/lib/site_perl/i86pc-solaris"               /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/i86pc-solaris"           /**/
+
+/* 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 SITELIB_EXP ""               /**/
+#define SITELIB "/opt/perl/lib/site_perl"              /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl"          /**/
+
+/* SSize_t:
+ *     This symbol holds the type used by functions that return
+ *     a count of bytes or an error condition.  It must be a signed type.
+ *     It is usually ssize_t, but may be long or int, etc.
+ *     It may be necessary to include <sys/types.h> or <unistd.h>
+ *     to get any typedef'ed information.
+ *     We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
+ */
+#define SSize_t ssize_t         /* signed count of bytes */
+
+/* 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 "#!/opt/perl/bin/perl"               /**/
+
+/* 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.
+ */
+/*#define      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? */
+#define M_VOID                 /* Xenix strikes again */
+#endif
 
 #endif