This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / plan9 / config.plan9
index a35ba4b..a59a189 100644 (file)
@@ -2,12 +2,12 @@
  * This file is mangled by fndvers (and perhaps other scripts) to produce
  * the config.h for Plan 9. It was handwritten because the standard
  * configuration scripts were written in a shell dialect incomprehensible
- * to Plan 9. 
+ * to Plan 9.
  * config.h for Plan 9
- * Version: 5.8.0
- */                 
+ * Version: blead
+ */
 
-/* Configuration time: 21-Oct-1996 15:11
+/* First configuration time: 21-Oct-1996 15:11
  * Configured by: Luther Huffman, lutherh@stratcom.com
  * Target system: Plan 9
  */
  *
  */
 
+/* Last configuration time: June 2020
+ * Configured by: David Romano, unobe@cpan.org
+ * Target system: Plan 9/9front
+ */
+
 #ifndef _config_h_
 #define _config_h_
 
+/* CHARBITS:
+ *     This symbol contains the size of a char, so that the C preprocessor
+ *     can make decisions based on it.
+ */
+#define CHARBITS 8             /**/
+
+
 /* CAT2:
  *     This macro catenates 2 tokens together.
  */
 
-#define CAT2(a,b)a ## b
+#if 42 == 1
+#define CAT2(a,b)      a/**/b
+#define STRINGIFY(a)   "a"
+               /* If you can get stringification with catify, tell me how! */
+#endif
+#if 42 == 42
+#define PeRl_CaTiFy(a, b)      a ## b
+#define PeRl_StGiFy(a) #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros.  See K&R 2nd ed., page 231. */
+#define CAT2(a,b)      PeRl_CaTiFy(a,b)
+#define StGiFy(a)      PeRl_StGiFy(a)
+#define STRINGIFY(a)   PeRl_StGiFy(a)
+#endif
+#if 42 != 1 && 42 != 42
+#   include "Bletch: How does this C preprocessor catenate tokens?"
+#endif
+
 #define CAT3(a,b,c)a ## b ## c
 #define CAT4(a,b,c,d)a ## b ## c ## d
 #define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
 #define SCAT2(a,b)StGiFy(a) StGiFy(b)
 #define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
 #define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
 # endif
 #endif
 
-/* BIN:
- *     This symbol holds the path of the bin directory where the package will
- *     be installed. Program must be prepared to deal with ~name substitution.
- */
-/* BIN_EXP:
- *     This symbol is the filename expanded version of the BIN symbol, for
- *     programs that do not want to deal with that at run-time.
+/* BYTEORDER:
+ *     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 (eg. on NeXT systems), 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.
  */
-#define BIN "/_P9P_OBJTYPE/bin"        /*  */
-#define BIN_EXP "/_P9P_OBJTYPE/bin"    /*  */
 
 /* LOC_SED:
  *     This symbol holds the complete pathname to the sed program.
  *     This symbol, if defined, indicates that the chsize routine is available
  *     to truncate files.  You might need a -lx to get this routine.
  */
-/*#define      HAS_CHSIZE              / **/
-
-/* HASCONST:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the const type. There is no need to actually test for that symbol
- *     within your programs. The mere use of the "const" keyword will
- *     trigger the necessary tests.
- */
-#define HASCONST       /**/
-#ifndef HASCONST
-#define const
-#endif
+/*#define HAS_CHSIZE            / **/
 
 /* HAS_CUSERID:
  *     This symbol, if defined, indicates that the cuserid routine is
 #define HAS_GETLOGIN           /**/
 
 /* HAS_GETPGID:
- *     This symbol, if defined, indicates to the C program that 
+ *     This symbol, if defined, indicates to the C program that
  *     the getpgid(pid) function is available to get the
  *     process group id.
  */
 
 /* HAS_MBLEN:
  *     This symbol, if defined, indicates that the mblen routine is available
- *     to find the number of bytes in a multibye character.
+ *     to find the number of bytes in a multibyte character.
  */
 #define HAS_MBLEN              /**/
 
  *     This symbol, if defined, indicates that the mbstowcs routine is
  *     available to covert a multibyte string into a wide character string.
  */
-#define        HAS_MBSTOWCS            /**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *     This symbol, if defined, indicates that the mbtowc routine is available
  *     This symbol, if defined, indicates that the strtod routine is
  *     available to provide better numeric string conversion than atof().
  */
