Housekeeping
[p5sagit/p5-mst-13.2.git] / config_h.SH
index c1fd84a..eb95593 100644 (file)
@@ -56,6 +56,15 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_alarm 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.
+ */
+#$d_attribut HASATTRIBUTE      /**/
+#ifndef HASATTRIBUTE
+#define __attribute__(_arg_)
+#endif
+
 /* HAS_BCMP:
  *     This symbol is defined if the bcmp() routine is available to
  *     compare blocks of memory.
@@ -92,6 +101,17 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_chsize     HAS_CHSIZE              /**/
 
+/* HASCONST:
+ *     This symbol, if defined, indicates that this C compiler knows about
+ *     the const type. There is no need to actually test for that symbol
+ *     within your programs. The mere use of the "const" keyword will
+ *     trigger the necessary tests.
+ */
+#$d_const 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.
@@ -200,6 +220,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     The type "Timeval" should be used to refer to "struct timeval".
  */
 #$d_gettimeod 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
@@ -221,17 +244,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_getpgid 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.
- */
-#$d_getpgrp HAS_GETPGRP                /**/
-#$d_bsdgetpgrp 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.
@@ -486,18 +498,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_setpgid 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.
- */
-#$d_setpgrp HAS_SETPGRP                /**/
-#$d_bsdsetpgrp USE_BSD_SETPGRP /**/
-
 /* HAS_SETPGRP2:
  *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
  *     routine is available to set the current process group.
@@ -605,12 +605,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_strtol HAS_STRTOL  /**/
 
-/* HAS_STRTOUL:
- *     This symbol, if defined, indicates that the strtoul routine is
- *     available to provide conversion of strings to unsigned long.
- */
-#$d_strtoul HAS_STRTOUL        /**/
-
 /* HAS_STRXFRM:
  *     This symbol, if defined, indicates that the strxfrm() routine is
  *     available to transform strings.
@@ -671,6 +665,15 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_umask HAS_UMASK            /**/
 
+/* HASVOLATILE:
+ *     This symbol, if defined, indicates that this C compiler knows about
+ *     the volatile declaration.
+ */
+#$d_volatile   HASVOLATILE     /**/
+#ifndef HASVOLATILE
+#define volatile
+#endif
+
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
@@ -729,6 +732,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_dirent I_DIRENT            /**/
 #$d_dirnamlen DIRNAMLEN        /**/
+#define Direntry_t $direntrytype
 
 /* I_DLFCN:
  *     This symbol, if defined, indicates that <dlfcn.h> exists and should
@@ -831,7 +835,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol, if defined, indicates that <sys/ioctl.h> exists and should
  *     be included. Otherwise, include <sgtty.h> or <termio.h>.
  */
+/* I_SYS_SOCKIO:
+ *     This symbol, if defined, indicates the <sys/sockio.h> should be included
+ *     to get socket ioctl options, like SIOCATMARK.
+ */
 #$i_sysioctl   I_SYS_IOCTL             /**/
+#$i_syssockio I_SYS_SOCKIO     /**/
 
 /* I_SYS_NDIR:
  *     This symbol, if defined, indicates to the C program that it should
@@ -944,6 +953,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_vfork I_VFORK      /**/
 
+/* CAN_PROTOTYPE:
+ *     If defined, this macro indicates that the C compiler can handle
+ *     function prototypes.
+ */
 /* _:
  *     This macro is used to declare function parameters for folks who want
  *     to make declarations with prototypes using a different style than
@@ -951,8 +964,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *
  *             int main _((int argc, char *argv[]));
  */
+#$prototype    CAN_PROTOTYPE   /**/
+#ifdef CAN_PROTOTYPE
 #define        _(args) args
+#else
 #define        _(args) ()
+#endif
 
 /* SH_PATH:
  *     This symbol contains the full pathname to the shell used on this
@@ -963,12 +980,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #define SH_PATH "$sh"  /**/
 
-/* STDCHAR:
- *     This symbol is defined to be the type of char used in stdio.h.
- *     It has the values "unsigned char" or "char".
- */
-#define STDCHAR $stdchar       /**/
-
 /* CROSSCOMPILE:
  *     This symbol, if defined, signifies that we our
  *     build process is a cross-compilation.
@@ -1006,6 +1017,15 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T.
  */
 #$d_quad HAS_QUAD      /**/
