This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update epigraphs for v5.22.0 RCs
[perl5.git] / config_h.SH
index 071229a..fb2224e 100755 (executable)
@@ -81,6 +81,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_bzero HAS_BZERO    /**/
 
+/* HAS_CBRT:
+ *     This symbol, if defined, indicates that the cbrt() (cube root)
+ *     function is available.
+ */
+#$d_cbrt HAS_CBRT      /**/
+
 /* HAS_CHOWN:
  *     This symbol, if defined, indicates that the chown routine is
  *     available.
@@ -281,13 +287,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_MBSTOWCS:
  *     This symbol, if defined, indicates that the mbstowcs routine is
- *     available to covert a multibyte string into a wide character string.
+ *     available to convert a multibyte string into a wide character string.
  */
 #$d_mbstowcs   HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
- *     to covert a multibyte to a wide character.
+ *     to convert a multibyte to a wide character.
  */
 #$d_mbtowc HAS_MBTOWC          /**/
 
@@ -419,6 +425,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_readlink HAS_READLINK              /**/
 
+/* HAS_REGCOMP:
+ *     This symbol, if defined, indicates that the regcomp() routine is
+ *     available to do some regular patern matching (usually on POSIX.2
+ *     conforming systems).
+ */
+#$d_regcomp HAS_REGCOMP                /* POSIX.2 */
+
 /* HAS_RENAME:
  *     This symbol, if defined, indicates that the rename routine is available
  *     to rename files.  Otherwise you should do the unlink(), link(), unlink()
@@ -534,6 +547,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_setsid HAS_SETSID  /**/
 
+/* HAS_STAT:
+ *     This symbol, if defined, indicates that the stat routine is
+ *     available to get file status.
+ */
+#$d_stat HAS_STAT      /**/
+
 /* HAS_STRCHR:
  *     This symbol is defined to indicate that the strchr()/strrchr()
  *     functions are available for string searching. If not, try the
@@ -649,7 +668,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 
 /* HAS_WCTOMB:
  *     This symbol, if defined, indicates that the wctomb routine is available
- *     to covert a wide character to a multibyte.
+ *     to convert a wide character to a multibyte.
  */
 #$d_wctomb HAS_WCTOMB          /**/
 
@@ -840,26 +859,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_syswait I_SYS_WAIT /**/
 
-/* I_TERMIO:
- *     This symbol, if defined, indicates that the program should include
- *     <termio.h> rather than <sgtty.h>.  There are also differences in
- *     the ioctl() calls that depend on the value of this symbol.
- */
-/* I_TERMIOS:
- *     This symbol, if defined, indicates that the program should include
- *     the POSIX termios.h rather than sgtty.h or termio.h.
- *     There are also differences in the ioctl() calls that depend on the
- *     value of this symbol.
- */
-/* I_SGTTY:
- *     This symbol, if defined, indicates that the program should include
- *     <sgtty.h> rather than <termio.h>.  There are also differences in
- *     the ioctl() calls that depend on the value of this symbol.
- */
-#$i_termio I_TERMIO            /**/
-#$i_termios I_TERMIOS          /**/
-#$i_sgtty I_SGTTY              /**/
-
 /* I_UNISTD:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <unistd.h>.
@@ -921,18 +920,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define OSNAME "$osname"               /**/
 #define OSVERS "$osvers"               /**/
 
-/* 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
-
 /* MULTIARCH:
  *     This symbol, if defined, signifies that the build
  *     process will produce some binary files that are going to be
@@ -1010,19 +997,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
  *     If the compiler supports cross-compiling or multiple-architecture
- *     binaries (e.g. on NeXT systems), use compiler-defined macros to
+ *     binaries, use compiler-defined macros to
  *     determine the byte order.
- *     On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- *     Binaries (MAB) on either big endian or little endian machines.
- *     The endian-ness is available at compile-time.  This only matters
- *     for perl, where the config.h can be generated and installed on
- *     one system, and used by a different architecture to build an
- *     extension.  Older versions of NeXT that might not have
- *     defined either *_ENDIAN__ were all on Motorola 680x0 series,
- *     so the default case (for NeXT) is big endian to catch them.
- *     This might matter for NeXT 3.0.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+ */
+#if defined(MULTIARCH)
 #  ifdef __LITTLE_ENDIAN__
 #    if LONGSIZE == 4
 #      define BYTEORDER 0x1234