-#define HAS_STRTOD     /**/
+/*#define HAS_STRTOD   /**/
 
 /* HAS_STRTOL:
  *     This symbol, if defined, indicates that the strtol routine is available
  *     This symbol, if defined, indicates to the C program that it should
  *     include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define        I_ARPA_INET             /**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *     This symbol, if defined, indicates that <dbm.h> exists and should
  *     This symbol, if defined, indicates to the C program that it should
  *     include <locale.h>.
  */
-#define        I_LOCALE                /**/
+#define I_LOCALE                /**/
 
 /* I_NET_ERRNO:
- *     This symbol, if defined, indicates that <net/errno.h> exists and 
+ *     This symbol, if defined, indicates that <net/errno.h> exists and
  *     should be included.
  */
 /*#define I_NET_ERRNO          /* config-skip */
  *     This symbol, if defined, indicates the <sys/sockio.h> should be included
  *     to get socket ioctl options, like SIOCATMARK.
  */
-#define        I_SYS_IOCTL             /**/
+#define I_SYS_IOCTL             /**/
 /*#define I_SYS_SOCKIO / **/
 
 /* I_SYS_NDIR:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/stat.h>.
  */
-#define        I_SYS_STAT              /**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/times.h>.
  */
-#define        I_SYS_TIMES             /**/
+#define I_SYS_TIMES             /**/
 
 /* I_SYS_TYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <sys/types.h>.
  */
-#define        I_SYS_TYPES             /**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *     This symbol, if defined, indicates to the C program that it should
  */
 #define PLAN9           /**/
 
-/* 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(MULTIARCH)
-#  define MEM_ALIGNBYTES 8
-#else
-#define MEM_ALIGNBYTES 4
-#endif
-
 /* ARCHLIB:
  *     This variable, if defined, holds the name of the directory in
  *     which the user wants to put architecture-dependent public
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "/usr/bin" /**/
-#define BIN_EXP "/usr/bin"     /**/
+#define BIN "/_P9P_OBJTYPE/bin"        /*  */
+#define BIN_EXP "/_P9P_OBJTYPE/bin"    /*  */
 
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
 #define BYTEORDER 0x1234       /* large digits for MSB */
 #endif /* NeXT */
 
-/* CAT2:
- *     This macro catenates 2 tokens together.
- */
-/* STRINGIFY:
- *     This macro surrounds its token with double quotes.
- */
-#if 42 == 1
-#define CAT2(a,b)      a/**/b
-#define STRINGIFY(a)   "a"
-               /* If you can get stringification with catify, tell me how! */
-#endif
-#if 42 == 42
-#define PeRl_CaTiFy(a, b)      a ## b  
-#define PeRl_StGiFy(a) #a
-/* the additional level of indirection enables these macros to be
- * used as arguments to other macros.  See K&R 2nd ed., page 231. */
-#define CAT2(a,b)      PeRl_CaTiFy(a,b)
-#define StGiFy(a)      PeRl_StGiFy(a)
-#define STRINGIFY(a)   PeRl_StGiFy(a)
-#endif
-#if 42 != 1 && 42 != 42
-#   include "Bletch: How does this C preprocessor concatenate tokens?"
-#endif
-
 /* CPPSTDIN:
  *     This symbol contains the first part of the string which will invoke
  *     the C preprocessor on the standard input and produce to standard
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
  */
-/*#define      CASTI32         / **/
+/*#define CASTI32               / **/
 
 /* CASTNEGFLOAT:
  *     This symbol is defined if the C compiler can cast negative
  *             2 = couldn't cast >= 0x80000000
  *             4 = couldn't cast in argument expression list
  */
-/*#define      CASTNEGFLOAT            /* config-skip */
+/*#define CASTNEGFLOAT          /* config-skip */
 #if _P9P_OBJTYPE == 386
 #  define CASTFLAGS 3           /**/ /* config-skip */
 #else
  *     to the program to supply one.  A good guess is
  *             extern double drand48(void);
  */
-/*#define      HAS_DRAND48_PROTO       / **/
+/*#define HAS_DRAND48_PROTO     / **/
 
 /* HAS_ENDGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     This symbol, if defined, indicates that the system supports filenames
  *     longer than 14 characters.
  */
