genuine possible buffer problems spotted by flawfinder
[p5sagit/p5-mst-13.2.git] / config_h.SH
index 2edf2b1..472b5d4 100644 (file)
@@ -56,15 +56,6 @@ 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.
@@ -1082,7 +1073,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #endif /* NeXT */
 
 /* CAT2:
- *     This macro catenates 2 tokens together.
+ *     This macro concatenates 2 tokens together.
  */
 /* STRINGIFY:
  *     This macro surrounds its token with double quotes.
@@ -1102,7 +1093,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #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 concatenate tokens?"
 #endif
 
 /* CPPSTDIN:
@@ -1154,6 +1145,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ASCTIME_R_PROTO:
  *     This symbol encodes the prototype of asctime_r.
+ *     It is zero if d_asctime_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r
+ *     is defined.
  */
 #$d_asctime_r HAS_ASCTIME_R       /**/
 #define ASCTIME_R_PROTO $asctime_r_proto          /**/
@@ -1215,6 +1209,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* CRYPT_R_PROTO:
  *     This symbol encodes the prototype of crypt_r.
+ *     It is zero if d_crypt_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r
+ *     is defined.
  */
 #$d_crypt_r HAS_CRYPT_R           /**/
 #define CRYPT_R_PROTO $crypt_r_proto      /**/
@@ -1236,6 +1233,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* CTIME_R_PROTO:
  *     This symbol encodes the prototype of ctime_r.
+ *     It is zero if d_ctime_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r
+ *     is defined.
  */
 #$d_ctime_r HAS_CTIME_R           /**/
 #define CTIME_R_PROTO $ctime_r_proto      /**/
@@ -1254,6 +1254,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* DRAND48_R_PROTO:
  *     This symbol encodes the prototype of drand48_r.
+ *     It is zero if d_drand48_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_drand48_r
+ *     is defined.
  */
 #$d_drand48_r HAS_DRAND48_R       /**/
 #define DRAND48_R_PROTO $drand48_r_proto          /**/
@@ -1278,6 +1281,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDGRENT_R_PROTO:
  *     This symbol encodes the prototype of endgrent_r.
+ *     It is zero if d_endgrent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endgrent_r
+ *     is defined.
  */
 #$d_endgrent_r HAS_ENDGRENT_R     /**/
 #define ENDGRENT_R_PROTO $endgrent_r_proto        /**/
@@ -1312,6 +1318,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDPWENT_R_PROTO:
  *     This symbol encodes the prototype of endpwent_r.
+ *     It is zero if d_endpwent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endpwent_r
+ *     is defined.
  */
 #$d_endpwent_r HAS_ENDPWENT_R     /**/
 #define ENDPWENT_R_PROTO $endpwent_r_proto        /**/
@@ -1500,6 +1509,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETGRENT_R_PROTO:
  *     This symbol encodes the prototype of getgrent_r.
+ *     It is zero if d_getgrent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r
+ *     is defined.
  */
 #$d_getgrent_r HAS_GETGRENT_R     /**/
 #define GETGRENT_R_PROTO $getgrent_r_proto        /**/
@@ -1510,6 +1522,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETGRGID_R_PROTO:
  *     This symbol encodes the prototype of getgrgid_r.
+ *     It is zero if d_getgrgid_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r
+ *     is defined.
  */
 #$d_getgrgid_r HAS_GETGRGID_R     /**/
 #define GETGRGID_R_PROTO $getgrgid_r_proto        /**/
@@ -1520,6 +1535,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETGRNAM_R_PROTO:
  *     This symbol encodes the prototype of getgrnam_r.
+ *     It is zero if d_getgrnam_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r
+ *     is defined.
  */
 #$d_getgrnam_r HAS_GETGRNAM_R     /**/
 #define GETGRNAM_R_PROTO $getgrnam_r_proto        /**/
@@ -1591,6 +1609,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETLOGIN_R_PROTO:
  *     This symbol encodes the prototype of getlogin_r.
