This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Last patch needed to get Perl5.7 to build natively on VOS
[perl5.git] / config_h.SH
index 52f4cb8..37ad71a 100644 (file)
@@ -1,29 +1,35 @@
-case $CONFIG in
+case "$CONFIG_SH" in
+'') CONFIG_SH=config.sh ;;
+esac
+case "$CONFIG_H" in
+'') CONFIG_H=config.h ;;
+esac
+case $PERL_CONFIG_SH in
 '')
-       if test -f config.sh; then TOP=.;
-       elif test -f ../config.sh; then TOP=..;
-       elif test -f ../../config.sh; then TOP=../..;
-       elif test -f ../../../config.sh; then TOP=../../..;
-       elif test -f ../../../../config.sh; then TOP=../../../..;
+       if test -f $CONFIG_SH; then TOP=.;
+       elif test -f ../$CONFIG_SH; then TOP=..;
+       elif test -f ../../$CONFIG_SH; then TOP=../..;
+       elif test -f ../../../$CONFIG_SH; then TOP=../../..;
+       elif test -f ../../../../$CONFIG_SH; then TOP=../../../..;
        else
-               echo "Can't find config.sh."; exit 1
+               echo "Can't find $CONFIG_SH."; exit 1
        fi
-       . $TOP/config.sh
+       . $TOP/$CONFIG_SH
        ;;
 esac
 case "$0" in
 */*) cd `expr X$0 : 'X\(.*\)/'` ;;
 esac
-echo "Extracting config.h (with variable substitutions)"
-sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
+echo "Extracting $CONFIG_H (with variable substitutions)"
+sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
 /*
  * This file was produced by running the config_h.SH script, which
- * gets its values from config.sh, which is generally produced by
+ * gets its values from $CONFIG_SH, which is generally produced by
  * running Configure.
  *
  * Feel free to modify any of this as the need arises.  Note, however,
  * 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.
+ * For a more permanent change edit $CONFIG_SH and rerun config_h.SH.
  *
  * \$Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
  */
@@ -106,12 +112,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define const
 #endif
 
-/* HAS_CRYPT:
- *     This symbol, if defined, indicates that the crypt routine is available
- *     to encrypt passwords and the like.
- */
-#$d_crypt HAS_CRYPT            /**/
-
 /* HAS_CUSERID:
  *     This symbol, if defined, indicates that the cuserid routine is
  *     available to get character login names.
@@ -139,26 +139,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_dlerror 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.
- */
-#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW     /**/
-#$d_dosuid DOSUID              /**/
-
 /* HAS_DUP2:
  *     This symbol, if defined, indicates that the dup2 routine is
  *     available to duplicate file descriptors.
@@ -238,17 +218,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.
@@ -503,18 +472,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.
@@ -622,12 +579,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.
@@ -688,6 +639,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_umask HAS_UMASK            /**/
 
+/* HAS_USLEEP:
+ *     This symbol, if defined, indicates that the usleep routine is
+ *     available to let the process sleep on a sub-second accuracy.
+ */
+#$d_usleep HAS_USLEEP          /**/
+
 /* HASVOLATILE:
  *     This symbol, if defined, indicates that this C compiler knows about
  *     the volatile declaration.
@@ -858,7 +815,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
@@ -954,17 +916,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_values I_VALUES            /**/
 
-/* 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>.
- */
-#$i_stdarg I_STDARG            /**/
-#$i_varargs I_VARARGS  /**/
-
 /* I_VFORK:
  *     This symbol, if defined, indicates to the C program that it should
  *     include vfork.h.
@@ -989,27 +940,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define        _(args) ()
 #endif
 
-/* 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 "$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.
- */
-#$crosscompile CROSSCOMPILE            /**/
-
 /* INTSIZE:
  *     This symbol contains the value of sizeof(int) so that the C
  *     preprocessor can make decisions based on it.
@@ -1080,14 +1010,20 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     by Configure.  You shouldn't rely on it too much; the specific
  *     feature tests from Configure are generally more reliable.
  */