-#define        FLEXFILENAMES           /**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_FP_CLASS:
  *     This symbol, if defined, indicates that the fp_class routine is
 
 /* HAS_FPCLASSIFY:
  *     This symbol, if defined, indicates that the fpclassify routine is
- *     available to classify doubles.  Available for example in HP-UX.
+ *     available to classify doubles.  Available for example in HP-UX and
+ *  Plan9/9front.
  *     The returned values are defined in <math.h> and are
  *
  *           FP_NORMAL     Normalized
  *           FP_NAN        NaN
  *
  */
-/*#define HAS_FPCLASSIFY               / **/
+#define HAS_FPCLASSIFY         / **/
 
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define      HAS_FPOS64_T            / **/
+/*#define HAS_FPOS64_T          / **/
 
 /* HAS_FREXPL:
  *     This symbol, if defined, indicates that the frexpl routine is
  *     gethostbyaddr().  Otherwise, it is up to the program to guess
  *     them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define      HAS_GETHOST_PROTOS      / **/
+/*#define HAS_GETHOST_PROTOS    / **/
 
 /* HAS_GETITIMER:
  *     This symbol, if defined, indicates that the getitimer routine is
  *     getnetbyaddr().  Otherwise, it is up to the program to guess
  *     them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define      HAS_GETNET_PROTOS       / **/
+/*#define HAS_GETNET_PROTOS     / **/
 
 /* HAS_GETPAGESIZE:
  *     This symbol, if defined, indicates that the getpagesize system call
  *     getprotobyaddr().  Otherwise, it is up to the program to guess
  *     them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define      HAS_GETPROTO_PROTOS     / **/
+/*#define HAS_GETPROTO_PROTOS   / **/
 
 /* HAS_GETPRPWNAM:
  *     This symbol, if defined, indicates that the getprpwnam system call is
  *     getservbyaddr().  Otherwise, it is up to the program to guess
  *     them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define      HAS_GETSERV_PROTOS      / **/
+/*#define HAS_GETSERV_PROTOS    / **/
 
 /* HAS_GETSPNAM:
  *     This symbol, if defined, indicates that the getspnam system call is
  *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_gmtime_r
  *     is defined.
  */
-/*#define HAS_GMTIME_R    / **/
+#define HAS_GMTIME_R      / **/
 #define GMTIME_R_PROTO 0          /**/
 
 /* HAS_GNULIBC:
- *     This symbol, if defined, indicates to the C program that 
+ *     This symbol, if defined, indicates to the C program that
  *     the GNU C library is being used.  A better check is to use
  *     the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
  */
 #define     HAS_INT64_T               /**/
 
 /* HAS_ISASCII:
- *     This manifest constant lets the C program know that isascii 
+ *     This manifest constant lets the C program know that isascii
  *     is available.
  */
 /*#define HAS_ISASCII          / **/
  *     REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r
  *     is defined.
  */
-/*#define HAS_LOCALTIME_R         / **/
-/*#define LOCALTIME_R_NEEDS_TZSET         / **/
+#define HAS_LOCALTIME_R
+#define LOCALTIME_R_NEEDS_TZSET           / **/
 #define LOCALTIME_R_PROTO 0       /**/
-
+#ifdef LOCALTIME_R_NEEDS_TZSET
+#define L_R_TZSET tzset(),
+#else
+#define L_R_TZSET
+#endif
 /* HAS_LONG_DOUBLE:
  *     This symbol will be defined if the C compiler supports long
  *     doubles.
  */
 /* LONG_DOUBLESIZE:
- *     This symbol contains the size of a long double, so that the 
+ *     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.
- */
-#define HAS_LONG_DOUBLE                /**/
+ *     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_LE_LE
+ *     LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE
+ *     LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE
+ *     LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE
+ *     LONG_DOUBLE_IS_UNKNOWN_FORMAT
+ *     It is only defined if the system supports long doubles.
+ */
+/*#define  HAS_LDEXPL          / **/
+#define HAS_LONG_DOUBLE                / **/
 #ifdef HAS_LONG_DOUBLE
 #define LONG_DOUBLESIZE 8              /**/
+#define LONG_DOUBLEKIND 0              /**/
+#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_LE_LE      5
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE      6
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE      7
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE      8
+#define LONG_DOUBLE_IS_UNKNOWN_FORMAT                  -1
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN      LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */
 #endif
 