@@ -1042,12 +1020,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #      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 */
+#endif
 
 /* CHARBITS:
  *     This symbol contains the size of a char, so that the C preprocessor
@@ -1169,6 +1144,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_attribute_unused HASATTRIBUTE_UNUSED       /**/
 #$d_attribute_warn_unused_result HASATTRIBUTE_WARN_UNUSED_RESULT       /**/
 
+/* HAS_BACKTRACE:
+ *     This symbol, if defined, indicates that the backtrace() routine is
+ *     available to get a stack trace.  The <execinfo.h> header must be
+ *     included to use this routine.
+ */
+#$d_backtrace HAS_BACKTRACE    /**/
+
 /* CASTI32:
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
@@ -1257,6 +1239,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_ctime_r HAS_CTIME_R           /**/
 #define CTIME_R_PROTO $ctime_r_proto      /**/
 
+/* HAS_DLADDR:
+ *     This symbol, if defined, indicates that the dladdr() routine is
+ *     available to query dynamic linker information for an address.
+ *     The <dlfcn.h> header must be included to use this routine.
+ */
+#$d_dladdr HAS_DLADDR  /**/
+
 /* 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.
@@ -1963,11 +1952,39 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* LONG_DOUBLESIZE:
  *     This symbol contains the size of a long double, so that the
  *     C preprocessor can make decisions based on it.  It is only
- *     defined if the system supports long doubles.
- */
+ *     defined if the system supports long doubles.   Note that this
+ *     is sizeof(long double), which may include unused bytes.
+ */
+/* HAS_LDEXPL:
+ *     This symbol, if defined, indicates that the ldexpl routine is
+ *     available to shift a long double floating-point number
+ *     by an integral power of 2.
+ */
+/* LONG_DOUBLEKIND:
+ *     LONG_DOUBLEKIND will be one of
+ *     LONG_DOUBLE_IS_DOUBLE
+ *     LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ *     LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ *     LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
+ *     LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+ *     LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+ *     LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+ *     LONG_DOUBLE_IS_UNKNOWN_FORMAT
+ *     It is only defined if the system supports long doubles.
+ */
+#$d_ldexpl  HAS_LDEXPL         /**/
 #$d_longdbl HAS_LONG_DOUBLE            /**/
 #ifdef HAS_LONG_DOUBLE
 #define LONG_DOUBLESIZE $longdblsize           /**/
+#define LONG_DOUBLEKIND $longdblkind           /**/
+#define LONG_DOUBLE_IS_DOUBLE                          0
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN  1
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN     2
+#define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN                3
+#define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN           4
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN      5
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6
+#define LONG_DOUBLE_IS_UNKNOWN_FORMAT                  -1
 #endif
 
 /* HAS_LONG_LONG:
@@ -2705,14 +2722,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol, if defined, indicates that this system uses
  *     EBCDIC encoding.
  */
-/* BOOTSTRAP_CHARSET:
- *     This symbol, if defined, indicates that this system needs
- *     converting various files to the native character set before
- *     bringing up perl on a system that has a non-ASCII character
- *     set and no working perl.
- */
 #$ebcdic       EBCDIC          /**/
-#$bootstrap_charset    BOOTSTRAP_CHARSET       /**/
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
@@ -2766,6 +2776,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$d_dirnamlen DIRNAMLEN        /**/
 #define Direntry_t $direntrytype
 