+ *     It is zero if d_getlogin_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getlogin_r
+ *     is defined.
  */
 #$d_getlogin_r HAS_GETLOGIN_R     /**/
 #define GETLOGIN_R_PROTO $getlogin_r_proto        /**/
@@ -1695,6 +1716,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPWENT_R_PROTO:
  *     This symbol encodes the prototype of getpwent_r.
+ *     It is zero if d_getpwent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwent_r
+ *     is defined.
  */
 #$d_getpwent_r HAS_GETPWENT_R     /**/
 #define GETPWENT_R_PROTO $getpwent_r_proto        /**/
@@ -1705,6 +1729,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPWNAM_R_PROTO:
  *     This symbol encodes the prototype of getpwnam_r.
+ *     It is zero if d_getpwnam_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwnam_r
+ *     is defined.
  */
 #$d_getpwnam_r HAS_GETPWNAM_R     /**/
 #define GETPWNAM_R_PROTO $getpwnam_r_proto        /**/
@@ -1715,6 +1742,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPWUID_R_PROTO:
  *     This symbol encodes the prototype of getpwuid_r.
+ *     It is zero if d_getpwuid_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwuid_r
+ *     is defined.
  */
 #$d_getpwuid_r HAS_GETPWUID_R     /**/
 #define GETPWUID_R_PROTO $getpwuid_r_proto        /**/
@@ -1745,6 +1775,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETSPNAM_R_PROTO:
  *     This symbol encodes the prototype of getspnam_r.
+ *     It is zero if d_getspnam_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getspnam_r
+ *     is defined.
  */
 #$d_getspnam_r HAS_GETSPNAM_R     /**/
 #define GETSPNAM_R_PROTO $getspnam_r_proto        /**/
@@ -1766,13 +1799,17 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GMTIME_R_PROTO:
  *     This symbol encodes the prototype of gmtime_r.
+ *     It is zero if d_gmtime_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_gmtime_r
+ *     is defined.
  */
 #$d_gmtime_r HAS_GMTIME_R         /**/
 #define GMTIME_R_PROTO $gmtime_r_proto    /**/
 
 /* HAS_GNULIBC:
  *     This symbol, if defined, indicates to the C program that 
- *     the GNU C library is being used.
+ *     the GNU C library is being used.  A better check is to use
+ *     the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
  */
 #$d_gnulibc HAS_GNULIBC        /**/
 #if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
@@ -1867,6 +1904,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* LOCALTIME_R_PROTO:
  *     This symbol encodes the prototype of localtime_r.
+ *     It is zero if d_localtime_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r
+ *     is defined.
  */
 #$d_localtime_r HAS_LOCALTIME_R           /**/
 #define LOCALTIME_R_PROTO $localtime_r_proto      /**/
@@ -1955,6 +1995,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     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_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the modfl() function.  Otherwise, it is up
+ *     to the program to supply one.
+ */
 /* HAS_MODFL_POW32_BUG:
  *     This symbol, if defined, indicates that the modfl routine is
  *     broken for long doubles >= pow(2, 32).
@@ -1963,6 +2008,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     release 2.2.2 is known to be okay.
  */
 #$d_modfl HAS_MODFL            /**/
+#$d_modflproto HAS_MODFL_PROTO         /**/
 #$d_modfl_pow32_bug HAS_MODFL_POW32_BUG                /**/
 
 /* HAS_MPROTECT:
@@ -2029,6 +2075,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* RANDOM_R_PROTO:
  *     This symbol encodes the prototype of random_r.
+ *     It is zero if d_random_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_random_r
+ *     is defined.
  */
 #$d_random_r HAS_RANDOM_R         /**/
 #define RANDOM_R_PROTO $random_r_proto    /**/
@@ -2039,6 +2088,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* READDIR_R_PROTO:
  *     This symbol encodes the prototype of readdir_r.
+ *     It is zero if d_readdir_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir_r
+ *     is defined.
  */
 #$d_readdir_r HAS_READDIR_R       /**/
 #define READDIR_R_PROTO $readdir_r_proto          /**/