+#ifdef HAS_QUAD
+#   define Quad_t $quadtype    /**/
+#   define Uquad_t $uquadtype  /**/
+#   define QUADKIND $quadkind  /**/
+#   define QUAD_IS_INT 1
+#   define QUAD_IS_LONG        2
+#   define QUAD_IS_LONG_LONG   3
+#   define QUAD_IS_INT64_T     4
+#endif
 
 /* HAS_ACCESSX:
  *     This symbol, if defined, indicates that the accessx routine is
@@ -1043,6 +1063,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     double, or a long double when applicable. Usual values are 2,
  *     4 and 8. The default is eight, for safety.
  */
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#  define MEM_ALIGNBYTES 8
+#else
+#define MEM_ALIGNBYTES $alignbytes
+#endif
 
 /* ARCHLIB:
  *     This variable, if defined, holds the name of the directory in
@@ -1115,6 +1140,32 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     so the default case (for NeXT) is big endian to catch them. 
  *     This might matter for NeXT 3.0.
  */
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#  ifdef __LITTLE_ENDIAN__
+#    if LONGSIZE == 4
+#      define BYTEORDER 0x1234
+#    else
+#      if LONGSIZE == 8
+#        define BYTEORDER 0x12345678
+#      endif
+#    endif
+#  else
+#    ifdef __BIG_ENDIAN__
+#      if LONGSIZE == 4
+#        define BYTEORDER 0x4321
+#      else
+#        if LONGSIZE == 8
+#          define BYTEORDER 0x87654321
+#        endif
+#      endif
+#    endif
+#  endif
+#  if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
+#    define BYTEORDER 0x4321
+#  endif
+#else
+#define BYTEORDER 0x$byteorder /* large digits for MSB */
+#endif /* NeXT */
 
 /* CAT2:
  *     This macro catenates 2 tokens together.
@@ -1122,10 +1173,23 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* STRINGIFY:
  *     This macro surrounds its token with double quotes.
  */
+#if $cpp_stuff == 1
 #define CAT2(a,b)      a/**/b
 #define STRINGIFY(a)   "a"
+               /* If you can get stringification with catify, tell me how! */
+#endif
+#if $cpp_stuff == 42
+#define PeRl_CaTiFy(a, b)      a ## b  
+#define PeRl_StGiFy(a) #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros.  See K&R 2nd ed., page 231. */
 #define CAT2(a,b)      PeRl_CaTiFy(a,b)
+#define StGiFy(a)      PeRl_StGiFy(a)
 #define STRINGIFY(a)   PeRl_StGiFy(a)
+#endif
+#if $cpp_stuff != 1 && $cpp_stuff != 42
+#   include "Bletch: How does this C preprocessor catenate tokens?"
+#endif
 
 /* CPPSTDIN:
  *     This symbol contains the first part of the string which will invoke
@@ -1157,6 +1221,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define CPPRUN "$cpprun"
 #define CPPLAST "$cpplast"
 
+/* HAS__FWALK:
+ *     This symbol, if defined, indicates that the _fwalk system call is
+ *     available to apply a function to all the file handles.
+ */
+#$d__fwalk HAS__FWALK          /**/
+
 /* HAS_ACCESS:
  *     This manifest constant lets the C program know that the access()
  *     system call is available to check for accessibility using real UID/GID.
@@ -1197,6 +1267,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* CSH:
  *     This symbol, if defined, contains the full pathname of csh.
  */
+#$d_csh HAS_CSH                /**/
+#ifdef HAS_CSH
+#define CSH "$full_csh"        /**/
+#endif
 
 /* DLSYM_NEEDS_UNDERSCORE:
  *     This symbol, if defined, indicates that we need to prepend an
@@ -1250,6 +1324,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_endsent HAS_ENDSERVENT             /**/
 
+/* FCNTL_CAN_LOCK:
+ *     This symbol, if defined, indicates that fcntl() can be used
+ *     for file locking.  Normally on Unix systems this is defined.
+ *     It may be undefined on VMS.
+ */
+#$d_fcntl_can_lock FCNTL_CAN_LOCK              /**/
+
 /* HAS_FD_SET:
  *     This symbol, when defined, indicates presence of the fd_set typedef
  *     in <sys/types.h>
@@ -1292,6 +1373,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fstatfs HAS_FSTATFS                /**/
 