+
 /* HAS_LONG_LONG:
  *     This symbol will be defined if the C compiler supports long long.
  */
 /* LONGLONGSIZE:
- *     This symbol contains the size of a long long, so that the 
+ *     This symbol contains the size of a long long, so that the
  *     C preprocessor can make decisions based on it.  It is only
  *     defined if the system supports long long.
  */
  *     to the program to supply one.  A good guess is
  *             extern off_t lseek(int, off_t, int);
  */
-/*#define      HAS_LSEEK_PROTO / **/
+/*#define HAS_LSEEK_PROTO       / **/
 
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
 /* HAS_OFF64_T:
  *     This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define      HAS_OFF64_T             / **/
+/*#define HAS_OFF64_T                   / **/
 
 /* HAS_OPEN3:
  *     This manifest constant lets the C program know that the three
 /*#define OLD_PTHREAD_CREATE_JOINABLE  / **/
 
 /* HAS_PTHREAD_YIELD:
- *     This symbol, if defined, indicates that the pthread_yield 
+ *     This symbol, if defined, indicates that the pthread_yield
  *     routine is available to yield the execution of the current
  *     thread.  sched_yield is preferable to pthread_yield.
  */
  *             extern void* sbrk(int);
  *             extern void* sbrk(size_t);
  */
-/*#define      HAS_SBRK_PROTO  / **/
+/*#define HAS_SBRK_PROTO        / **/
 
 /* HAS_SEM:
  *     This symbol, if defined, indicates that the entire sem*(2) library is
  *     This symbol, if defined, indicates that the BSD socketpair() call is
  *     supported.
  */
-#define        HAS_SOCKET              /**/
-#define        HAS_SOCKETPAIR  /**/
+#define HAS_SOCKET              /**/
+#define HAS_SOCKETPAIR  /**/
 
 /* HAS_SOCKS5_INIT:
  *     This symbol, if defined, indicates that the socks5_init routine is
  *     to the program to supply one.  A good guess is
  *             extern long telldir(DIR*);
  */
-/*#define      HAS_TELLDIR_PROTO       / **/
+/*#define HAS_TELLDIR_PROTO     / **/
 
 /* HAS_TIME:
  *     This symbol, if defined, indicates that the time() routine exists.
  *     This symbol, if defined, indicates that this system uses
  *     EBCDIC encoding.
  */
-/*#define      EBCDIC          / **/
+/*#define EBCDIC                / **/
 
 /* FFLUSH_NULL:
  *     This symbol, if defined, tells that fflush(NULL) does flush
  *     Note that if fflushNULL is defined, fflushall will not
  *     even be probed for and will be left undefined.
  */
-#define        FFLUSH_NULL             /**/
-/*#define      FFLUSH_ALL              / **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* Fpos_t:
  *     This symbol holds the type used to declare file positions in libc.
 /* Gid_t_f:
  *     This symbol defines the format string used for printing a Gid_t.
  */
-#define        Gid_t_f         "hd"            /**/
+#define Gid_t_f         "hd"            /**/
 
 /* Gid_t_sign:
  *     This symbol holds the signedess of a Gid_t.
  *     This symbol holds the type used for the second argument to
  *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, gid_t, etc... 
- *     It may be necessary to include <sys/types.h> to get any 
+ *     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 setgroups()..
  */
  *     This symbol, if defined, indicates that <fp_class.h> exists and
  *     should be included.
  */
-/*#define      I_FP_CLASS              / **/
+/*#define I_FP_CLASS            / **/
 
 /* I_GRP:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates that <ieeefp.h> exists and
  *     should be included.
  */
-/*#define      I_IEEEFP                / **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates that <libutil.h> exists and
  *     should be included.
  */
-/*#define      I_LIBUTIL               / **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MACH_CTHREADS:
  *     This symbol, if defined, indicates to the C program that it should
  *     This symbol, if defined, indicates that <mntent.h> exists and
  *     should be included.
  */
-/*#define      I_MNTENT                / **/
+/*#define I_MNTENT              / **/
 
 /* I_NETDB:
  *     This symbol, if defined, indicates that <netdb.h> exists and
  *     This symbol, if defined, indicates that <poll.h> exists and
  *     should be included.
  */
-/*#define      I_POLL          / **/
+/*#define I_POLL                / **/
 
 /* I_PROT:
  *     This symbol, if defined, indicates that <prot.h> exists and
  *     should be included.
  */