+/* OSVERS:
+ *     This symbol contains the version 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 OSNAME "$osname"               /**/
+#define OSVERS "$osvers"               /**/
 
 /* MEM_ALIGNBYTES:
  *     This symbol contains the number of bytes required to align a
  *     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)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
 #  define MEM_ALIGNBYTES 8
 #else
 #define MEM_ALIGNBYTES $alignbytes
@@ -1164,7 +1100,7 @@ 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)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
 #  ifdef __LITTLE_ENDIAN__
 #    if LONGSIZE == 4
 #      define BYTEORDER 0x1234
@@ -1198,21 +1134,21 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This macro surrounds its token with double quotes.
  */
 #if $cpp_stuff == 1
-#  define CAT2(a,b)    a/**/b
-#  define STRINGIFY(a) "a"
+#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
+#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)
+#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?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
@@ -1245,6 +1181,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.
@@ -1273,12 +1215,36 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_castneg    CASTNEGFLOAT            /**/
 #define CASTFLAGS $castflags           /**/
 
+/* HAS_CLASS:
+ *     This symbol, if defined, indicates that the class routine is
+ *     available to classify doubles.  Available for example in AIX.
+ *     The returned values are defined in <float.h> and are:
+ *
+ *     FP_PLUS_NORM    Positive normalized, nonzero
+ *     FP_MINUS_NORM   Negative normalized, nonzero
+ *     FP_PLUS_DENORM  Positive denormalized, nonzero
+ *     FP_MINUS_DENORM Negative denormalized, nonzero
+ *     FP_PLUS_ZERO    +0.0
+ *     FP_MINUS_ZERO   -0.0
+ *     FP_PLUS_INF     +INF
+ *     FP_MINUS_INF    -INF
+ *     FP_NANS         Signaling Not a Number (NaNS)
+ *     FP_NANQ         Quiet Not a Number (NaNQ)
+ */
+#$d_class HAS_CLASS            /**/
+
 /* VOID_CLOSEDIR:
  *     This symbol, if defined, indicates that the closedir() routine
  *     does not return a value.
  */
 #$d_void_closedir VOID_CLOSEDIR                /**/
 
+/* HAS_STRUCT_CMSGHDR:
+ *     This symbol, if defined, indicates that the struct cmsghdr
+ *     is supported.
+ */
+#$d_cmsghdr_s HAS_STRUCT_CMSGHDR       /**/
+
 /* HAS_CSH:
  *     This symbol, if defined, indicates that the C-shell exists.
  */
@@ -1342,11 +1308,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_endsent HAS_ENDSERVENT             /**/
 
-/* HAS_ENDSPENT:
- *     This symbol, if defined, indicates that the endspent system call is
- *     available to finalize the scan of SysV shadow password entries.
+/* HAS_FCHDIR:
+ *     This symbol, if defined, indicates that the fchdir routine is
+ *     available to change directory using a file descriptor.
+ */
+#$d_fchdir HAS_FCHDIR          /**/
+
+/* 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_endspent HAS_ENDSPENT              /**/
+#$d_fcntl_can_lock FCNTL_CAN_LOCK              /**/
 
 /* HAS_FD_SET:
  *     This symbol, when defined, indicates presence of the fd_set typedef
@@ -1354,11 +1327,87 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fd_set HAS_FD_SET  /**/
 