+/* HAS_FSYNC:
+ *     This symbol, if defined, indicates that the fsync routine is
+ *     available to write a file's modified data and attributes to
+ *     permanent storage.
+ */
+#$d_fsync HAS_FSYNC            /**/
+
 /* HAS_FTELLO:
  *     This symbol, if defined, indicates that the ftello routine is
  *     available to ftell beyond 32 bits (useful for ILP32 hosts).
@@ -1379,6 +1467,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     contents of PHOSTNAME as a command to feed to the popen() routine
  *     to derive the host name.
  */
+#$d_gethname HAS_GETHOSTNAME   /**/
+#$d_uname HAS_UNAME            /**/
+#$d_phostname HAS_PHOSTNAME    /**/
+#ifdef HAS_PHOSTNAME
+#define PHOSTNAME "$aphostname"        /* How to get the host name */
+#endif
 
 /* HAS_GETHOST_PROTOS:
  *     This symbol, if defined, indicates that <netdb.h> includes
@@ -1426,12 +1520,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_getnetprotos       HAS_GETNET_PROTOS       /**/
 
+/* HAS_GETPAGESIZE:
+ *     This symbol, if defined, indicates that the getpagesize system call
+ *     is available to get system page size, which is the granularity of
+ *     many memory management calls.
+ */
+#$d_getpagsz HAS_GETPAGESIZE           /**/
+
 /* HAS_GETPROTOENT:
  *     This symbol, if defined, indicates that the getprotoent() routine is
  *     available to look up protocols in some data base or another.
  */
 #$d_getpent HAS_GETPROTOENT            /**/
 
+/* 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.
+ */
+#$d_getpgrp HAS_GETPGRP                /**/
+#$d_bsdgetpgrp USE_BSD_GETPGRP /**/
+
 /* HAS_GETPROTOBYNAME:
  *     This symbol, if defined, indicates that the getprotobyname()
  *     routine is available to look up protocols by their name.
@@ -1741,6 +1853,15 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_sanemcmp HAS_SANE_MEMCMP   /**/
 
+/* HAS_SBRK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the sbrk() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern void* sbrk _((int));
+ *             extern void* sbrk _((size_t));
+ */
+#$d_sbrkproto  HAS_SBRK_PROTO  /**/
+
 /* HAS_SEM:
  *     This symbol, if defined, indicates that the entire sem*(2) library is
  *     supported.
@@ -1778,6 +1899,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_setpent HAS_SETPROTOENT            /**/
 
+/* 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.
+ */
+#$d_setpgrp HAS_SETPGRP                /**/
+#$d_bsdsetpgrp USE_BSD_SETPGRP /**/
+
 /* HAS_SETPROCTITLE:
  *     This symbol, if defined, indicates that the setproctitle routine is
  *     available to set process title.
@@ -1841,6 +1974,16 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     traditional longjmp() if siglongjmp isn't available.
  *     See HAS_SIGSETJMP.
  */
+#$d_sigsetjmp 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
 
 /* HAS_SOCKET:
  *     This symbol, if defined, indicates that the BSD socket interface is
@@ -1905,6 +2048,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol is defined if this system has a stat structure declaring
  *     st_blksize and st_blocks.
  */
+#ifndef USE_STAT_BLOCKS
+#$d_statblks USE_STAT_BLOCKS   /**/
+#endif
 
 /* HAS_STRUCT_STATFS_F_FLAGS:
  *     This symbol, if defined, indicates that the struct statfs
@@ -1929,6 +2075,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fstatvfs HAS_FSTATVFS              /**/
 
+/* 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.
+ */
 /* 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
@@ -1947,11 +2100,34 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol is defined if the FILE_cnt macro can be used as an
  *     lvalue.
  */
+/* STDIO_PTR_LVAL_SETS_CNT:
+ *     This symbol is defined if using the FILE_ptr macro as an lvalue
+ *     to increase the pointer by n has the side effect of decreasing the
+ *     value of File_cnt(fp) by n.
+ */
+/* STDIO_PTR_LVAL_NOCHANGE_CNT:
+ *     This symbol is defined if using the FILE_ptr macro as an lvalue
+ *     to increase the pointer by n leaves File_cnt(fp) unchanged.
+ */
+#$d_stdstdio USE_STDIO_PTR     /**/
+#ifdef USE_STDIO_PTR
 #define FILE_ptr(fp)   $stdio_ptr
 #$d_stdio_ptr_lval STDIO_PTR_LVALUE            /**/
 #define FILE_cnt(fp)   $stdio_cnt
 #$d_stdio_cnt_lval STDIO_CNT_LVALUE            /**/