+/* I_EXECINFO:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <execinfo.h> for backtrace() support.
+ */
+#$i_execinfo I_EXECINFO                /**/
+
 /* I_GRP:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <grp.h>.
@@ -2904,6 +2920,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_sysuio     I_SYSUIO                /**/
 
+/* I_TERMIO:
+ *     This symbol, if defined, indicates that the program should include
+ *     <termio.h> rather than <sgtty.h>.  There are also differences in
+ *     the ioctl() calls that depend on the value of this symbol.
+ */
+/* I_TERMIOS:
+ *     This symbol, if defined, indicates that the program should include
+ *     the POSIX termios.h rather than sgtty.h or termio.h.
+ *     There are also differences in the ioctl() calls that depend on the
+ *     value of this symbol.
+ */
+/* I_SGTTY:
+ *     This symbol, if defined, indicates that the program should include
+ *     <sgtty.h> rather than <termio.h>.  There are also differences in
+ *     the ioctl() calls that depend on the value of this symbol.
+ */
+#$i_termio I_TERMIO            /**/
+#$i_termios I_TERMIOS          /**/
+#$i_sgtty I_SGTTY              /**/
+
 /* I_TIME:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <time.h>.
@@ -3161,7 +3197,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as
  *     D:/bin/sh.exe.
  */
-#define SH_PATH "$sh"  /**/
+#define SH_PATH "$targetsh"  /**/
 
 /* SIG_NAME:
  *     This symbol contains a list of signal names in order of
@@ -3359,6 +3395,18 @@ 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"            /**/
 
+/* 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
+
 /* PERL_USE_DEVEL:
  *     This symbol, if defined, indicates that Perl was configured with
  *     -Dusedevel, to enable development features.  This should not be
@@ -3384,12 +3432,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d__fwalk HAS__FWALK          /**/
 
+/* HAS_ACOSH:
+ *     This symbol, if defined, indicates that the acosh routine is
+ *     available to do the inverse hyperbolic cosine function.
+ */
+#$d_acosh HAS_ACOSH            /**/
+
 /* HAS_AINTL:
  *     This symbol, if defined, indicates that the aintl routine is
  *     available.  If copysignl is also present we can emulate modfl.
  */
 #$d_aintl HAS_AINTL            /**/
 
+/* HAS_ASINH:
+ *     This symbol, if defined, indicates that the asinh routine is
+ *     available to do the inverse hyperbolic sine function.
+ */
+#$d_asinh HAS_ASINH            /**/
+
+/* HAS_ATANH:
+ *     This symbol, if defined, indicates that the atanh routine is
+ *     available to do the inverse hyperbolic tangent function.
+ */
+#$d_atanh HAS_ATANH            /**/
+
 /* HAS_BUILTIN_CHOOSE_EXPR:
  *     Can we handle GCC builtin for compile-time ternary-like expressions
  */
@@ -3435,6 +3501,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_cmsghdr_s HAS_STRUCT_CMSGHDR       /**/
 
+/* HAS_COPYSIGN:
+ *     This symbol, if defined, indicates that the copysign routine is
+ *     available to do the copysign function.
+ */
+#$d_copysign HAS_COPYSIGN              /**/
+
 /* HAS_COPYSIGNL:
  *     This symbol, if defined, indicates that the copysignl routine is
  *     available.  If aintl is also present we can emulate modfl.
@@ -3475,6 +3547,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_dlsymun    DLSYM_NEEDS_UNDERSCORE  /**/
 