@@ -2112,6 +2164,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETGRENT_R_PROTO:
  *     This symbol encodes the prototype of setgrent_r.
+ *     It is zero if d_setgrent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setgrent_r
+ *     is defined.
  */
 #$d_setgrent_r HAS_SETGRENT_R     /**/
 #define SETGRENT_R_PROTO $setgrent_r_proto        /**/
@@ -2177,6 +2232,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETPWENT_R_PROTO:
  *     This symbol encodes the prototype of setpwent_r.
+ *     It is zero if d_setpwent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setpwent_r
+ *     is defined.
  */
 #$d_setpwent_r HAS_SETPWENT_R     /**/
 #define SETPWENT_R_PROTO $setpwent_r_proto        /**/
@@ -2308,6 +2366,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SRAND48_R_PROTO:
  *     This symbol encodes the prototype of srand48_r.
+ *     It is zero if d_srand48_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
+ *     is defined.
  */
 #$d_srand48_r HAS_SRAND48_R       /**/
 #define SRAND48_R_PROTO $srand48_r_proto          /**/
@@ -2318,6 +2379,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SRANDOM_R_PROTO:
  *     This symbol encodes the prototype of srandom_r.
+ *     It is zero if d_srandom_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
+ *     is defined.
  */
 #$d_srandom_r HAS_SRANDOM_R       /**/
 #define SRANDOM_R_PROTO $srandom_r_proto          /**/
@@ -2448,10 +2512,25 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* STRERROR_R_PROTO:
  *     This symbol encodes the prototype of strerror_r.
+ *     It is zero if d_strerror_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
+ *     is defined.
  */
 #$d_strerror_r HAS_STRERROR_R     /**/
 #define STRERROR_R_PROTO $strerror_r_proto        /**/
 
+/* HAS_STRLCAT:
+ *     This symbol, if defined, indicates that the strlcat () routine is
+ *     available to do string concatenation.
+ */
+#$d_strlcat HAS_STRLCAT                /**/
+
+/* HAS_STRLCPY:
+ *     This symbol, if defined, indicates that the strlcpy () routine is
+ *     available to do string copying.
+ */
+#$d_strlcpy HAS_STRLCPY                /**/
+
 /* HAS_STRTOLD:
  *     This symbol, if defined, indicates that the strtold routine is
  *     available to convert strings to long doubles.
@@ -2520,6 +2599,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* TMPNAM_R_PROTO:
  *     This symbol encodes the prototype of tmpnam_r.
+ *     It is zero if d_tmpnam_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
+ *     is defined.
  */
 #$d_tmpnam_r HAS_TMPNAM_R         /**/
 #define TMPNAM_R_PROTO $tmpnam_r_proto    /**/
@@ -2909,10 +2991,15 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     This symbol, if defined, indicates to the C program that
  *     the struct tm has a tm_zone field.
  */
+/* HAS_TM_TM_GMTOFF:
+ *     This symbol, if defined, indicates to the C program that
+ *     the struct tm has a tm_gmtoff field.
+ */
 #$i_time I_TIME                /**/
 #$i_systime I_SYS_TIME         /**/
 #$i_systimek I_SYS_TIME_KERNEL         /**/
 #$d_tm_tm_zone HAS_TM_TM_ZONE          /**/
+#$d_tm_tm_gmtoff HAS_TM_TM_GMTOFF              /**/
 
 /* I_USTAT:
  *     This symbol, if defined, indicates that <ustat.h> exists and
@@ -2981,6 +3068,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define Malloc_t $malloctype                   /**/
 #define Free_t $freetype                       /**/
 
+/* PERL_MALLOC_WRAP:
+ *     This symbol, if defined, indicates that we'd like malloc wrap checks.
+ */
+#$usemallocwrap PERL_MALLOC_WRAP               /**/
+
 /* MYMALLOC:
  *     This symbol, if defined, indicates that we're using our own malloc.
  */