-/*#define      I_PROT          / **/
+/*#define I_PROT                / **/
 
 /* I_PTHREAD:
  *     This symbol, if defined, indicates to the C program that it should
 /*#define PWGECOS      / **/
 /*#define PWPASSWD     / **/
 
+/* I_QUADMATH:
+ *     This symbol, if defined, indicates that <quadmath.h> exists and
+ *     should be included.
+ */
+/*#define I_QUADMATH            / **/
+
 /* I_SHADOW:
  *     This symbol, if defined, indicates that <shadow.h> exists and
  *     should be included.
  */
-/*#define      I_SHADOW                / **/
+/*#define I_SHADOW              / **/
 
 /* I_SOCKS:
  *     This symbol, if defined, indicates that <socks.h> exists and
  *     should be included.
  */
-/*#define      I_SOCKS         / **/
+/*#define I_SOCKS               / **/
 
 /* I_SUNMATH:
  *     This symbol, if defined, indicates that <sunmath.h> exists and
  *     should be included.
  */
-/*#define      I_SUNMATH               / **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *     This symbol, if defined, indicates that <syslog.h> exists and
  *     should be included.
  */
-/*#define      I_SYSLOG                / **/
+/*#define I_SYSLOG              / **/
 
 /* I_SYSMODE:
  *     This symbol, if defined, indicates that <sys/mode.h> exists and
  *     should be included.
  */
-/*#define      I_SYSMODE               / **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *     This symbol, if defined, indicates that <sys/mount.h> exists and
  *     should be included.
  */
-/*#define      I_SYS_MOUNT             / **/
+/*#define I_SYS_MOUNT           / **/
 
 /* I_SYS_STATFS:
  *     This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define      I_SYS_STATFS            / **/
+/*#define I_SYS_STATFS          / **/
 
 /* I_SYS_STATVFS:
  *     This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *     should be included.
  */
-/*#define      I_SYS_STATVFS           / **/
+/*#define I_SYS_STATVFS         / **/
 
 /* I_SYSUIO:
  *     This symbol, if defined, indicates that <sys/uio.h> exists and
  *     should be included.
  */
-#define        I_SYSUIO                /**/
+#define I_SYSUIO                /**/
 
 /* I_SYSUTSNAME:
  *     This symbol, if defined, indicates that <sys/utsname.h> exists and
  *     should be included.
  */
-#define        I_SYSUTSNAME            /**/
+#define I_SYSUTSNAME            /**/
 
 /* I_SYS_VFS:
  *     This symbol, if defined, indicates that <sys/vfs.h> exists and
  *     should be included.
  */
-/*#define      I_SYS_VFS               / **/
+/*#define I_SYS_VFS             / **/
 
 /* Plan 9: P9 has both <time.h> and <sys/time.h> */
 /* I_TIME:
  *     This symbol, if defined, indicates that <ustat.h> exists and
  *     should be included.
  */
-/*#define      I_USTAT         / **/
+/*#define I_USTAT               / **/
 
 /* PERL_INC_VERSION_LIST:
  *     This variable specifies the list of subdirectories in over
  */
 /*#define INSTALL_USR_BIN_PERL / **/
 
+/* DOUBLEINFBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes for the double precision infinity.
+ */
+/* DOUBLENANBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes (0xHH) for the double precision not-a-number.
+ */
+/* LONGDBLINFBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes for the long double precision infinity.
+ */
+/* LONGDBLNANBYTES:
+ *     This symbol, if defined, is a comma-separated list of
+ *     hexadecimal bytes (0xHH) for the long double precision not-a-number.
+ */
+#define DOUBLEINFBYTES  0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7f         /**/
+#define DOUBLENANBYTES  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f         /**/
+#define LONGDBLINFBYTES 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7f         /**/
+#define LONGDBLNANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00         /**/
+
 /* PERL_PRIfldbl:
  *     This symbol, if defined, contains the string used by stdio to
  *     format long doubles (format 'f') for output.
 #define MYMALLOC                       /**/
 
 /* Mode_t:
- *     This symbol holds the type used to declare file modes 
+ *     This symbol holds the type used to declare file modes
  *     for systems calls.  It is usually mode_t, but may be
  *     int or unsigned short.  It may be necessary to include <sys/types.h>
  *     to get any typedef'ed information.
  *     of copying mechanisms, handy.h defines a platform-
  *     independent macro, Perl_va_copy(src, dst), to do the job.
  */