+/* HAS_ERF:
+ *     This symbol, if defined, indicates that the erf routine is
+ *     available to do the error function.
+ */
+#$d_erf HAS_ERF                /**/
+
+/* HAS_ERFC:
+ *     This symbol, if defined, indicates that the erfc routine is
+ *     available to do the complementary error function.
+ */
+#$d_erfc HAS_ERFC              /**/
+
+/* HAS_EXP2:
+ *     This symbol, if defined, indicates that the exp2 routine is
+ *     available to do the 2**x function.
+ */
+#$d_exp2 HAS_EXP2              /**/
+
+/* HAS_EXPM1:
+ *     This symbol, if defined, indicates that the expm1 routine is
+ *     available to do the exp(x) - 1 when x is near 1 function.
+ */
+#$d_expm1 HAS_EXPM1            /**/
+
 /* HAS_FAST_STDIO:
  *     This symbol, if defined, indicates that the "fast stdio"
  *     is available to manipulate the stdio buffers directly.
@@ -3494,6 +3590,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fcntl_can_lock FCNTL_CAN_LOCK              /**/
 
+/* HAS_FDIM:
+ *     This symbol, if defined, indicates that the fdim routine is
+ *     available to do the positive difference function.
+ */
+#$d_fdim HAS_FDIM              /**/
+
+/* HAS_FEGETROUND:
+ *     This symbol, if defined, indicates that the fegetround routine is
+ *     available to return the macro corresponding to the current rounding
+ *     mode.
+ */
+#$d_fegetround HAS_FEGETROUND  /**/
+
 /* HAS_FINITE:
  *     This symbol, if defined, indicates that the finite routine is
  *     available to check whether a double is finite (non-infinity non-NaN).
@@ -3515,6 +3624,24 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_flockproto HAS_FLOCK_PROTO /**/
 
+/* HAS_FMA:
+ *     This symbol, if defined, indicates that the fma routine is
+ *     available to do the multiply-add function.
+ */
+#$d_fma HAS_FMA                /**/
+
+/* HAS_FMAX:
+ *     This symbol, if defined, indicates that the fmax routine is
+ *     available to do the maximum function.
+ */
+#$d_fmax HAS_FMAX              /**/
+
+/* HAS_FMIN:
+ *     This symbol, if defined, indicates that the fmin routine is
+ *     available to do the minimum function.
+ */
+#$d_fmin HAS_FMIN              /**/
+
 /* HAS_FP_CLASS:
  *     This symbol, if defined, indicates that the fp_class routine is
  *     available to classify doubles.  Available for example in Digital UNIX.
@@ -3533,6 +3660,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fp_class HAS_FP_CLASS              /**/
 
+/* HAS_FP_CLASSL:
+ *     This symbol, if defined, indicates that the fp_classl routine is
+ *     available to classify long doubles.  Available for example in
+ *     Digital UNIX.  See for possible values HAS_FP_CLASS.
+ */
+#$d_fp_classl HAS_FP_CLASSL            /**/
+
 /* HAS_FPCLASS:
  *     This symbol, if defined, indicates that the fpclass routine is
  *     available to classify doubles.  Available for example in Solaris/SVR4.
@@ -3563,7 +3697,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *           FP_NAN        NaN
  *
  */
-#$d_fpclassify HAS_FPCLASSIFY          /**/
+/* HAS_FP_CLASSIFY:
+ *     This symbol, if defined, indicates that the fp_classify routine is
+ *     available to classify doubles. The values are defined in <math.h>
+ *
+ *           FP_NORMAL     Normalized
+ *           FP_ZERO       Zero
+ *           FP_INFINITE   Infinity
+ *           FP_SUBNORMAL  Denormalized
+ *           FP_NAN        NaN
+ *
+ */
+#$d_fpclassify HAS_FPCLASSIFY          /**/
+#$d_fp_classify        HAS_FP_CLASSIFY         /**/
 
 /* HAS_FPCLASSL:
  *     This symbol, if defined, indicates that the fpclassl routine is
@@ -3583,6 +3729,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fpclassl HAS_FPCLASSL              /**/
 
+/* HAS_FPGETROUND:
+ *     This symbol, if defined, indicates that the fpgetround routine is
+ *     available to get the floating point rounding mode.
+ */
+#$d_fpgetround HAS_FPGETROUND          /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
@@ -3698,6 +3850,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_hasmntopt HAS_HASMNTOPT            /**/
 