@@ -3165,6 +3257,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define        NVSIZE          $nvsize         /**/
 #$d_nv_preserves_uv    NV_PRESERVES_UV
 #define        NV_PRESERVES_UV_BITS    $nv_preserves_uv_bits
+#if UVSIZE == 8
+#   ifdef BYTEORDER
+#       if BYTEORDER == 0x1234
+#           undef BYTEORDER
+#           define BYTEORDER 0x12345678
+#       else
+#           if BYTEORDER == 0x4321
+#               undef BYTEORDER
+#               define BYTEORDER 0x87654321
+#           endif
+#       endif
+#   endif
+#endif
 
 /* IVdf:
  *     This symbol defines the format string used for printing a Perl IV
@@ -3289,7 +3394,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     etc., where nn is the actual signal number (e.g. NUM37).
  *     The signal number for sig_name[i] is stored in sig_num[i].
  *     The last element is 0 to terminate the list with a NULL.  This
- *     corresponds to the 0 at the end of the sig_num list.
+ *     corresponds to the 0 at the end of the sig_name_init list.
+ *     Note that this variable is initialized from the sig_name_init,
+ *     not from sig_name (which is unused).
  */
 /* SIG_NUM:
  *     This symbol contains a list of signal numbers, in the same order as the
@@ -3303,11 +3410,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  *     The signal number corresponding to sig_name[i] is sig_number[i].
  *     if (i < NSIG) then sig_number[i] == i.  
  *     The last element is 0, corresponding to the 0 at the end of
- *     the sig_name list.
+ *     the sig_name_init list.
+ *     Note that this variable is initialized from the sig_num_init,
+ *     not from sig_num (which is unused).
  */
 /* SIG_SIZE:
- *     This variable contains the number of elements of the sig_name
- *     and sig_num arrays, excluding the final NULL entry.
+ *     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         /**/
@@ -3586,40 +3695,17 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #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
- *     lib/lib.pm will automatically search in $sitearch for older
- *     directories across major versions back to xs_apiversion.
- *     This is only useful if you have a perl library directory tree
- *     structured like the default one.
- *     See INSTALL for how this works.
- *     The versioned site_perl directory was introduced in 5.005,
- *     so that is the lowest possible value.
- *     Since this can depend on compile time options
- *     it is set by Configure.  Other non-default sources
- *     of potential incompatibility, such as multiplicity, threads,
- *     debugging, 64bits, sfio, etc., are not checked for currently,
- *     though in principle we could go snooping around in old
- *     Config.pm files.
- */
-/* PERL_PM_APIVERSION:
- *     This variable contains the version of the oldest perl
- *     compatible with the present perl.  (That is, pure perl modules
- *     written for pm_apiversion will still work for the current
- *     version).  perl.c:incpush() and lib/lib.pm will automatically
- *     search in $sitelib for older directories across major versions
- *     back to pm_apiversion.  This is only useful if you have a perl
- *     library directory tree structured like the default one.  The
- *     versioned site_perl library was introduced in 5.005, so that's
- *     the default setting for this variable.  It's hard to imagine
- *     it changing before Perl6.  It is included here for symmetry
- *     with xs_apiveprsion -- the searching algorithms will
- *     (presumably) be similar.
- *     See the INSTALL file for how this works.
- */
-#define PERL_XS_APIVERSION "$xs_apiversion"
-#define PERL_PM_APIVERSION "$pm_apiversion"
+/* 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
+#ifdef __attribute__
+#undef __attribute__
+#endif
+#define __attribute__(_arg_)
+#endif
 
 /* HAS_CRYPT:
  *     This symbol, if defined, indicates that the crypt routine is available
@@ -3717,6 +3803,18 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define        PERL_TARGETARCH "$targetarch"   /**/
 #endif
 
+/* 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_COPYSIGNL:
+ *     This symbol, if defined, indicates that the copysignl routine is
+ *     available.  If aintl is also present we can emulate modfl.
+ */
+#$d_copysignl HAS_COPYSIGNL            /**/
+
 /* HAS_DBMINIT_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the dbminit() function.  Otherwise, it is up
@@ -3731,6 +3829,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_dirfd HAS_DIRFD            /**/
 
