This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Updated to reflect sigjmp and $^O patches
[perl5.git] / config_H
index cef709e..f31d741 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: Tue Jun  6 12:34:26 EDT 1995
- * Configured by: andy
- * Target system: crystal crystal 3.2 2 i386 
+/* Configuration time: Mon Mar 18 23:11:24 EST 1996
+ * Configured by: bailey
+ * Target system: sunos agave.humgen.upenn.edu 5.4 generic_101945-13 sun4m sparc 
  */
 
 #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 */
-
 /* CAT2:
  *     This macro catenates 2 tokens together.
  */
-/* 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 +45,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 is defined if the bcmp() routine is available to
  *     compare blocks of memory.
  */
-#define HAS_BCMP       /**/
+/*#define HAS_BCMP     /**/
 
 /* HAS_BCOPY:
  *     This symbol is defined if the bcopy() routine is available to
  *     copy blocks of memory.
  */
-#define HAS_BCOPY      /**/
+/*#define HAS_BCOPY    /**/
 
 /* HAS_BZERO:
  *     This symbol is defined if the bzero() routine is available to
  *     set a memory block to 0.
  */
-#define HAS_BZERO      /**/
+/*#define HAS_BZERO    /**/
 
 /* CASTI32:
  *     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
  *     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
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
  */
-/*#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.
- */
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
+#define HAS_FSETPOS    /**/
 
 /* 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
  *     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_BCOPY /**/
+/*#define HAS_SAFE_BCOPY       /**/
 
 /* HAS_SAFE_MEMCPY:
  *     This symbol, if defined, indicates that the memcpy routine is available
  *     available to change the real, effective and saved gid of the current
  *     process.
  */
-#define HAS_SETREGID           /**/
+/*#define HAS_SETREGID         /**/
 /*#define HAS_SETRESGID                /**/
 
 /* HAS_SETREUID:
  *     available to change the real, effective and saved uid of the current
  *     process.
  */
-#define HAS_SETREUID           /**/
+/*#define HAS_SETREUID         /**/
 /*#define HAS_SETRESUID                /**/
 
 /* HAS_SETRGID:
  *     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)
  *     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
  *     This symbol, if defined, indicates that this C compiler knows about
  *     the volatile declaration.
  */
-/*#define      HASVOLATILE     /**/
+#define        HASVOLATILE     /**/
 #ifndef HASVOLATILE
 #define volatile
 #endif
  *     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.
  *     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 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
  *     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
  *     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_TERMIO:
  *     This symbol, if defined, indicates that the program should include
  *     <termio.h> rather than <sgtty.h>.  There are also differences in
  */
 #define I_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             /**/
-#define I_VARARGS      /**/
-
 /* I_VFORK:
  *     This symbol, if defined, indicates to the C program that it should
  *     include vfork.h.
  */
 /*#define 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              /**/
-
 /* 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
  */
 #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 "/usr/local/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
  *     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 */
+#define SSize_t ssize_t         /* signed count of bytes */
 
 /* STDCHAR:
  *     This symbol is defined to be the type of char used in stdio.h.
  */
 #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.
- */
-#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
-
 /* VMS:
  *     This symbol, if defined, indicates that the program is running under
  *     VMS.  It is currently only set in conjunction with the EUNICE symbol.
  */
 #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_EXP "/usr/local/lib/perl5/i86pc-solaris/5.002"         /**/
+
+/* OSNAME:
+ *     This symbol contains the name of the operating system, as determined
+ *     by Configure.
+ */
+#define OSNAME "solaris"               /**/
+
+/* 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.
  *     If defined, contains the full pathname of csh.
  */
 /*#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))
+
+/* 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.
+ */
+#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_SYS_STAT:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #define        I_SYS_STAT              /**/
 
+/* 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               /**/
+/*#define I_VARARGS    /**/
+
+/* INTSIZE:
+ *     This symbol contains the size of an int, so that the C preprocessor
+ *     can make decisions based on it.
+ */
+#define INTSIZE 4              /**/
+
 /* 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_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_EXP ""            /**/
+
+/* 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"             /**/
+
+/* 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","RTMIN","NUM37","NUM38","NUM39","NUM40","NUM41","NUM42","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,6,18,22,0    /**/
+
+/* 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_EXP "/usr/local/lib/perl5/site_perl/i86pc-solaris"            /**/
+
 /* 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_EXP "/usr/local/lib/perl5/site_perl"           /**/
+
+/* 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 "#!/usr/local/bin/perl"              /**/
+
+/* 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