+/* HAS_HYPOT:
+ *     This symbol, if defined, indicates that the hypot routine is
+ *     available to do the hypotenuse function.
+ */
+#$d_hypot HAS_HYPOT            /**/
+
+/* HAS_ILOGB:
+ *     This symbol, if defined, indicates that the ilogb routine is
+ *     available to get integer exponent of a floating-point value.
+ */
+#$d_ilogb HAS_ILOGB            /**/
+
 /* HAS_ILOGBL:
  *     This symbol, if defined, indicates that the ilogbl routine is
  *     available.  If scalbnl is also present we can emulate frexpl.
@@ -3735,12 +3899,31 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_isfinite HAS_ISFINITE              /**/
 
+/* HAS_ISFINITEL:
+ *     This symbol, if defined, indicates that the isfinitel routine is
+ *     available to check whether a long double is finite.
+ *     (non-infinity non-NaN).
+ */
+#$d_isfinitel HAS_ISFINITEL            /**/
+
 /* 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_ISINFL:
+ *     This symbol, if defined, indicates that the isinfl routine is
+ *     available to check whether a long double is an infinity.
+ */
+#$d_isinfl HAS_ISINFL          /**/
+
+/* HAS_ISLESS:
+ *     This symbol, if defined, indicates that the isless routine is
+ *     available to do the isless function.
+ */
+#$d_isless HAS_ISLESS          /**/
+
 /* HAS_ISNAN:
  *     This symbol, if defined, indicates that the isnan routine is
  *     available to check whether a double is a NaN.
@@ -3753,6 +3936,31 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_isnanl HAS_ISNANL          /**/
 
+/* HAS_ISNORMAL:
+ *     This symbol, if defined, indicates that the isnormal routine is
+ *     available to check whether a double is normal (non-zero normalized).
+ */
+#$d_isnormal HAS_ISNORMAL              /**/
+
+/* HAS_J0:
+ *     This symbol, if defined, indicates to the C program that the
+ *     j0() function is available for Bessel functions of the first
+ *     kind of the order zero, for doubles.
+ */
+/* HAS_J0L:
+ *     This symbol, if defined, indicates to the C program that the
+ *     j0l() function is available for Bessel functions of the first
+ *     kind of the order zero, for long doubles.
+ */
+#$d_j0 HAS_J0          /**/
+#$d_j0l        HAS_J0L         /**/
+
+/* HAS_LC_MONETARY_2008:
+ *     This symbol, if defined, indicates that the localeconv routine is
+ *     available and has the additional members added in POSIX 1003.1-2008.
+ */
+#$d_lc_monetary_2008 HAS_LC_MONETARY_2008              /**/
+
 /* 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
@@ -3761,12 +3969,98 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_ldbl_dig HAS_LDBL_DIG      /* */
 
+/* HAS_LGAMMA:
+ *     This symbol, if defined, indicates that the lgamma routine is
+ *     available to do the log gamma function.  See also HAS_TGAMMA and
+ *     HAS_LGAMMA_R.
+ */
+#$d_lgamma HAS_LGAMMA          /**/
+
+/* HAS_LGAMMA_R:
+ *     This symbol, if defined, indicates that the lgamma_r routine is
+ *     available to do the log gamma function without using the global
+ *     signgam variable.
+ */
+#$d_lgamma_r HAS_LGAMMA_R              /**/
+
 /* LIBM_LIB_VERSION:
  *     This symbol, if defined, indicates that libm exports _LIB_VERSION
  *     and that math.h defines the enum to manipulate it.
  */
 #$d_libm_lib_version LIBM_LIB_VERSION          /**/
 