+#$d_stdio_ptr_lval_sets_cnt STDIO_PTR_LVAL_SETS_CNT    /**/
+#$d_stdio_ptr_lval_nochange_cnt STDIO_PTR_LVAL_NOCHANGE_CNT    /**/
+#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
@@ -1963,8 +2139,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     structure pointed to its argument. This macro will always be defined
  *     if USE_STDIO_BASE is defined.
  */
+#$d_stdiobase USE_STDIO_BASE   /**/
+#ifdef USE_STDIO_BASE
 #define FILE_base(fp)  $stdio_base
 #define FILE_bufsiz(fp)        $stdio_bufsiz
+#endif
 
 /* HAS_STRERROR:
  *     This symbol, if defined, indicates that the strerror routine is
@@ -1997,6 +2176,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_strtoll HAS_STRTOLL                /**/
 
+/* HAS_STRTOQ:
+ *     This symbol, if defined, indicates that the strtoq routine is
+ *     available to convert strings to long longs (quads).
+ */
+#$d_strtoq HAS_STRTOQ          /**/
+
+/* HAS_STRTOUL:
+ *     This symbol, if defined, indicates that the strtoul routine is
+ *     available to provide conversion of strings to unsigned long.
+ */
+#$d_strtoul HAS_STRTOUL        /**/
+
 /* HAS_STRTOULL:
  *     This symbol, if defined, indicates that the strtoull routine is
  *     available to convert strings to unsigned long longs.
@@ -2159,6 +2350,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     typedef'ed information.  This is only required if you have
  *     getgroups() or setgroups()..
  */
+#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
+#define Groups_t $groupstype   /* Type for 2nd arg to [sg]etgroups() */
+#endif
 
 /* DB_Prefix_t:
  *     This symbol contains the type of the prefix structure element
@@ -2484,6 +2678,17 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define RD_NODATA $rd_nodata
 #$d_eofnblk EOF_NONBLOCK
 
+/* NEED_VA_COPY:
+ *     This symbol, if defined, indicates that the system stores
+ *     the variable argument list datatype, va_list, in a format
+ *     that cannot be copied by simple assignment, so that some
+ *     other means must be used when copying is required.
+ *     As such systems vary in their provision (or non-provision)
+ *     of copying mechanisms, handy.h defines a platform-
+ *     independent macro, Perl_va_copy(src, dst), to do the job.
+ */
+#$need_va_copy NEED_VA_COPY            /**/
+
 /* Netdb_host_t:
  *     This symbol holds the type used for the 1st argument
  *     to gethostbyaddr().
@@ -2597,6 +2802,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define        U16TYPE         $u16type        /**/
 #define        I32TYPE         $i32type        /**/
 #define        U32TYPE         $u32type        /**/
+#ifdef HAS_QUAD
+#define        I64TYPE         $i64type        /**/
+#define        U64TYPE         $u64type        /**/
+#endif
 #define        NVTYPE          $nvtype         /**/
 #define        IVSIZE          $ivsize         /**/
 #define        UVSIZE          $uvsize         /**/
@@ -2606,6 +2815,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define        U16SIZE         $u16size        /**/
 #define        I32SIZE         $i32size        /**/
 #define        U32SIZE         $u32size        /**/
+#ifdef HAS_QUAD
+#define        I64SIZE         $i64size        /**/
+#define        U64SIZE         $u64size        /**/
+#endif
 #define        NVSIZE          $nvsize         /**/
 #$d_nv_preserves_uv    NV_PRESERVES_UV
 #define        NV_PRESERVES_UV_BITS    $d_nv_preserves_uv_bits
@@ -2626,6 +2839,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol defines the format string used for printing a Perl UV
  *     as an unsigned hexadecimal integer in lowercase abcdef.
  */
+/* UVXf:
+ *     This symbol defines the format string used for printing a Perl UV
+ *     as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
 /* NVef:
  *     This symbol defines the format string used for printing a Perl NV
  *     using %e-ish floating point format.
@@ -2642,6 +2859,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define        UVuf            $uvuformat              /**/
 #define        UVof            $uvoformat              /**/
 #define        UVxf            $uvxformat              /**/