+/* HAS_FINITE:
+ *     This symbol, if defined, indicates that the finite routine is
+ *     available to check whether a double is finite (non-infinity non-NaN).
+ */
+#$d_finite HAS_FINITE          /**/
+
+/* HAS_FINITEL:
+ *     This symbol, if defined, indicates that the finitel routine is
+ *     available to check whether a long double is finite
+ *     (non-infinity non-NaN).
+ */
+#$d_finitel HAS_FINITEL                /**/
+
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#$d_flexfnam   FLEXFILENAMES           /**/
+
+/* HAS_FP_CLASS:
+ *     This symbol, if defined, indicates that the fp_class routine is
+ *     available to classify doubles.  Available for example in Digital UNIX.
+ *     The returned values are defined in <math.h> and are:
+ *
+ *     FP_SNAN           Signaling NaN (Not-a-Number)
+ *     FP_QNAN           Quiet NaN (Not-a-Number)
+ *     FP_POS_INF        +infinity
+ *     FP_NEG_INF        -infinity
+ *     FP_POS_NORM       Positive normalized
+ *     FP_NEG_NORM       Negative normalized
+ *     FP_POS_DENORM     Positive denormalized
+ *     FP_NEG_DENORM     Negative denormalized
+ *     FP_POS_ZERO       +0.0 (positive zero)
+ *     FP_NEG_ZERO       -0.0 (negative zero)
+ */
+#$d_fp_class HAS_FP_CLASS              /**/
+
+/* HAS_FPCLASS:
+ *     This symbol, if defined, indicates that the fpclass routine is
+ *     available to classify doubles.  Available for example in Solaris/SVR4.
+ *     The returned values are defined in <ieeefp.h> and are:
+ *
+ *     FP_SNAN         signaling NaN
+ *     FP_QNAN         quiet NaN
+ *     FP_NINF         negative infinity
+ *     FP_PINF         positive infinity
+ *     FP_NDENORM      negative denormalized non-zero
+ *     FP_PDENORM      positive denormalized non-zero
+ *     FP_NZERO        negative zero
+ *     FP_PZERO        positive zero
+ *     FP_NNORM        negative normalized non-zero
+ *     FP_PNORM        positive normalized non-zero
+ */
+#$d_fpclass HAS_FPCLASS                /**/
+
+/* HAS_FPCLASSIFY:
+ *     This symbol, if defined, indicates that the fpclassify routine is
+ *     available to classify doubles.  Available for example in HP-UX.
+ *     The returned values are defined in <math.h> and are
+ *
+ *           FP_NORMAL     Normalized
+ *           FP_ZERO       Zero
+ *           FP_INFINITE   Infinity
+ *           FP_SUBNORMAL  Denormalized
+ *           FP_NAN        NaN
+ *
+ */
+#$d_fpclassify HAS_FPCLASSIFY          /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 #$d_fpos64_t   HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL          /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
@@ -1377,6 +1426,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).
@@ -1406,6 +1462,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getcwd HAS_GETCWD          /**/
 
+/* HAS_GETESPWNAM:
+ *     This symbol, if defined, indicates that the getespwnam system call is
+ *     available to retrieve enchanced (shadow) password entries by name.
+ */
+#$d_getespwnam HAS_GETESPWNAM          /**/
+
 /* HAS_GETFSSTAT:
  *     This symbol, if defined, indicates that the getfsstat routine is
  *     available to stat filesystems in bulk.
@@ -1473,6 +1535,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_gethostprotos      HAS_GETHOST_PROTOS      /**/
 
+/* HAS_GETITIMER:
+ *     This symbol, if defined, indicates that the getitimer routine is
+ *     available to return interval timers.
+ */
+#$d_getitimer HAS_GETITIMER            /**/
+
 /* HAS_GETMNT:
  *     This symbol, if defined, indicates that the getmnt routine is
  *     available to get filesystem mount info by filename.
@@ -1511,12 +1579,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.
@@ -1536,6 +1622,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getprotoprotos     HAS_GETPROTO_PROTOS     /**/
 
+/* HAS_GETPRPWNAM:
+ *     This symbol, if defined, indicates that the getprpwnam system call is
+ *     available to retrieve protected (shadow) password entries by name.
+ */
+#$d_getprpwnam HAS_GETPRPWNAM          /**/
+
 /* HAS_GETPWENT:
  *     This symbol, if defined, indicates that the getpwent routine is
  *     available for sequential access of the passwd database.
@@ -1557,12 +1649,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getservprotos      HAS_GETSERV_PROTOS      /**/
 