+/* HAS_LLRINT:
+ *     This symbol, if defined, indicates that the llrint routine is
+ *     available to return the closest long long value according to
+ *     the current rounding mode.
+ */
+#$d_llrint HAS_LLRINT          /**/
+
+/* HAS_LLRINTL:
+ *     This symbol, if defined, indicates that the llrintl routine is
+ *     available to return the closest long long value of the long double
+ *     argument according to the current rounding mode.
+ */
+#$d_llrintl HAS_LLRINTL                /**/
+
+/* HAS_LLROUND:
+ *     This symbol, if defined, indicates that the llround routine is
+ *     available to return the nearest long long value.
+ */
+#$d_llround HAS_LLROUND                /**/
+
+/* HAS_LLROUNDL:
+ *     This symbol, if defined, indicates that the llroundl routine is
+ *     available to return the nearest long long value away from zero of
+ *     the long double argument value.
+ */
+#$d_llroundl HAS_LLROUNDL              /**/
+
+/* HAS_LOG1P:
+ *     This symbol, if defined, indicates that the log1p routine is
+ *     available to do the logarithm of 1 plus argument function.
+ */
+#$d_log1p HAS_LOG1P            /**/
+
+/* HAS_LOG2:
+ *     This symbol, if defined, indicates that the log2 routine is
+ *     available to do the log2 function.
+ */
+#$d_log2 HAS_LOG2              /**/
+
+/* HAS_LOGB:
+ *     This symbol, if defined, indicates that the logb routine is
+ *     available to do the logb function.
+ */
+#$d_logb HAS_LOGB              /**/
+
+/* HAS_LRINT:
+ *     This symbol, if defined, indicates that the lrint routine is
+ *     available to return the closest integral value according to
+ *     the current rounding mode.
+ */
+#$d_lrint HAS_LRINT            /**/
+
+/* HAS_LRINTL:
+ *     This symbol, if defined, indicates that the lrintl routine is
+ *     available to return the closest integral value of the long double
+ *     argument according to the current rounding mode.
+ */
+#$d_lrintl HAS_LRINTL          /**/
+
+/* HAS_LROUND:
+ *     This symbol, if defined, indicates that the lround routine is
+ *     available to return the nearest integral value.
+ */
+#$d_lround HAS_LROUND          /**/
+
+/* HAS_LROUNDL:
+ *     This symbol, if defined, indicates that the lroundl routine is
+ *     available to return the nearest integral value away from zero of
+ *     the long double argument value.
+ */
+#$d_lroundl HAS_LROUNDL                /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
@@ -3831,6 +4125,33 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_msghdr_s HAS_STRUCT_MSGHDR /**/
 
+/* HAS_NAN:
+ *     This symbol, if defined, indicates that the nan routine is
+ *     available to generate NaN.
+ */
+#$d_nan HAS_NAN                /**/
+
+/* HAS_NEARBYINT:
+ *     This symbol, if defined, indicates that the nearbyint routine is
+ *     available to return the integral value closest to (according to
+ *     the current rounding mode) to x.
+ */
+#$d_nearbyint HAS_NEARBYINT            /**/
+
+/* HAS_NEXTAFTER:
+ *     This symbol, if defined, indicates that the nextafter routine is
+ *     available to return the next machine representable double from
+ *     x in direction y.
+ */
+#$d_nextafter HAS_NEXTAFTER            /**/
+
+/* HAS_NEXTTOWARD:
+ *     This symbol, if defined, indicates that the nexttoward routine is
+ *     available to return the next machine representable long double from
+ *     x in direction y.
+ */
+#$d_nexttoward HAS_NEXTTOWARD          /**/
+
 /* 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>
@@ -3846,6 +4167,8 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 /* HAS_PRCTL:
  *     This symbol, if defined, indicates that the prctl routine is
  *     available to set process title.
+ *     Note that there are at least two prctl variants: Linux and Irix.
+ *     While they are somewhat similar, they are incompatible.
  */
 /* HAS_PRCTL_SET_NAME:
  *     This symbol, if defined, indicates that the prctl routine is
@@ -3875,6 +4198,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_pthread_attr_setscope HAS_PTHREAD_ATTR_SETSCOPE            /**/
 
