* 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.27.11" /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.27.11" /**/
+#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.27.11/site_perl" /**/
-#define SITELIB_EXP "/sys/lib/perl/5.27.11/site_perl" /**/
-#define SITELIB_STEM "/sys/lib/perl/5.27.11/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