-/* HAS_GETSPENT:
- *     This symbol, if defined, indicates that the getspent system call is
- *     available to retrieve SysV shadow password entries sequentially.
- */
-#$d_getspent HAS_GETSPENT              /**/
-
 /* HAS_GETSPNAM:
  *     This symbol, if defined, indicates that the getspnam system call is
  *     available to retrieve SysV shadow password entries by name.
@@ -1619,12 +1705,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_htonl HAS_NTOHL            /**/
 #$d_htonl HAS_NTOHS            /**/
 
-/* HAS_ICONV:
- *     This symbol, if defined, indicates that the iconv routine is
- *     available to do character set conversions.
- */
-#$d_iconv HAS_ICONV            /**/
-
 /* HAS_INT64_T:
  *     This symbol will defined if the C compiler supports int64_t.
  *     Usually the <inttypes.h> needs to be included, but sometimes
@@ -1638,6 +1718,37 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_isascii HAS_ISASCII                /**/
 
+/* HAS_ISFINITE:
+ *     This symbol, if defined, indicates that the isfinite routine is
+ *     available to check whether a double is finite (non-infinity non-NaN).
+ */
+#$d_isfinite HAS_ISFINITE              /**/
+
+/* HAS_ISINF:
+ *     This symbol, if defined, indicates that the isinf routine is
+ *     available to check whether a double is an infinity.
+ */
+#$d_isinf HAS_ISINF            /**/
+
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN            /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL          /**/
+
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
+ */
+#$d_lchown HAS_LCHOWN          /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
@@ -1725,6 +1836,21 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_mmap HAS_MMAP              /**/
 #define Mmap_t $mmaptype       /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/* HAS_MODFL_POW32_BUG:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     broken for long doubles >= pow(2, 32).
+ *     For example from 4294967303.150000 one would get 4294967302.000000
+ *     and 1.150000.  The bug has been seen in certain versions of glibc,
+ *     release 2.2.2 is known to be okay.
+ */
+#$d_modfl HAS_MODFL            /**/
+#$d_modfl_pow32_bug HAS_MODFL_POW32_BUG                /**/
+
 /* HAS_MPROTECT:
  *     This symbol, if defined, indicates that the mprotect system call is
  *     available to modify the access protection of a memory mapped file.
@@ -1737,6 +1863,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_msg HAS_MSG                /**/
 
+/* HAS_STRUCT_MSGHDR:
+ *     This symbol, if defined, indicates that the struct msghdr
+ *     is supported.
+ */
+#$d_msghdr_s HAS_STRUCT_MSGHDR /**/
+
 /* HAS_OFF64_T:
  *     This symbol will be defined if the C compiler supports off64_t.
  */
@@ -1777,9 +1909,22 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define SCHED_YIELD    $sched_yield    /**/
 #$d_sched_yield HAS_SCHED_YIELD        /**/
 
+/* HAS_READV:
+ *     This symbol, if defined, indicates that the readv routine is
+ *     available to do gather reads.  You will also need <sys/uio.h>
+ *     and there I_SYSUIO.
+ */
+#$d_readv HAS_READV            /**/
+
+/* HAS_RECVMSG:
+ *     This symbol, if defined, indicates that the recvmsg routine is
+ *     available to send structured socket messages.
+ */
+#$d_recvmsg HAS_RECVMSG                /**/
+
 /* HAS_SAFE_BCOPY:
  *     This symbol, if defined, indicates that the bcopy routine is available
- *     to copy potentially overlapping memory blocks. Otherwise you should
+ *     to copy potentially overlapping memory blocks. Normally, you should
  *     probably use memmove() or memcpy(). If neither is defined, roll your
  *     own version.
  */
@@ -1787,9 +1932,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 
 /* HAS_SAFE_MEMCPY:
  *     This symbol, if defined, indicates that the memcpy routine is available
- *     to copy potentially overlapping memory blocks. Otherwise you should
- *     probably use memmove() or memcpy(). If neither is defined, roll your
- *     own version.
+ *     to copy potentially overlapping memory blocks.  If you need to
+ *     copy overlapping memory blocks, you should check HAS_MEMMOVE and
+ *     use memmove() instead, if available.
  */
 #$d_safemcpy HAS_SAFE_MEMCPY   /**/
 