+/* HAS_FAST_STDIO:
+ *     This symbol, if defined, indicates that the "fast stdio"
+ *     is available to manipulate the stdio buffers directly.
+ */
+#$d_faststdio HAS_FAST_STDIO           /**/
+
 /* HAS_FLOCK_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the flock() function.  Otherwise, it is up
@@ -3757,6 +3861,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fpclassl HAS_FPCLASSL              /**/
 
+/* HAS_ILOGBL:
+ *     This symbol, if defined, indicates that the ilogbl routine is
+ *     available.  If scalbnl is also present we can emulate frexpl.
+ */
+#$d_ilogbl HAS_ILOGBL          /**/
+
 /* 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>
@@ -3778,6 +3888,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define PROCSELFEXE_PATH       $procselfexe    /**/
 #endif
 
+/* HAS_PTHREAD_ATTR_SETSCOPE:
+ *     This symbol, if defined, indicates that the pthread_attr_setscope
+ *     system call is available to set the contention scope attribute of
+ *     a thread attribute object.
+ */
+#$d_pthread_attr_setscope HAS_PTHREAD_ATTR_SETSCOPE            /**/
+
+/* HAS_SCALBNL:
+ *     This symbol, if defined, indicates that the scalbnl routine is
+ *     available.  If ilogbl is also present we can emulate frexpl.
+ */
+#$d_scalbnl HAS_SCALBNL                /**/
+
 /* HAS_SIGPROCMASK:
  *     This symbol, if defined, indicates that the sigprocmask
  *     system call is available to examine or change the signal mask
@@ -3864,12 +3987,24 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_langinfo   I_LANGINFO              /**/
 
+/* USE_FAST_STDIO:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built to use 'fast stdio'.
+ *     Defaults to define in Perls 5.8 and earlier, to undef later.
+ */
+#ifndef USE_FAST_STDIO
+#$usefaststdio USE_FAST_STDIO          /**/
+#endif
+
 /* HAS_CTERMID_R:
  *     This symbol, if defined, indicates that the ctermid_r routine
  *     is available to ctermid re-entrantly.
  */
 /* CTERMID_R_PROTO:
  *     This symbol encodes the prototype of ctermid_r.
+ *     It is zero if d_ctermid_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r
+ *     is defined.
  */
 #$d_ctermid_r HAS_CTERMID_R       /**/
 #define CTERMID_R_PROTO $ctermid_r_proto          /**/
@@ -3880,6 +4015,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDHOSTENT_R_PROTO:
  *     This symbol encodes the prototype of endhostent_r.
+ *     It is zero if d_endhostent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endhostent_r
+ *     is defined.
  */
 #$d_endhostent_r HAS_ENDHOSTENT_R         /**/
 #define ENDHOSTENT_R_PROTO $endhostent_r_proto    /**/
@@ -3890,6 +4028,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDNETENT_R_PROTO:
  *     This symbol encodes the prototype of endnetent_r.
+ *     It is zero if d_endnetent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endnetent_r
+ *     is defined.
  */
 #$d_endnetent_r HAS_ENDNETENT_R           /**/
 #define ENDNETENT_R_PROTO $endnetent_r_proto      /**/
@@ -3900,6 +4041,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDPROTOENT_R_PROTO:
  *     This symbol encodes the prototype of endprotoent_r.
+ *     It is zero if d_endprotoent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endprotoent_r
+ *     is defined.
  */
 #$d_endprotoent_r HAS_ENDPROTOENT_R       /**/
 #define ENDPROTOENT_R_PROTO $endprotoent_r_proto          /**/
@@ -3910,6 +4054,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* ENDSERVENT_R_PROTO:
  *     This symbol encodes the prototype of endservent_r.