+#define        UVXf            $uvXUformat             /**/
 #define        NVef            $nveformat              /**/
 #define        NVff            $nvfformat              /**/
 #define        NVgf            $nvgformat              /**/
@@ -2744,8 +2962,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     The last element is 0, corresponding to the 0 at the end of
  *     the sig_name list.
  */
+/* SIG_SIZE:
+ *     This variable contains the number of elements of the sig_name
+ *     and sig_num arrays, excluding the final NULL entry.
+ */
 #define SIG_NAME $sig_name_init                /**/
 #define SIG_NUM  $sig_num_init         /**/
+#define SIG_SIZE $sig_size                     /**/
 
 /* SITEARCH:
  *     This symbol contains the name of the private library for this package.
@@ -2825,6 +3048,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #define STARTPERL "$startperl"         /**/
 
+/* STDCHAR:
+ *     This symbol is defined to be the type of char used in stdio.h.
+ *     It has the values "unsigned char" or "char".
+ */
+#define STDCHAR $stdchar       /**/
+
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
  *     holding the stdio streams.
@@ -2877,32 +3106,54 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     be able to run the resulting executable in a 32-bit CPU at all or
  *     you may need at least to reboot your OS to 64-bit mode.
  */
+#ifndef USE_64_BIT_INT
+#$use64bitint  USE_64_BIT_INT          /**/
+#endif
+
+#ifndef USE_64_BIT_ALL
+#$use64bitall  USE_64_BIT_ALL          /**/
+#endif
 
 /* USE_LARGE_FILES:
  *     This symbol, if defined, indicates that large file support
  *     should be used when available.
  */
+#ifndef USE_LARGE_FILES
+#$uselargefiles        USE_LARGE_FILES         /**/
+#endif
 
 /* USE_LONG_DOUBLE:
  *     This symbol, if defined, indicates that long doubles should
  *     be used when available.
  */
+#ifndef USE_LONG_DOUBLE
+#$uselongdouble        USE_LONG_DOUBLE         /**/
+#endif
 
 /* USE_MORE_BITS:
  *     This symbol, if defined, indicates that 64-bit interfaces and
  *     long doubles should be used when available.
  */
+#ifndef USE_MORE_BITS
+#$usemorebits  USE_MORE_BITS           /**/
+#endif
 
 /* MULTIPLICITY:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use multiplicity.
  */
+#ifndef MULTIPLICITY
+#$usemultiplicity      MULTIPLICITY            /**/
+#endif
 
 /* 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.
  */
+#ifndef USE_PERLIO
+#$useperlio    USE_PERLIO              /**/
+#endif
 
 /* USE_SOCKS:
  *     This symbol, if defined, indicates that Perl should
@@ -2926,6 +3177,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$use5005threads       USE_5005THREADS         /**/
 #$useithreads  USE_ITHREADS            /**/
+#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
+#define                USE_THREADS             /* until src is revised*/
+#endif
 #$d_oldpthreads        OLD_PTHREADS_API                /**/
 
 /* PERL_VENDORARCH:
@@ -2958,6 +3212,31 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"               /**/
 #$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem"            /**/
 
+/* 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 $defvoidused
+#endif
+#define VOIDFLAGS $voidflags
+#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
+#define void int               /* is void to be avoided? */
+#define M_VOID                 /* Xenix strikes again */
+#endif
+
 /* PERL_XS_APIVERSION:
  *     This variable contains the version of the oldest perl binary
  *     compatible with the present perl.  perl.c:incpush() and
@@ -2993,5 +3272,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define PERL_XS_APIVERSION "$xs_apiversion"
 #define PERL_PM_APIVERSION "$pm_apiversion"
 
+/* HAS_SIGPROCMASK:
+ *     This symbol, if defined, indicates that the sigprocmask
+ *     system call is available to examine or change the signal mask
+ *     of the calling process.
+ */
+#$d_sigprocmask HAS_SIGPROCMASK                /**/
+
+/* HAS_SOCKATMARK:
+ *     This symbol, if defined, indicates that the sockatmark routine is
+ *     available to test whether a socket is at the out-of-band mark.
+ */
+#$d_sockatmark HAS_SOCKATMARK          /**/
+
 #endif
 !GROK!THIS!