+/* HAS_PTRDIFF_T:
+ *     This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#$d_ptrdiff_t  HAS_PTRDIFF_T                   /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>
@@ -3888,6 +4216,31 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_recvmsg HAS_RECVMSG                /**/
 
+/* HAS_REMAINDER:
+ *     This symbol, if defined, indicates that the remainder routine is
+ *     available to return the floating-point remainder.
+ */
+#$d_remainder HAS_REMAINDER            /**/
+
+/* HAS_REMQUO:
+ *     This symbol, if defined, indicates that the remquo routine is
+ *     available to return the remainder and part of quotient.
+ */
+#$d_remquo HAS_REMQUO          /**/
+
+/* HAS_RINT:
+ *     This symbol, if defined, indicates that the rint routine is
+ *     available to return the nearest integral value to x as double
+ *     using the current rounding mode.
+ */
+#$d_rint HAS_RINT              /**/
+
+/* HAS_ROUND:
+ *     This symbol, if defined, indicates that the round routine is
+ *     available to round to nearest integer, away from zero.
+ */
+#$d_round HAS_ROUND            /**/
+
 /* HAS_SBRK_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the sbrk() function.  Otherwise, it is up
@@ -3897,6 +4250,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_sbrkproto  HAS_SBRK_PROTO  /**/
 
+/* HAS_SCALBN:
+ *     This symbol, if defined, indicates that the scalbn routine is
+ *     available to multiply floating-point number by integral power
+ *     of radix.
+ */
+#$d_scalbn HAS_SCALBN          /**/
+
 /* HAS_SCALBNL:
  *     This symbol, if defined, indicates that the scalbnl routine is
  *     available.  If ilogbl is also present we can emulate frexpl.
@@ -4095,6 +4455,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_telldirproto       HAS_TELLDIR_PROTO       /**/
 
+/* HAS_TGAMMA:
+ *     This symbol, if defined, indicates that the tgamma routine is
+ *     available to do the gamma function. See also HAS_LGAMMA.
+ */
+#$d_tgamma HAS_TGAMMA          /**/
+
 /* HAS_CTIME64:
  *     This symbol, if defined, indicates that the ctime64 () routine is
  *     available to do the 64bit variant of ctime ()
@@ -4132,6 +4498,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_timegm HAS_TIMEGM          /**/
 
+/* HAS_TRUNC:
+ *     This symbol, if defined, indicates that the trunc routine is
+ *     available to round doubles towards zero.
+ */
+#$d_trunc HAS_TRUNC            /**/
+
+/* HAS_TRUNCL:
+ *     This symbol, if defined, indicates that the truncl routine is
+ *     available. If copysignl is also present we can emulate modfl.
+ */
+#$d_truncl HAS_TRUNCL          /**/
+
 /* U32_ALIGNMENT_REQUIRED:
  *     This symbol, if defined, indicates that you must access
  *     character data through U32-aligned pointers.
@@ -4173,6 +4551,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_ustat HAS_USTAT            /**/
 
+/* HAS_WCSCMP:
+ *     This symbol, if defined, indicates that the wcscmp routine is
+ *     available to compare two wide character strings.
+ */
+#$d_wcscmp HAS_WCSCMP  /**/
+
+/* HAS_WCSXFRM:
+ *     This symbol, if defined, indicates that the wcsxfrm routine is
+ *     available to tranform a wide character string for wcscmp().
+ */
+#$d_wcsxfrm HAS_WCSXFRM        /**/
+
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
@@ -4207,6 +4597,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_assert     I_ASSERT                /**/
 