+ *     It is zero if d_endservent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r
+ *     is defined.
  */
 #$d_endservent_r HAS_ENDSERVENT_R         /**/
 #define ENDSERVENT_R_PROTO $endservent_r_proto    /**/
@@ -3920,6 +4067,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETHOSTBYADDR_R_PROTO:
  *     This symbol encodes the prototype of gethostbyaddr_r.
+ *     It is zero if d_gethostbyaddr_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r
+ *     is defined.
  */
 #$d_gethostbyaddr_r HAS_GETHOSTBYADDR_R           /**/
 #define GETHOSTBYADDR_R_PROTO $gethostbyaddr_r_proto      /**/
@@ -3930,6 +4080,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETHOSTBYNAME_R_PROTO:
  *     This symbol encodes the prototype of gethostbyname_r.
+ *     It is zero if d_gethostbyname_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyname_r
+ *     is defined.
  */
 #$d_gethostbyname_r HAS_GETHOSTBYNAME_R           /**/
 #define GETHOSTBYNAME_R_PROTO $gethostbyname_r_proto      /**/
@@ -3940,6 +4093,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETHOSTENT_R_PROTO:
  *     This symbol encodes the prototype of gethostent_r.
+ *     It is zero if d_gethostent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostent_r
+ *     is defined.
  */
 #$d_gethostent_r HAS_GETHOSTENT_R         /**/
 #define GETHOSTENT_R_PROTO $gethostent_r_proto    /**/
@@ -3950,6 +4106,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETNETBYADDR_R_PROTO:
  *     This symbol encodes the prototype of getnetbyaddr_r.
+ *     It is zero if d_getnetbyaddr_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyaddr_r
+ *     is defined.
  */
 #$d_getnetbyaddr_r HAS_GETNETBYADDR_R     /**/
 #define GETNETBYADDR_R_PROTO $getnetbyaddr_r_proto        /**/
@@ -3960,6 +4119,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETNETBYNAME_R_PROTO:
  *     This symbol encodes the prototype of getnetbyname_r.
+ *     It is zero if d_getnetbyname_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyname_r
+ *     is defined.
  */
 #$d_getnetbyname_r HAS_GETNETBYNAME_R     /**/
 #define GETNETBYNAME_R_PROTO $getnetbyname_r_proto        /**/
@@ -3970,6 +4132,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETNETENT_R_PROTO:
  *     This symbol encodes the prototype of getnetent_r.
+ *     It is zero if d_getnetent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetent_r
+ *     is defined.
  */
 #$d_getnetent_r HAS_GETNETENT_R           /**/
 #define GETNETENT_R_PROTO $getnetent_r_proto      /**/
@@ -3980,6 +4145,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPROTOBYNAME_R_PROTO:
  *     This symbol encodes the prototype of getprotobyname_r.
+ *     It is zero if d_getprotobyname_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobyname_r
+ *     is defined.
  */
 #$d_getprotobyname_r HAS_GETPROTOBYNAME_R         /**/
 #define GETPROTOBYNAME_R_PROTO $getprotobyname_r_proto    /**/
@@ -3990,6 +4158,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPROTOBYNUMBER_R_PROTO:
  *     This symbol encodes the prototype of getprotobynumber_r.
+ *     It is zero if d_getprotobynumber_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobynumber_r
+ *     is defined.
  */
 #$d_getprotobynumber_r HAS_GETPROTOBYNUMBER_R     /**/
 #define GETPROTOBYNUMBER_R_PROTO $getprotobynumber_r_proto        /**/
@@ -4000,6 +4171,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETPROTOENT_R_PROTO:
  *     This symbol encodes the prototype of getprotoent_r.
+ *     It is zero if d_getprotoent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotoent_r
+ *     is defined.
  */
 #$d_getprotoent_r HAS_GETPROTOENT_R       /**/
 #define GETPROTOENT_R_PROTO $getprotoent_r_proto          /**/
@@ -4010,6 +4184,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETSERVBYNAME_R_PROTO:
  *     This symbol encodes the prototype of getservbyname_r.