-/*#define      NEED_VA_COPY            / **/
+/*#define NEED_VA_COPY          / **/
 
 /* Netdb_host_t:
  *     This symbol holds the type used for the 1st argument
  *     This symbol contains the number of bits a variable of type NVTYPE
  *     can preserve of a variable of type UVTYPE.
  */
-#define        IVTYPE          long            /**/
-#define        UVTYPE          unsigned long           /**/
-#define        I8TYPE          char            /**/
-#define        U8TYPE          unsigned char           /**/
-#define        I16TYPE         short   /**/
-#define        U16TYPE         unsigned short  /**/
-#define        I32TYPE         long    /**/
-#define        U32TYPE         unsigned long   /**/
+/* NV_OVERFLOWS_INTEGERS_AT:
+ *     This symbol gives the largest integer value that NVs can hold. This
+ *     value + 1.0 cannot be stored accurately. It is expressed as constant
+ *     floating point expression to reduce the chance of decimale/binary
+ *     conversion issues. If it can not be determined, the value 0 is given.
+ */
+/* NV_ZERO_IS_ALLBITS_ZERO:
+ *     This symbol, if defined, indicates that a variable of type NVTYPE
+ *     stores 0.0 in memory as all bits zero.
+ */
+#define IVTYPE          long            /**/
+#define UVTYPE          unsigned long           /**/
+#define I8TYPE          char            /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         long    /**/
+#define U32TYPE         unsigned long   /**/
 #ifdef HAS_QUAD
-#define        I64TYPE         long long       /**/
-#define        U64TYPE         unsigned long long      /**/
+#define I64TYPE         long long       /**/
+#define U64TYPE         unsigned long long      /**/
 #endif
-#define        NVTYPE          double          /**/
-#define        IVSIZE          4               /**/
-#define        UVSIZE          4               /**/
-#define        I8SIZE          1               /**/
-#define        U8SIZE          1               /**/
-#define        I16SIZE         2       /**/
-#define        U16SIZE         2       /**/
-#define        I32SIZE         4       /**/
-#define        U32SIZE         4       /**/
+#define NVTYPE          double          /**/
+#define IVSIZE          4               /**/
+#define UVSIZE          4               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define        I64SIZE         8       /**/
-#define        U64SIZE         8       /**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define        NVSIZE          8               /**/
-/*#define      NV_PRESERVES_UV
-#define        NV_PRESERVES_UV_BITS    31
+#define NVSIZE          8               /**/
+#define NV_PRESERVES_UV
+#define NV_PRESERVES_UV_BITS    31
+#define NV_OVERFLOWS_INTEGERS_AT        256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
+#undef NV_ZERO_IS_ALLBITS_ZERO
 
 /* IVdf:
  *     This symbol defines the format string used for printing a Perl IV
  *     This symbol defines the format string used for printing a Perl NV
  *     using %g-ish floating point format.
  */
-#define        IVdf            "ld"            /**/
-#define        UVuf            "lu"            /**/
-#define        UVof            "lo"            /**/
-#define        UVxf            "lx"            /**/
-#define        UVXf            "lX"            /**/
-#define        NVef            "e"             /**/
-#define        NVff            "f"             /**/
-#define        NVgf            "g"             /**/
+/* I32df:
+ *     This symbol defines the format string used for printing a Perl I32
+ *     as a signed decimal integer.
+ */
+/* U32uf:
+ *     This symbol defines the format string used for printing a Perl U32
+ *     as an unsigned decimal integer.
+ */
+/* U32of:
+ *     This symbol defines the format string used for printing a Perl U32
+ *     as an unsigned octal integer.
+ */
+/* U32xf:
+ *     This symbol defines the format string used for printing a Perl U32
+ *     as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *     This symbol defines the format string used for printing a Perl U32
+ *     as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define IVdf            "ld"            /**/
+#define UVuf            "lu"            /**/
+#define UVof            "lo"            /**/
+#define UVxf            "lx"            /**/
+#define UVXf            "lX"            /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
+#define I32df           "ld"            /**/
+#define U32uf           "lu"            /**/
+#define U32of           "lo"            /**/
+#define U32xf           "lx"            /**/
+#define U32Xf           "lX"            /**/
 
 /* Pid_t:
  *     This symbol holds the type used to declare process ids in the kernel.
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/sys/lib/perl/5.29.0"         /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.29.0"             /**/
+#define PRIVLIB "/sys/lib/perl/_P9P_VERSION"           /**/
+#define PRIVLIB_EXP "/sys/lib/perl/_P9P_VERSION"               /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
 /* Select_fd_set_t:
  *     This symbol holds the type used for the 2nd, 3rd, and 4th
  *     arguments to select.  Usually, this is 'fd_set *', if HAS_FD_SET
- *     is defined, and 'int *' otherwise.  This is only useful if you 
+ *     is defined, and 'int *' otherwise.  This is only useful if you
  *     have select(), of course.
  */
 #define Select_fd_set_t        fd_set* /**/
  *     The signals in the list are separated with commas, and the indices
  *     within that list and the SIG_NAME list match, so it's easy to compute
  *     the signal name from a number or vice versa at the price of a small