+/* I_BFD:
+ *     This symbol, if defined, indicates that <bfd.h> exists and
+ *     can be included.
+ */
+#$i_bfd        I_BFD           /**/
+
 /* I_CRYPT:
  *     This symbol, if defined, indicates that <crypt.h> exists and
  *     should be included.
@@ -4243,6 +4639,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define DB_VERSION_MINOR_CFG   $db_version_minor       /**/
 #define DB_VERSION_PATCH_CFG   $db_version_patch       /**/
 
+/* I_FENV:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <fenv.h> to get the floating point environment definitions.
+ */
+#$i_fenv I_FENV                /**/
+
 /* I_FP:
  *     This symbol, if defined, indicates that <fp.h> exists and
  *     should be included.
@@ -4309,6 +4711,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_prot       I_PROT          /**/
 
+/* I_QUADMATH:
+ *     This symbol, if defined, indicates that <quadmath.h> exists and
+ *     should be included.
+ */
+#$i_quadmath   I_QUADMATH              /**/
+
 /* I_SHADOW:
  *     This symbol, if defined, indicates that <shadow.h> exists and
  *     should be included.
@@ -4327,6 +4735,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_stdbool    I_STDBOOL               /**/
 
+/* I_STDINT:
+ *     This symbol, if defined, indicates that <stdint.h> exists and
+ *     should be included.
+ */
+#$i_stdint I_STDINT            /**/
+
 /* I_SUNMATH:
  *     This symbol, if defined, indicates that <sunmath.h> exists and
  *     should be included.
@@ -4396,17 +4810,33 @@ 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 'f') for input.
  */
+/* DOUBLEKIND:
+ *     DOUBLEKIND will be one of
+ *     DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+ *     DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+ *     DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+ *     DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+ *     DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ *     DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ *     DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+ *     DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ *     DOUBLE_IS_UNKNOWN_FORMAT
+ */
+#define DOUBLEKIND $doublekind         /**/
+#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN        1
+#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN   2
+#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN        3
+#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN   4
+#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN       5
+#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN  6
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE   7
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE   8
+#define DOUBLE_IS_UNKNOWN_FORMAT               -1
 #$d_PRIfldbl PERL_PRIfldbl     $sPRIfldbl      /**/
 #$d_PRIgldbl PERL_PRIgldbl     $sPRIgldbl      /**/
 #$d_PRIeldbl PERL_PRIeldbl     $sPRIeldbl      /**/
 #$d_SCNfldbl PERL_SCNfldbl     $sSCNfldbl      /**/
 
-/* PERL_MAD:
- *     This symbol, if defined, indicates that the Misc Attribution
- *     Declaration code should be conditionally compiled.
- */
-#$mad  PERL_MAD                /**/
-
 /* NEED_VA_COPY:
  *     This symbol, if defined, indicates that the system stores
  *     the variable argument list datatype, va_list, in a format
@@ -4483,6 +4913,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* NVSIZE:
  *     This symbol contains the sizeof(NV).
+ *     Note that some floating point formats have unused bytes.
+ *     The most notable example is the x86* 80-bit extended precision
+ *     which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ *     platforms, respectively), but which only uses 10 bytes.
+ *     Perl compiled with -Duselongdouble on x86* is like this.
  */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
@@ -4672,6 +5107,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$use64bitall  USE_64_BIT_ALL          /**/
 #endif
 
+/* USE_CBACKTRACE:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built with support for backtrace.
+ */
+#$usecbacktrace USE_CBACKTRACE         /**/
+
 /* USE_DTRACE:
  *     This symbol, if defined, indicates that Perl should
  *     be built with support for DTrace.
@@ -4742,6 +5183,14 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$useperlio    USE_PERLIO              /**/
 #endif
 
+/* USE_QUADMATH:
+ *     This symbol, if defined, indicates that the quadmath library should
+ *     be used when available.
+ */
+#ifndef USE_QUADMATH
+#$usequadmath  USE_QUADMATH            /**/
+#endif
+
 /* USE_SOCKS:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use socks.