+ *     It is zero if d_getservbyname_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyname_r
+ *     is defined.
  */
 #$d_getservbyname_r HAS_GETSERVBYNAME_R           /**/
 #define GETSERVBYNAME_R_PROTO $getservbyname_r_proto      /**/
@@ -4020,6 +4197,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETSERVBYPORT_R_PROTO:
  *     This symbol encodes the prototype of getservbyport_r.
+ *     It is zero if d_getservbyport_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyport_r
+ *     is defined.
  */
 #$d_getservbyport_r HAS_GETSERVBYPORT_R           /**/
 #define GETSERVBYPORT_R_PROTO $getservbyport_r_proto      /**/
@@ -4030,13 +4210,16 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* GETSERVENT_R_PROTO:
  *     This symbol encodes the prototype of getservent_r.
+ *     It is zero if d_getservent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservent_r
+ *     is defined.
  */
 #$d_getservent_r HAS_GETSERVENT_R         /**/
 #define GETSERVENT_R_PROTO $getservent_r_proto    /**/
 
 /* HAS_PTHREAD_ATFORK:
  *     This symbol, if defined, indicates that the pthread_atfork routine
- *     is available setup fork handlers.
+ *     is available to setup fork handlers.
  */
 #$d_pthread_atfork HAS_PTHREAD_ATFORK          /**/
 
@@ -4046,6 +4229,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* READDIR64_R_PROTO:
  *     This symbol encodes the prototype of readdir64_r.
+ *     It is zero if d_readdir64_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir64_r
+ *     is defined.
  */
 #$d_readdir64_r HAS_READDIR64_R           /**/
 #define READDIR64_R_PROTO $readdir64_r_proto      /**/
@@ -4056,6 +4242,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETHOSTENT_R_PROTO:
  *     This symbol encodes the prototype of sethostent_r.
+ *     It is zero if d_sethostent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_sethostent_r
+ *     is defined.
  */
 #$d_sethostent_r HAS_SETHOSTENT_R         /**/
 #define SETHOSTENT_R_PROTO $sethostent_r_proto    /**/
@@ -4066,6 +4255,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETLOCALE_R_PROTO:
  *     This symbol encodes the prototype of setlocale_r.
+ *     It is zero if d_setlocale_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setlocale_r
+ *     is defined.
  */
 #$d_setlocale_r HAS_SETLOCALE_R           /**/
 #define SETLOCALE_R_PROTO $setlocale_r_proto      /**/
@@ -4076,6 +4268,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETNETENT_R_PROTO:
  *     This symbol encodes the prototype of setnetent_r.
+ *     It is zero if d_setnetent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setnetent_r
+ *     is defined.
  */
 #$d_setnetent_r HAS_SETNETENT_R           /**/
 #define SETNETENT_R_PROTO $setnetent_r_proto      /**/
@@ -4086,6 +4281,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETPROTOENT_R_PROTO:
  *     This symbol encodes the prototype of setprotoent_r.
+ *     It is zero if d_setprotoent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setprotoent_r
+ *     is defined.
  */
 #$d_setprotoent_r HAS_SETPROTOENT_R       /**/
 #define SETPROTOENT_R_PROTO $setprotoent_r_proto          /**/
@@ -4096,6 +4294,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* SETSERVENT_R_PROTO:
  *     This symbol encodes the prototype of setservent_r.
+ *     It is zero if d_setservent_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_setservent_r
+ *     is defined.
  */
 #$d_setservent_r HAS_SETSERVENT_R         /**/
 #define SETSERVENT_R_PROTO $setservent_r_proto    /**/
@@ -4106,6 +4307,9 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 /* TTYNAME_R_PROTO:
  *     This symbol encodes the prototype of ttyname_r.
+ *     It is zero if d_ttyname_r is undef, and one of the
+ *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
+ *     is defined.
  */
 #$d_ttyname_r HAS_TTYNAME_R       /**/
 #define TTYNAME_R_PROTO $ttyname_r_proto          /**/