- *     dynamic linear lookup. 
+ *     dynamic linear lookup.
  *     Duplicates are allowed, but are moved to the end of the list.
  *     The signal number corresponding to sig_name[i] is sig_number[i].
- *     if (i < NSIG) then sig_number[i] == i.  
+ *     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.
  */
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/sys/lib/perl/5.29.0/site_perl"               /**/
-#define SITELIB_EXP "/sys/lib/perl/5.29.0/site_perl"           /**/
-#define SITELIB_STEM "/sys/lib/perl/5.29.0/site_perl"          /**/
+#define SITELIB "/sys/lib/perl/_P9P_VERSION/site_perl"         /**/
+#define SITELIB_EXP "/sys/lib/perl/_P9P_VERSION/site_perl"             /**/
+#define SITELIB_STEM "/sys/lib/perl/_P9P_VERSION/site_perl"            /**/
 
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/bin/perl"                /**/
+#define STARTPERL "#!/bin/perl-_P9P_VERSION"           /**/
 
 /* STDCHAR:
  *     This symbol is defined to be the type of char used in stdio.h.
  *     This symbol tells the name of the array holding the stdio streams.
  *     Usual values include _iob, __iob, and __sF.
  */
-/*#define      HAS_STDIO_STREAM_ARRAY  / **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #define STDIO_STREAM_ARRAY     
 
 /* Uid_t_f:
  *     This symbol defines the format string used for printing a Uid_t.
  */
-#define        Uid_t_f         "hd"            /**/
+#define Uid_t_f         "hd"            /**/
 
 /* Uid_t_sign:
  *     This symbol holds the signedess of a Uid_t.
  */
 #define Uid_t uid_t            /* UID type */
 
+/* GMTIME_MAX:
+ *     This symbol contains the maximum value for the time_t offset that
+ *     the system function gmtime () accepts, and defaults to 0
+ */
+/* GMTIME_MIN:
+ *     This symbol contains the minimum value for the time_t offset that
+ *     the system function gmtime () accepts, and defaults to 0
+ */
+/* LOCALTIME_MAX:
+ *     This symbol contains the maximum value for the time_t offset that
+ *     the system function localtime () accepts, and defaults to 0
+ */
+/* LOCALTIME_MIN:
+ *     This symbol contains the minimum value for the time_t offset that
+ *     the system function localtime () accepts, and defaults to 0
+ */
+#define GMTIME_MAX             2147483647      /**/
+#define GMTIME_MIN             0       /**/
+#define LOCALTIME_MAX  2147483647      /**/
+#define LOCALTIME_MIN  0       /**/
+
 /* USE_64_BIT_INT:
  *     This symbol, if defined, indicates that 64-bit integers should
  *     be used when available.  If not defined, the native integers
  *     you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-/*#define      USE_64_BIT_INT          / **/
+/*#define USE_64_BIT_INT                / **/
 #endif
 
 #ifndef USE_64_BIT_ALL
-/*#define      USE_64_BIT_ALL          / **/
+/*#define USE_64_BIT_ALL                / **/
 #endif
 
 /* USE_FAST_STDIO:
  *     Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define      USE_FAST_STDIO          / **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_LARGE_FILES:
  *     should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define        USE_LARGE_FILES         /**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
  *     be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define      USE_LONG_DOUBLE         / **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
  *     long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define      USE_MORE_BITS           / **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
  *     be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define      MULTIPLICITY            / **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_PERLIO:
  *     used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define        USE_PERLIO              /**/