@@ -1800,12 +1945,27 @@ 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.
  */
 #$d_sem HAS_SEM                /**/
 
+/* HAS_SENDMSG:
+ *     This symbol, if defined, indicates that the sendmsg routine is
+ *     available to send structured socket messages.
+ */
+#$d_sendmsg HAS_SENDMSG                /**/
+
 /* HAS_SETGRENT:
  *     This symbol, if defined, indicates that the setgrent routine is
  *     available for initializing sequential access of the group database.
@@ -1825,6 +1985,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_sethent HAS_SETHOSTENT             /**/
 
+/* HAS_SETITIMER:
+ *     This symbol, if defined, indicates that the setitimer routine is
+ *     available to set interval timers.
+ */
+#$d_setitimer HAS_SETITIMER            /**/
+
 /* HAS_SETNETENT:
  *     This symbol, if defined, indicates that the setnetent() routine is
  *     available.
@@ -1837,6 +2003,24 @@ 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.
+ */
+#$d_setproctitle HAS_SETPROCTITLE              /**/
+
 /* HAS_SETPWENT:
  *     This symbol, if defined, indicates that the setpwent routine is
  *     available for initializing sequential access of the passwd database.
@@ -1849,12 +2033,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_setsent HAS_SETSERVENT             /**/
 
-/* HAS_SETSPENT:
- *     This symbol, if defined, indicates that the setspent system call is
- *     available to initialize the scan of SysV shadow password entries.
- */
-#$d_setspent HAS_SETSPENT              /**/
-
 /* HAS_SETVBUF:
  *     This symbol, if defined, indicates that the setvbuf routine is
  *     available to change buffering on an open stdio stream.
@@ -1958,6 +2136,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_msg_proxy  HAS_MSG_PROXY   /**/
 #$d_scm_rights HAS_SCM_RIGHTS  /**/
 
+/* HAS_SOCKS5_INIT:
+ *     This symbol, if defined, indicates that the socks5_init routine is
+ *     available to initialize SOCKS 5.
+ */
+#$d_socks5_init HAS_SOCKS5_INIT                /**/
+
 /* HAS_SQRTL:
  *     This symbol, if defined, indicates that the sqrtl routine is
  *     available to do long double square roots.
@@ -2020,12 +2204,23 @@ 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:
@@ -2085,6 +2280,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.
@@ -2119,6 +2326,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_times HAS_TIMES            /**/
 
+/* HAS_UALARM:
+ *     This symbol, if defined, indicates that the ualarm routine is
+ *     available to do alarms with microsecond granularity.
+ */
+#$d_ualarm HAS_UALARM          /**/
+
 /* HAS_UNION_SEMUN:
  *     This symbol, if defined, indicates that the union semun is
  *     defined by including <sys/sem.h>.  If not, the user code
@@ -2141,6 +2354,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_semctl_semun USE_SEMCTL_SEMUN      /**/
 #$d_semctl_semid_ds USE_SEMCTL_SEMID_DS        /**/
 
+/* HAS_UNORDERED:
+ *     This symbol, if defined, indicates that the unordered routine is
+ *     available to check whether two doubles are unordered
+ *     (effectively: whether either of them is NaN)
+ */
+#$d_unordered HAS_UNORDERED            /**/
+
 /* HAS_USTAT:
  *     This symbol, if defined, indicates that the ustat system call is
  *     available to query file system statistics by dev_t.
@@ -2174,6 +2394,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_vprintf HAS_VPRINTF        /**/
 #$d_charvspr USE_CHAR_VSPRINTF         /**/
 
+/* HAS_WRITEV:
+ *     This symbol, if defined, indicates that the writev routine is
+ *     available to do scatter writes.
+ */
+#$d_writev HAS_WRITEV          /**/
+
 /* USE_DYNAMIC_LOADING:
  *     This symbol, if defined, indicates that dynamic loading of
  *     some sort is available.
@@ -2245,7 +2471,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t $groupstype   /* Type for 2nd arg to [sg]etgroups() */
@@ -2261,8 +2487,31 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     in the <db.h> header file.  In older versions of DB, it was
  *     int, while in newer ones it is size_t.
  */
+/* DB_VERSION_MAJOR_CFG:
+ *     This symbol, if defined, defines the major version number of
+ *     Berkeley DB found in the <db.h> header when Perl was configured.
+ */
+/* DB_VERSION_MINOR_CFG:
+ *     This symbol, if defined, defines the minor version number of
+ *     Berkeley DB found in the <db.h> header when Perl was configured.
+ *     For DB version 1 this is always 0.
+ */
+/* DB_VERSION_PATCH_CFG:
+ *     This symbol, if defined, defines the patch version number of
+ *     Berkeley DB found in the <db.h> header when Perl was configured.
+ *     For DB version 1 this is always 0.
+ */
 #define DB_Hash_t      $db_hashtype            /**/
 #define DB_Prefix_t    $db_prefixtype          /**/
+#define DB_VERSION_MAJOR_CFG   $db_version_major       /**/
+#define DB_VERSION_MINOR_CFG   $db_version_minor       /**/
+#define DB_VERSION_PATCH_CFG   $db_version_patch       /**/
+
+/* I_FP_CLASS:
+ *     This symbol, if defined, indicates that <fp_class.h> exists and
+ *     should be included.
+ */
+#$i_fp_class   I_FP_CLASS              /**/
 
 /* I_GRP:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2275,12 +2524,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$i_grp I_GRP          /**/
 #$d_grpasswd GRPASSWD  /**/
 
-/* I_ICONV:
- *     This symbol, if defined, indicates that <iconv.h> exists and
- *     should be included.
- */
-#$i_iconv      I_ICONV         /**/
-
 /* I_IEEEFP:
  *     This symbol, if defined, indicates that <ieeefp.h> exists and
  *     should be included.
@@ -2293,6 +2536,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_inttypes   I_INTTYPES                /**/
 
+/* I_LIBUTIL:
+ *     This symbol, if defined, indicates that <libutil.h> exists and
+ *     should be included.
+ */
+#$i_libutil    I_LIBUTIL               /**/
+
 /* I_MACH_CTHREADS:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <mach/cthreads.h>.
@@ -2323,6 +2572,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_poll       I_POLL          /**/
 
+/* I_PROT:
+ *     This symbol, if defined, indicates that <prot.h> exists and
+ *     should be included.
+ */
+#$i_prot       I_PROT          /**/
+
 /* I_PTHREAD:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <pthread.h>.
@@ -2485,8 +2740,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol, if defined, contains the string used by stdio to
  *     format long doubles (format 'g') for output.
  */
+/* PERL_PRIeldbl:
+ *     This symbol, if defined, contains the string used by stdio to
+ *     format long doubles (format 'e') for output.
+ */
+/* PERL_SCNfldbl:
+ *     This symbol, if defined, contains the string used by stdio to
+ *     format long doubles (format 'f') for input.
+ */
 #$d_PRIfldbl PERL_PRIfldbl     $sPRIfldbl      /**/
 #$d_PRIgldbl PERL_PRIgldbl     $sPRIgldbl      /**/
+#$d_PRIeldbl PERL_PRIeldbl     $sPRIeldbl      /**/
+#$d_SCNfldbl PERL_SCNfldbl     $sSCNfldbl      /**/
 
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
@@ -2553,6 +2818,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().
@@ -2574,6 +2850,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define Netdb_name_t           $netdb_name_type /**/
 #define Netdb_net_t            $netdb_net_type /**/
 
+/* PERL_OTHERLIBDIRS:
+ *     This variable contains a colon-separated set of paths for the perl
+ *     binary to search for additional library files or modules.
+ *     These directories will be tacked to the end of @INC.
+ *     Perl will automatically search below each path for version-
+ *     and architecture-specific directories.  See PERL_INC_VERSION_LIST
+ *     for more details.
+ */
+#$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs"                /**/
+
 /* IVTYPE:
  *     This symbol defines the C type used for Perl's IV.
  */