+#define USE_PERLIO              /**/
+#endif
+
+/* USE_QUADMATH:
+ *     This symbol, if defined, indicates that the quadmath library should
+ *     be used when available.
+ */
+#ifndef USE_QUADMATH
+/*#define USE_QUADMATH          / **/
 #endif
 
 /* USE_SOCKS:
  *     be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define      USE_SOCKS               / **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* USE_ITHREADS:
  *     This symbol, if defined, indicates that Perl should be built to
  *     use the interpreter-based threading implementation.
  */
-/* USE_5005THREADS:
- *     This symbol, if defined, indicates that Perl should be built to
- *     use the 5.005-based threading implementation.
- */
 /* OLD_PTHREADS_API:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use the old draft POSIX threads API.
  *     try to use the various _r versions of library functions.
  *     This is extremely experimental.
  */
-/*#define      USE_5005THREADS         / **/
-/*#define      USE_ITHREADS            / **/
-#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
-#define                USE_THREADS             /* until src is revised*/
-#endif
-/*#define      OLD_PTHREADS_API                / **/
-/*#define      USE_REENTRANT_API       / **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* PERL_VENDORARCH:
  *     If defined, this symbol contains the name of a private library.
  *     The library is private in the sense that it needn't be in anyone's
  *     execution path, but it should be accessible by the world.
- *     It may have a ~ on the front. 
+ *     It may have a ~ on the front.
  *     The standard distribution will put nothing in this directory.
  *     Vendors who distribute perl may wish to place their own
  *     architecture-dependent modules and extensions in this directory with
- *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor
  *     or equivalent.  See INSTALL for details.
  */
 /* PERL_VENDORARCH_EXP:
  *     Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define      USE_CROSS_COMPILE       / **/
-#define        PERL_TARGETARCH ""      /**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* HAS_COPYSIGNL:
  *     to the program to supply one.  A good guess is
  *             extern int dbminit(char *);
  */
-/*#define      HAS_DBMINIT_PROTO       / **/
+/*#define HAS_DBMINIT_PROTO     / **/
 
 /* HAS_DIRFD:
  *     This manifest constant lets the C program know that dirfd
  *     to the program to supply one.  A good guess is
  *             extern int flock(int, int);
  */
-/*#define      HAS_FLOCK_PROTO / **/
+/*#define HAS_FLOCK_PROTO       / **/
 
 /* HAS_FPCLASSL:
  *     This symbol, if defined, indicates that the fpclassl routine is
  *     to the program to supply one.  A good guess is
  *             extern int sockatmark(int);
  */
-/*#define      HAS_SOCKATMARK_PROTO    / **/
+/*#define HAS_SOCKATMARK_PROTO  / **/
 
 /* HAS_SETRESGID_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     to the program to supply one.  Good guesses are
  *             extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define      HAS_SETRESGID_PROTO     / **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     to the program to supply one.  Good guesses are
  *             extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define      HAS_SETRESUID_PROTO     / **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRFTIME:
  *     This symbol, if defined, indicates that the strftime routine is
  *             extern int syscall(int,  ...);
  *             extern int syscall(long, ...);
  */
-/*#define      HAS_SYSCALL_PROTO       / **/
+/*#define HAS_SYSCALL_PROTO     / **/
 
 /* U32_ALIGNMENT_REQUIRED:
  *     This symbol, if defined, indicates that you must access
  *     to the program to supply one.  A good guess is
  *             extern int usleep(useconds_t);
  */
-/*#define      HAS_USLEEP_PROTO        / **/
+/*#define HAS_USLEEP_PROTO      / **/
 
 /* I_CRYPT:
  *     This symbol, if defined, indicates that <crypt.h> exists and
  *     should be included.
  */
-/*#define      I_CRYPT         / **/
+/*#define I_CRYPT               / **/
 
 /* I_FP:
  *     This symbol, if defined, indicates that <fp.h> exists and
  *     should be included.
  */
-/*#define      I_FP            / **/
+/*#define I_FP          / **/
 
 /* I_LANGINFO:
  *     This symbol, if defined, indicates that <langinfo.h> exists and
  *     should be included.
  */
-/*#define      I_LANGINFO              / **/
+/*#define I_LANGINFO            / **/
 
 /* HAS_CTERMID_R:
  *     This symbol, if defined, indicates that the ctermid_r routine