@@ -2637,9 +2923,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
- *     can preserve all the bit of a variable of type UVSIZE.
+ *     can preserve all the bits of a variable of type UVTYPE.
+ */
+/* NV_PRESERVES_UV_BITS:
+ *     This symbol contains the number of bits a variable of type NVTYPE
+ *     can preserve of a variable of type UVTYPE.
  */
 #define        IVTYPE          $ivtype         /**/
 #define        UVTYPE          $uvtype         /**/
@@ -2666,7 +2959,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #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
 
 /* IVdf:
  *     This symbol defines the format string used for printing a Perl IV
@@ -2682,12 +2977,32 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 /* UVxf:
  *     This symbol defines the format string used for printing a Perl UV
- *     as an unsigned hexadecimal integer.
+ *     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.
+ */
+/* NVff:
+ *     This symbol defines the format string used for printing a Perl NV
+ *     using %f-ish floating point format.
+ */
+/* NVgf:
+ *     This symbol defines the format string used for printing a Perl NV
+ *     using %g-ish floating point format.
  */
 #define        IVdf            $ivdformat              /**/
 #define        UVuf            $uvuformat              /**/
 #define        UVof            $uvoformat              /**/
 #define        UVxf            $uvxformat              /**/
+#define        UVXf            $uvXUformat             /**/
+#define        NVef            $nveformat              /**/
+#define        NVff            $nvfformat              /**/
+#define        NVgf            $nvgformat              /**/
 
 /* Pid_t:
  *     This symbol holds the type used to declare process ids in the kernel.
@@ -2721,7 +3036,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This macro is to be used to generate uniformly distributed
  *     random numbers over the range [0., 1.[.  You may have to supply
  *     an 'extern double drand48();' in your program since SunOS 4.1.3
- *     doesn't provide you with anything relevant in it's headers.
+ *     doesn't provide you with anything relevant in its headers.
  *     See HAS_DRAND48_PROTO.
  */
 /* Rand_seed_t:
@@ -2787,8 +3102,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.
@@ -2868,6 +3188,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.
@@ -2989,12 +3315,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol, if defined, indicates that Perl should
  *     be built to use the old draft POSIX threads API.
  */
+/* USE_REENTRANT_API:
+ *     This symbol, if defined, indicates that Perl should
+ *     try to use the various _r versions of library functions.
+ *     This is extremely experimental.
+ */
 #$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                /**/
+#$usereentrant USE_REENTRANT_API       /**/
 
 /* PERL_VENDORARCH:
  *     If defined, this symbol contains the name of a private library.
@@ -3086,18 +3418,208 @@ 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_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_CRYPT:
+ *     This symbol, if defined, indicates that the crypt routine is available
+ *     to encrypt passwords and the like.
  */
-#$d_lchown HAS_LCHOWN          /**/
+#$d_crypt HAS_CRYPT            /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
+/* 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.
  */
-#$d_flexfnam   FLEXFILENAMES           /**/
+/* 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.
+ */
+#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW     /**/
+#$d_dosuid DOSUID              /**/
+
+/* 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>.
+ */
+#$i_stdarg I_STDARG            /**/
+#$i_varargs I_VARARGS  /**/
+
+/* 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 "$sh"  /**/
+
+/* USE_CROSS_COMPILE:
+ *     This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ *     This symbol, if defined, indicates the target architecture
+ *     Perl has been cross-compiled to.  Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+#$usecrosscompile      USE_CROSS_COMPILE       /**/
+#define        PERL_TARGETARCH "$targetarch"   /**/
+#endif
+
+/* HAS_DBMINIT_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the dbminit() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int dbminit(char *);
+ */
+#$d_dbminitproto       HAS_DBMINIT_PROTO       /**/
+
+/* HAS_DIRFD:
+ *     This manifest constant lets the C program know that dirfd
+ *     is available.
+ */
+#$d_dirfd HAS_DIRFD            /**/
+
+/* HAS_FLOCK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the flock() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int flock(int, int);
+ */
+#$d_flockproto HAS_FLOCK_PROTO /**/
+
+/* HAS_FPCLASSL:
+ *     This symbol, if defined, indicates that the fpclassl routine is
+ *     available to classify long doubles.  Available for example in IRIX.
+ *     The returned values are defined in <ieeefp.h> and are:
+ *
+ *     FP_SNAN         signaling NaN
+ *     FP_QNAN         quiet NaN
+ *     FP_NINF         negative infinity
+ *     FP_PINF         positive infinity
+ *     FP_NDENORM      negative denormalized non-zero
+ *     FP_PDENORM      positive denormalized non-zero
+ *     FP_NZERO        negative zero
+ *     FP_PZERO        positive zero
+ *     FP_NNORM        negative normalized non-zero
+ *     FP_PNORM        positive normalized non-zero
+ */
+#$d_fpclassl HAS_FPCLASSL              /**/
+
+/* HAS_NL_LANGINFO:
+ *     This symbol, if defined, indicates that the nl_langinfo routine is
+ *     available to return local data.  You will also need <langinfo.h>
+ *     and therefore I_LANGINFO.
+ */
+#$d_nl_langinfo HAS_NL_LANGINFO                /**/
+
+/* HAS_PROCSELFEXE:
+ *     This symbol is defined if PROCSELFEXE_PATH is a symlink
+ *     to the absolute pathname of the executing program.
+ */
+/* PROCSELFEXE_PATH:
+ *     If HAS_PROCSELFEXE is defined this symbol is the filename
+ *     of the symbolic link pointing to the absolute pathname of
+ *     the executing program.
+ */
+#$d_procselfexe HAS_PROCSELFEXE        /**/
+#if defined(HAS_PROCSELFEXE) && !defined(PROCSELFEXE_PATH)
+#define PROCSELFEXE_PATH       $procselfexe    /**/
+#endif
+
+/* 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          /**/
+
+/* HAS_SOCKATMARK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the sockatmark() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int sockatmark _((int));
+ */
+#$d_sockatmarkproto    HAS_SOCKATMARK_PROTO    /**/
+
+/* HAS_SETRESGID_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the setresgid() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
+ */
+#$d_sresgproto HAS_SETRESGID_PROTO     /**/
+
+/* HAS_SETRESUID_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the setresuid() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
+ */
+#$d_sresuproto HAS_SETRESUID_PROTO     /**/
+
+/* HAS_STRFTIME:
+ *     This symbol, if defined, indicates that the strftime routine is
+ *     available to do time formatting.
+ */
+#$d_strftime HAS_STRFTIME              /**/
+
+/* HAS_SYSCALL_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the syscall() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern int syscall(int,  ...);
+ *             extern int syscall(long, ...);
+ */
+#$d_syscallproto       HAS_SYSCALL_PROTO       /**/
+
+/* U32_ALIGNMENT_REQUIRED:
+ *     This symbol, if defined, indicates that you must access
+ *     character data through U32-aligned pointers.
+ */
+#$d_u32align U32_ALIGNMENT_REQUIRED    /**/
+
+/* HAS_USLEEP_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the usleep() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int usleep(useconds_t);
+ */
+#$d_usleepproto        HAS_USLEEP_PROTO        /**/
+
+/* I_FP:
+ *     This symbol, if defined, indicates that <fp.h> exists and
+ *     should be included.
+ */
+#$i_fp I_FP            /**/
+
+/* I_LANGINFO:
+ *     This symbol, if defined, indicates that <langinfo.h> exists and
+ *     should be included.
+ */
+#$i_langinfo   I_LANGINFO              /**/
+
+/* HAS_PTHREAD_ATFORK:
+ *     This symbol, if defined, indicates that the pthread_atfork routine
+ *     is available setup fork handlers.
+ */
+#$d_pthread_atfork HAS_PTHREAD_ATFORK          /**/
 
 #endif
 !GROK!THIS!