+#!/bin/sh
+#
# THIS IS A GENERATED FILE
# DO NOT HAND-EDIT
#
*/
#$d_bzero HAS_BZERO /**/
+/* HAS_CBRT:
+ * This symbol, if defined, indicates that the cbrt() (cube root)
+ * function is available.
+ */
+#$d_cbrt HAS_CBRT /**/
+
/* HAS_CHOWN:
* This symbol, if defined, indicates that the chown routine is
* available.
/* HAS_MBSTOWCS:
* This symbol, if defined, indicates that the mbstowcs routine is
- * available to covert a multibyte string into a wide character string.
+ * available to convert a multibyte string into a wide character string.
*/
#$d_mbstowcs HAS_MBSTOWCS /**/
/* HAS_MBTOWC:
* This symbol, if defined, indicates that the mbtowc routine is available
- * to covert a multibyte to a wide character.
+ * to convert a multibyte to a wide character.
*/
#$d_mbtowc HAS_MBTOWC /**/
*/
#$d_readlink HAS_READLINK /**/
+/* HAS_REGCOMP:
+ * This symbol, if defined, indicates that the regcomp() routine is
+ * available to do some regular patern matching (usually on POSIX.2
+ * conforming systems).
+ */
+#$d_regcomp HAS_REGCOMP /* POSIX.2 */
+
/* HAS_RENAME:
* This symbol, if defined, indicates that the rename routine is available
* to rename files. Otherwise you should do the unlink(), link(), unlink()
*/
#$d_setsid HAS_SETSID /**/
+/* HAS_STAT:
+ * This symbol, if defined, indicates that the stat routine is
+ * available to get file status.
+ */
+#$d_stat HAS_STAT /**/
+
/* HAS_STRCHR:
* This symbol is defined to indicate that the strchr()/strrchr()
* functions are available for string searching. If not, try the
/* HAS_WCTOMB:
* This symbol, if defined, indicates that the wctomb routine is available
- * to covert a wide character to a multibyte.
+ * to convert a wide character to a multibyte.
*/
#$d_wctomb HAS_WCTOMB /**/
*/
#$i_niin I_NETINET_IN /**/
-/* I_SFIO:
- * This symbol, if defined, indicates to the C program that it should
- * include <sfio.h>.
- */
-#$i_sfio I_SFIO /**/
-
/* I_STDDEF:
* This symbol, if defined, indicates that <stddef.h> exists and should
* be included.
*/
#$i_syswait I_SYS_WAIT /**/
-/* I_TERMIO:
- * This symbol, if defined, indicates that the program should include
- * <termio.h> rather than <sgtty.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-/* I_TERMIOS:
- * This symbol, if defined, indicates that the program should include
- * the POSIX termios.h rather than sgtty.h or termio.h.
- * There are also differences in the ioctl() calls that depend on the
- * value of this symbol.
- */
-/* I_SGTTY:
- * This symbol, if defined, indicates that the program should include
- * <sgtty.h> rather than <termio.h>. There are also differences in
- * the ioctl() calls that depend on the value of this symbol.
- */
-#$i_termio I_TERMIO /**/
-#$i_termios I_TERMIOS /**/
-#$i_sgtty I_SGTTY /**/
-
/* I_UNISTD:
* This symbol, if defined, indicates to the C program that it should
* include <unistd.h>.
#define OSNAME "$osname" /**/
#define OSVERS "$osvers" /**/
-/* USE_CROSS_COMPILE:
- * This symbol, if defined, indicates that Perl is being cross-compiled.
- */
-/* PERL_TARGETARCH:
- * This symbol, if defined, indicates the target architecture
- * Perl has been cross-compiled to. Undefined if not a cross-compile.
- */
-#ifndef USE_CROSS_COMPILE
-#$usecrosscompile USE_CROSS_COMPILE /**/
-#define PERL_TARGETARCH "$targetarch" /**/
-#endif
-
/* MULTIARCH:
* This symbol, if defined, signifies that the build
* process will produce some binary files that are going to be
/* 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.
+ * 4 and 8. The default is eight, for safety. For cross-compiling
+ * or multiarch support, Configure will set a minimum of 8.
*/
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
-#else
#define MEM_ALIGNBYTES $alignbytes
-#endif
/* ARCHLIB:
* This variable, if defined, holds the name of the directory in
* 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
+ * binaries, use compiler-defined macros to
* determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+ */
+#if defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
# endif
# endif
# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
#else
#define BYTEORDER 0x$byteorder /* large digits for MSB */
-#endif /* NeXT */
+#endif
/* CHARBITS:
* This symbol contains the size of a char, so that the C preprocessor
#$d_attribute_unused HASATTRIBUTE_UNUSED /**/
#$d_attribute_warn_unused_result HASATTRIBUTE_WARN_UNUSED_RESULT /**/
+/* HAS_BACKTRACE:
+ * This symbol, if defined, indicates that the backtrace() routine is
+ * available to get a stack trace. The <execinfo.h> header must be
+ * included to use this routine.
+ */
+#$d_backtrace HAS_BACKTRACE /**/
+
/* CASTI32:
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
#$d_ctime_r HAS_CTIME_R /**/
#define CTIME_R_PROTO $ctime_r_proto /**/
+/* HAS_DLADDR:
+ * This symbol, if defined, indicates that the dladdr() routine is
+ * available to query dynamic linker information for an address.
+ * The <dlfcn.h> header must be included to use this routine.
+ */
+#$d_dladdr HAS_DLADDR /**/
+
/* SETUID_SCRIPTS_ARE_SECURE_NOW:
* This symbol, if defined, indicates that the bug that prevents
* setuid scripts from being secure is not present in this kernel.
/* LONG_DOUBLESIZE:
* This symbol contains the size of a long double, so that the
* C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
+ * defined if the system supports long doubles. Note that this
+ * is sizeof(long double), which may include unused bytes.
+ */
+/* HAS_LDEXPL:
+ * This symbol, if defined, indicates that the ldexpl routine is
+ * available to shift a long double floating-point number
+ * by an integral power of 2.
+ */
+/* LONG_DOUBLEKIND:
+ * LONG_DOUBLEKIND will be one of
+ * LONG_DOUBLE_IS_DOUBLE
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN
+ * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+ * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_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.
+ */
+#$d_ldexpl HAS_LDEXPL /**/
#$d_longdbl HAS_LONG_DOUBLE /**/
#ifdef HAS_LONG_DOUBLE
#define LONG_DOUBLESIZE $longdblsize /**/
+#define LONG_DOUBLEKIND $longdblkind /**/
+#define LONG_DOUBLE_IS_DOUBLE 0
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 1
+#define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2
+#define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3
+#define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_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
+/* Backward compat. */
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE
+#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE
#endif
/* HAS_LONG_LONG:
*/
#$d_sigaction HAS_SIGACTION /**/
+/* HAS_SIGINFO_SI_ERRNO:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_errno member
+ */
+#$d_siginfo_si_errno HAS_SIGINFO_SI_ERRNO /**/
+
+/* HAS_SIGINFO_SI_PID:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_pid member
+ */
+#$d_siginfo_si_pid HAS_SIGINFO_SI_PID /**/
+
+/* HAS_SIGINFO_SI_UID:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_uid member
+ */
+#$d_siginfo_si_uid HAS_SIGINFO_SI_UID /**/
+
+/* HAS_SIGINFO_SI_ADDR:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_addr member
+ */
+#$d_siginfo_si_addr HAS_SIGINFO_SI_ADDR /**/
+
+/* HAS_SIGINFO_SI_STATUS:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_status member
+ */
+#$d_siginfo_si_status HAS_SIGINFO_SI_STATUS /**/
+
+/* HAS_SIGINFO_SI_BAND:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_band member
+ */
+#$d_siginfo_si_band HAS_SIGINFO_SI_BAND /**/
+
+/* HAS_SIGINFO_SI_VALUE:
+ * This symbol, if defined, indicates that siginfo_t has the
+ * si_value member
+ */
+#$d_siginfo_si_value HAS_SIGINFO_SI_VALUE /**/
+
/* HAS_SIGSETJMP:
* This variable indicates to the C program that the sigsetjmp()
* routine is available to save the calling process's registers
* This symbol, if defined, indicates that the BSD socketpair() call is
* supported.
*/
-/* HAS_MSG_CTRUNC:
- * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_DONTROUTE:
- * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_OOB:
- * This symbol, if defined, indicates that the MSG_OOB is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_PEEK:
- * This symbol, if defined, indicates that the MSG_PEEK is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_MSG_PROXY:
- * This symbol, if defined, indicates that the MSG_PROXY is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
-/* HAS_SCM_RIGHTS:
- * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
- * Checking just with #ifdef might not be enough because this symbol
- * has been known to be an enum.
- */
/* HAS_SOCKADDR_SA_LEN:
* This symbol, if defined, indicates that the struct sockaddr
* structure has a member called sa_len, indicating the length of
* the structure.
*/
+/* HAS_SOCKADDR_IN6:
+ * This symbol, if defined, indicates the availability of
+ * struct sockaddr_in6;
+ */
/* HAS_SIN6_SCOPE_ID:
* This symbol, if defined, indicates that the struct sockaddr_in6
* structure has a member called sin6_scope_id.
*/
+/* HAS_IP_MREQ:
+ * This symbol, if defined, indicates the availability of
+ * struct ip_mreq;
+ */
+/* HAS_IP_MREQ_SOURCE:
+ * This symbol, if defined, indicates the availability of
+ * struct ip_mreq_source;
+ */
+/* HAS_IPV6_MREQ:
+ * This symbol, if defined, indicates the availability of
+ * struct ipv6_mreq;
+ */
+/* HAS_IPV6_MREQ_SOURCE:
+ * This symbol, if defined, indicates the availability of
+ * struct ipv6_mreq_source;
+ */
#$d_socket HAS_SOCKET /**/
#$d_sockpair HAS_SOCKETPAIR /**/
#$d_sockaddr_sa_len HAS_SOCKADDR_SA_LEN /**/
-#$d_msg_ctrunc HAS_MSG_CTRUNC /**/
-#$d_msg_dontroute HAS_MSG_DONTROUTE /**/
-#$d_msg_oob HAS_MSG_OOB /**/
-#$d_msg_peek HAS_MSG_PEEK /**/
-#$d_msg_proxy HAS_MSG_PROXY /**/
-#$d_scm_rights HAS_SCM_RIGHTS /**/
+#$d_sockaddr_in6 HAS_SOCKADDR_IN6 /**/
#$d_sin6_scope_id HAS_SIN6_SCOPE_ID /**/
+#$d_ip_mreq HAS_IP_MREQ /**/
+#$d_ip_mreq_source HAS_IP_MREQ_SOURCE /**/
+#$d_ipv6_mreq HAS_IPV6_MREQ /**/
+#$d_ipv6_mreq_source HAS_IPV6_MREQ_SOURCE /**/
/* HAS_SRAND48_R:
* This symbol, if defined, indicates that the srand48_r routine
#define DOUBLESIZE $doublesize /**/
/* EBCDIC:
- * This symbol, if defined, indicates that this system uses
+ * This symbol, if defined, indicates that this system uses
* EBCDIC encoding.
*/
#$ebcdic EBCDIC /**/
#define Gid_t_f $gidformat /**/
/* Gid_t_sign:
- * This symbol holds the signedess of a Gid_t.
+ * This symbol holds the signedness of a Gid_t.
* 1 for unsigned, -1 for signed.
*/
#define Gid_t_sign $gidsign /* GID sign */
#$d_dirnamlen DIRNAMLEN /**/
#define Direntry_t $direntrytype
+/* I_EXECINFO:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <execinfo.h> for backtrace() support.
+ */
+#$i_execinfo I_EXECINFO /**/
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
*/
#$i_sysuio I_SYSUIO /**/
+/* I_TERMIO:
+ * This symbol, if defined, indicates that the program should include
+ * <termio.h> rather than <sgtty.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+/* I_TERMIOS:
+ * This symbol, if defined, indicates that the program should include
+ * the POSIX termios.h rather than sgtty.h or termio.h.
+ * There are also differences in the ioctl() calls that depend on the
+ * value of this symbol.
+ */
+/* I_SGTTY:
+ * This symbol, if defined, indicates that the program should include
+ * <sgtty.h> rather than <termio.h>. There are also differences in
+ * the ioctl() calls that depend on the value of this symbol.
+ */
+#$i_termio I_TERMIO /**/
+#$i_termios I_TERMIOS /**/
+#$i_sgtty I_SGTTY /**/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
* /bin/pdksh, /bin/ash, /bin/bash, or even something such as
* D:/bin/sh.exe.
*/
-#define SH_PATH "$sh" /**/
+#define SH_PATH "$targetsh" /**/
/* SIG_NAME:
* This symbol contains a list of signal names in order of
#define Uid_t_f $uidformat /**/
/* Uid_t_sign:
- * This symbol holds the signedess of a Uid_t.
+ * This symbol holds the signedness of a Uid_t.
* 1 for unsigned, -1 for signed.
*/
#define Uid_t_sign $uidsign /* UID sign */
#$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp" /**/
#$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem" /**/
-/* VOIDFLAGS:
- * This symbol indicates how much support of the void type is given by this
- * compiler. What various bits mean:
- *
- * 1 = supports declaration of void
- * 2 = supports arrays of pointers to functions returning void
- * 4 = supports comparisons between pointers to void functions and
- * addresses of void functions
- * 8 = supports declaration of generic void pointers
- *
- * The package designer should define VOIDUSED to indicate the requirements
- * of the package. This can be done either by #defining VOIDUSED before
- * including config.h, or by defining defvoidused in Myinit.U. If the
- * latter approach is taken, only those flags will be tested. If the
- * level of void support necessary is not present, defines void to int.
- */
-#ifndef VOIDUSED
-#define VOIDUSED $defvoidused
-#endif
-#define VOIDFLAGS $voidflags
-#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
-#define void int /* is void to be avoided? */
-#define M_VOID /* Xenix strikes again */
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+#$usecrosscompile USE_CROSS_COMPILE /**/
+#define PERL_TARGETARCH "$targetarch" /**/
#endif
/* PERL_USE_DEVEL:
*/
#$d__fwalk HAS__FWALK /**/
+/* HAS_ACOSH:
+ * This symbol, if defined, indicates that the acosh routine is
+ * available to do the inverse hyperbolic cosine function.
+ */
+#$d_acosh HAS_ACOSH /**/
+
/* HAS_AINTL:
* This symbol, if defined, indicates that the aintl routine is
* available. If copysignl is also present we can emulate modfl.
*/
#$d_aintl HAS_AINTL /**/
+/* HAS_ASINH:
+ * This symbol, if defined, indicates that the asinh routine is
+ * available to do the inverse hyperbolic sine function.
+ */
+#$d_asinh HAS_ASINH /**/
+
+/* HAS_ATANH:
+ * This symbol, if defined, indicates that the atanh routine is
+ * available to do the inverse hyperbolic tangent function.
+ */
+#$d_atanh HAS_ATANH /**/
+
/* HAS_BUILTIN_CHOOSE_EXPR:
* Can we handle GCC builtin for compile-time ternary-like expressions
*/
*/
#$d_cmsghdr_s HAS_STRUCT_CMSGHDR /**/
+/* HAS_COPYSIGN:
+ * This symbol, if defined, indicates that the copysign routine is
+ * available to do the copysign function.
+ */
+#$d_copysign HAS_COPYSIGN /**/
+
/* HAS_COPYSIGNL:
* This symbol, if defined, indicates that the copysignl routine is
* available. If aintl is also present we can emulate modfl.
*/
#$d_dlsymun DLSYM_NEEDS_UNDERSCORE /**/
+/* HAS_ERF:
+ * This symbol, if defined, indicates that the erf routine is
+ * available to do the error function.
+ */
+#$d_erf HAS_ERF /**/
+
+/* HAS_ERFC:
+ * This symbol, if defined, indicates that the erfc routine is
+ * available to do the complementary error function.
+ */
+#$d_erfc HAS_ERFC /**/
+
+/* HAS_EXP2:
+ * This symbol, if defined, indicates that the exp2 routine is
+ * available to do the 2**x function.
+ */
+#$d_exp2 HAS_EXP2 /**/
+
+/* HAS_EXPM1:
+ * This symbol, if defined, indicates that the expm1 routine is
+ * available to do the exp(x) - 1 when x is near 1 function.
+ */
+#$d_expm1 HAS_EXPM1 /**/
+
/* HAS_FAST_STDIO:
* This symbol, if defined, indicates that the "fast stdio"
* is available to manipulate the stdio buffers directly.
*/
#$d_fcntl_can_lock FCNTL_CAN_LOCK /**/
+/* HAS_FDCLOSE:
+ * This symbol, if defined, indicates that the fdclose routine is
+ * available to free a FILE structure without closing the underlying
+ * file descriptor. This function appeared in FreeBSD 10.2.
+ */
+#$d_fdclose HAS_FDCLOSE /**/
+
+/* HAS_FDIM:
+ * This symbol, if defined, indicates that the fdim routine is
+ * available to do the positive difference function.
+ */
+#$d_fdim HAS_FDIM /**/
+
+/* HAS_FEGETROUND:
+ * This symbol, if defined, indicates that the fegetround routine is
+ * available to return the macro corresponding to the current rounding
+ * mode.
+ */
+#$d_fegetround HAS_FEGETROUND /**/
+
/* HAS_FINITE:
* This symbol, if defined, indicates that the finite routine is
* available to check whether a double is finite (non-infinity non-NaN).
*/
#$d_flockproto HAS_FLOCK_PROTO /**/
+/* HAS_FMA:
+ * This symbol, if defined, indicates that the fma routine is
+ * available to do the multiply-add function.
+ */
+#$d_fma HAS_FMA /**/
+
+/* HAS_FMAX:
+ * This symbol, if defined, indicates that the fmax routine is
+ * available to do the maximum function.
+ */
+#$d_fmax HAS_FMAX /**/
+
+/* HAS_FMIN:
+ * This symbol, if defined, indicates that the fmin routine is
+ * available to do the minimum function.
+ */
+#$d_fmin HAS_FMIN /**/
+
/* HAS_FP_CLASS:
* This symbol, if defined, indicates that the fp_class routine is
* available to classify doubles. Available for example in Digital UNIX.
*/
#$d_fp_class HAS_FP_CLASS /**/
+/* HAS_FP_CLASSL:
+ * This symbol, if defined, indicates that the fp_classl routine is
+ * available to classify long doubles. Available for example in
+ * Digital UNIX. See for possible values HAS_FP_CLASS.
+ */
+#$d_fp_classl HAS_FP_CLASSL /**/
+
/* HAS_FPCLASS:
* This symbol, if defined, indicates that the fpclass routine is
* available to classify doubles. Available for example in Solaris/SVR4.
* FP_NAN NaN
*
*/
-#$d_fpclassify HAS_FPCLASSIFY /**/
+/* HAS_FP_CLASSIFY:
+ * This symbol, if defined, indicates that the fp_classify routine is
+ * available to classify doubles. The values are defined in <math.h>
+ *
+ * FP_NORMAL Normalized
+ * FP_ZERO Zero
+ * FP_INFINITE Infinity
+ * FP_SUBNORMAL Denormalized
+ * FP_NAN NaN
+ *
+ */
+#$d_fpclassify HAS_FPCLASSIFY /**/
+#$d_fp_classify HAS_FP_CLASSIFY /**/
/* HAS_FPCLASSL:
* This symbol, if defined, indicates that the fpclassl routine is
*/
#$d_fpclassl HAS_FPCLASSL /**/
+/* HAS_FPGETROUND:
+ * This symbol, if defined, indicates that the fpgetround routine is
+ * available to get the floating point rounding mode.
+ */
+#$d_fpgetround HAS_FPGETROUND /**/
+
/* HAS_FPOS64_T:
* This symbol will be defined if the C compiler supports fpos64_t.
*/
*/
#$d_hasmntopt HAS_HASMNTOPT /**/
+/* HAS_HYPOT:
+ * This symbol, if defined, indicates that the hypot routine is
+ * available to do the hypotenuse function.
+ */
+#$d_hypot HAS_HYPOT /**/
+
+/* HAS_ILOGB:
+ * This symbol, if defined, indicates that the ilogb routine is
+ * available to get integer exponent of a floating-point value.
+ */
+#$d_ilogb HAS_ILOGB /**/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
*/
#$d_int64_t HAS_INT64_T /**/
+/* HAS_ISBLANK:
+ * This manifest constant lets the C program know that isblank
+ * is available.
+ */
+#$d_isblank HAS_ISBLANK /**/
+
/* HAS_ISFINITE:
* This symbol, if defined, indicates that the isfinite routine is
* available to check whether a double is finite (non-infinity non-NaN).
*/
#$d_isfinite HAS_ISFINITE /**/
+/* HAS_ISFINITEL:
+ * This symbol, if defined, indicates that the isfinitel routine is
+ * available to check whether a long double is finite.
+ * (non-infinity non-NaN).
+ */
+#$d_isfinitel HAS_ISFINITEL /**/
+
/* HAS_ISINF:
* This symbol, if defined, indicates that the isinf routine is
* available to check whether a double is an infinity.
*/
#$d_isinf HAS_ISINF /**/
+/* HAS_ISINFL:
+ * This symbol, if defined, indicates that the isinfl routine is
+ * available to check whether a long double is an infinity.
+ */
+#$d_isinfl HAS_ISINFL /**/
+
+/* HAS_ISLESS:
+ * This symbol, if defined, indicates that the isless routine is
+ * available to do the isless function.
+ */
+#$d_isless HAS_ISLESS /**/
+
/* HAS_ISNAN:
* This symbol, if defined, indicates that the isnan routine is
* available to check whether a double is a NaN.
*/
#$d_isnanl HAS_ISNANL /**/
+/* HAS_ISNORMAL:
+ * This symbol, if defined, indicates that the isnormal routine is
+ * available to check whether a double is normal (non-zero normalized).
+ */
+#$d_isnormal HAS_ISNORMAL /**/
+
+/* HAS_J0:
+ * This symbol, if defined, indicates to the C program that the
+ * j0() function is available for Bessel functions of the first
+ * kind of the order zero, for doubles.
+ */
+/* HAS_J0L:
+ * This symbol, if defined, indicates to the C program that the
+ * j0l() function is available for Bessel functions of the first
+ * kind of the order zero, for long doubles.
+ */
+#$d_j0 HAS_J0 /**/
+#$d_j0l HAS_J0L /**/
+
+/* HAS_LC_MONETARY_2008:
+ * This symbol, if defined, indicates that the localeconv routine is
+ * available and has the additional members added in POSIX 1003.1-2008.
+ */
+#$d_lc_monetary_2008 HAS_LC_MONETARY_2008 /**/
+
/* HAS_LDBL_DIG:
* This symbol, if defined, indicates that this system's <float.h>
* or <limits.h> defines the symbol LDBL_DIG, which is the number
*/
#$d_ldbl_dig HAS_LDBL_DIG /* */
+/* HAS_LGAMMA:
+ * This symbol, if defined, indicates that the lgamma routine is
+ * available to do the log gamma function. See also HAS_TGAMMA and
+ * HAS_LGAMMA_R.
+ */
+#$d_lgamma HAS_LGAMMA /**/
+
+/* HAS_LGAMMA_R:
+ * This symbol, if defined, indicates that the lgamma_r routine is
+ * available to do the log gamma function without using the global
+ * signgam variable.
+ */
+#$d_lgamma_r HAS_LGAMMA_R /**/
+
/* LIBM_LIB_VERSION:
* This symbol, if defined, indicates that libm exports _LIB_VERSION
* and that math.h defines the enum to manipulate it.
*/
#$d_libm_lib_version LIBM_LIB_VERSION /**/
+/* HAS_LLRINT:
+ * This symbol, if defined, indicates that the llrint routine is
+ * available to return the closest long long value according to
+ * the current rounding mode.
+ */
+#$d_llrint HAS_LLRINT /**/
+
+/* HAS_LLRINTL:
+ * This symbol, if defined, indicates that the llrintl routine is
+ * available to return the closest long long value of the long double
+ * argument according to the current rounding mode.
+ */
+#$d_llrintl HAS_LLRINTL /**/
+
+/* HAS_LLROUND:
+ * This symbol, if defined, indicates that the llround routine is
+ * available to return the nearest long long value.
+ */
+#$d_llround HAS_LLROUND /**/
+
+/* HAS_LLROUNDL:
+ * This symbol, if defined, indicates that the llroundl routine is
+ * available to return the nearest long long value away from zero of
+ * the long double argument value.
+ */
+#$d_llroundl HAS_LLROUNDL /**/
+
+/* HAS_LOG1P:
+ * This symbol, if defined, indicates that the log1p routine is
+ * available to do the logarithm of 1 plus argument function.
+ */
+#$d_log1p HAS_LOG1P /**/
+
+/* HAS_LOG2:
+ * This symbol, if defined, indicates that the log2 routine is
+ * available to do the log2 function.
+ */
+#$d_log2 HAS_LOG2 /**/
+
+/* HAS_LOGB:
+ * This symbol, if defined, indicates that the logb routine is
+ * available to do the logb function.
+ */
+#$d_logb HAS_LOGB /**/
+
+/* HAS_LRINT:
+ * This symbol, if defined, indicates that the lrint routine is
+ * available to return the closest integral value according to
+ * the current rounding mode.
+ */
+#$d_lrint HAS_LRINT /**/
+
+/* HAS_LRINTL:
+ * This symbol, if defined, indicates that the lrintl routine is
+ * available to return the closest integral value of the long double
+ * argument according to the current rounding mode.
+ */
+#$d_lrintl HAS_LRINTL /**/
+
+/* HAS_LROUND:
+ * This symbol, if defined, indicates that the lround routine is
+ * available to return the nearest integral value.
+ */
+#$d_lround HAS_LROUND /**/
+
+/* HAS_LROUNDL:
+ * This symbol, if defined, indicates that the lroundl routine is
+ * available to return the nearest integral value away from zero of
+ * the long double argument value.
+ */
+#$d_lroundl HAS_LROUNDL /**/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
* 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).
- * For example from 4294967303.150000 one would get 4294967302.000000
- * and 1.150000. The bug has been seen in certain versions of glibc,
- * release 2.2.2 is known to be okay.
- */
#$d_modfl HAS_MODFL /**/
#$d_modflproto HAS_MODFL_PROTO /**/
-#$d_modfl_pow32_bug HAS_MODFL_POW32_BUG /**/
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
*/
#$d_msghdr_s HAS_STRUCT_MSGHDR /**/
+/* HAS_NAN:
+ * This symbol, if defined, indicates that the nan routine is
+ * available to generate NaN.
+ */
+#$d_nan HAS_NAN /**/
+
+/* HAS_NEARBYINT:
+ * This symbol, if defined, indicates that the nearbyint routine is
+ * available to return the integral value closest to (according to
+ * the current rounding mode) to x.
+ */
+#$d_nearbyint HAS_NEARBYINT /**/
+
+/* HAS_NEXTAFTER:
+ * This symbol, if defined, indicates that the nextafter routine is
+ * available to return the next machine representable double from
+ * x in direction y.
+ */
+#$d_nextafter HAS_NEXTAFTER /**/
+
+/* HAS_NEXTTOWARD:
+ * This symbol, if defined, indicates that the nexttoward routine is
+ * available to return the next machine representable long double from
+ * x in direction y.
+ */
+#$d_nexttoward HAS_NEXTTOWARD /**/
+
/* HAS_NL_LANGINFO:
* This symbol, if defined, indicates that the nl_langinfo routine is
* available to return local data. You will also need <langinfo.h>
/* HAS_PRCTL:
* This symbol, if defined, indicates that the prctl routine is
* available to set process title.
+ * Note that there are at least two prctl variants: Linux and Irix.
+ * While they are somewhat similar, they are incompatible.
*/
/* HAS_PRCTL_SET_NAME:
* This symbol, if defined, indicates that the prctl routine is
*/
#$d_pthread_attr_setscope HAS_PTHREAD_ATTR_SETSCOPE /**/
+/* HAS_PTRDIFF_T:
+ * This symbol will be defined if the C compiler supports ptrdiff_t.
+ */
+#$d_ptrdiff_t HAS_PTRDIFF_T /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>
*/
#$d_recvmsg HAS_RECVMSG /**/
+/* HAS_REMAINDER:
+ * This symbol, if defined, indicates that the remainder routine is
+ * available to return the floating-point remainder.
+ */
+#$d_remainder HAS_REMAINDER /**/
+
+/* HAS_REMQUO:
+ * This symbol, if defined, indicates that the remquo routine is
+ * available to return the remainder and part of quotient.
+ */
+#$d_remquo HAS_REMQUO /**/
+
+/* HAS_RINT:
+ * This symbol, if defined, indicates that the rint routine is
+ * available to return the nearest integral value to x as double
+ * using the current rounding mode.
+ */
+#$d_rint HAS_RINT /**/
+
+/* HAS_ROUND:
+ * This symbol, if defined, indicates that the round routine is
+ * available to round to nearest integer, away from zero.
+ */
+#$d_round HAS_ROUND /**/
+
/* HAS_SBRK_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the sbrk() function. Otherwise, it is up
*/
#$d_sbrkproto HAS_SBRK_PROTO /**/
+/* HAS_SCALBN:
+ * This symbol, if defined, indicates that the scalbn routine is
+ * available to multiply floating-point number by integral power
+ * of radix.
+ */
+#$d_scalbn HAS_SCALBN /**/
+
/* HAS_SCALBNL:
* This symbol, if defined, indicates that the scalbnl routine is
* available. If ilogbl is also present we can emulate frexpl.
*/
#$d_setproctitle HAS_SETPROCTITLE /**/
-/* USE_SFIO:
- * This symbol, if defined, indicates that sfio should
- * be used.
- */
-#$d_sfio USE_SFIO /**/
-
/* HAS_SIGNBIT:
* This symbol, if defined, indicates that the signbit routine is
* available to check if the given number has the sign bit set.
*/
#$d_telldirproto HAS_TELLDIR_PROTO /**/
+/* HAS_TGAMMA:
+ * This symbol, if defined, indicates that the tgamma routine is
+ * available to do the gamma function. See also HAS_LGAMMA.
+ */
+#$d_tgamma HAS_TGAMMA /**/
+
/* HAS_CTIME64:
* This symbol, if defined, indicates that the ctime64 () routine is
* available to do the 64bit variant of ctime ()
*/
#$d_timegm HAS_TIMEGM /**/
+/* HAS_TRUNC:
+ * This symbol, if defined, indicates that the trunc routine is
+ * available to round doubles towards zero.
+ */
+#$d_trunc HAS_TRUNC /**/
+
+/* HAS_TRUNCL:
+ * This symbol, if defined, indicates that the truncl routine is
+ * available. If copysignl is also present we can emulate modfl.
+ */
+#$d_truncl HAS_TRUNCL /**/
+
/* U32_ALIGNMENT_REQUIRED:
* This symbol, if defined, indicates that you must access
* character data through U32-aligned pointers.
*/
#$d_ustat HAS_USTAT /**/
+/* HAS_WCSCMP:
+ * This symbol, if defined, indicates that the wcscmp routine is
+ * available to compare two wide character strings.
+ */
+#$d_wcscmp HAS_WCSCMP /**/
+
+/* HAS_WCSXFRM:
+ * This symbol, if defined, indicates that the wcsxfrm routine is
+ * available to tranform a wide character string for wcscmp().
+ */
+#$d_wcsxfrm HAS_WCSXFRM /**/
+
/* HAS_WRITEV:
* This symbol, if defined, indicates that the writev routine is
* available to do scatter writes.
#$usedl USE_DYNAMIC_LOADING /**/
/* FFLUSH_NULL:
- * This symbol, if defined, tells that fflush(NULL) does flush
- * all pending stdio output.
+ * This symbol, if defined, tells that fflush(NULL) correctly
+ * flushes all pending stdio output without side effects. In
+ * particular, on some platforms calling fflush(NULL) *still*
+ * corrupts STDIN if it is a pipe.
*/
/* FFLUSH_ALL:
* This symbol, if defined, tells that to flush
*/
#$i_assert I_ASSERT /**/
+/* I_BFD:
+ * This symbol, if defined, indicates that <bfd.h> exists and
+ * can be included.
+ */
+#$i_bfd I_BFD /**/
+
/* I_CRYPT:
* This symbol, if defined, indicates that <crypt.h> exists and
* should be included.
#define DB_VERSION_MINOR_CFG $db_version_minor /**/
#define DB_VERSION_PATCH_CFG $db_version_patch /**/
+/* I_FENV:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <fenv.h> to get the floating point environment definitions.
+ */
+#$i_fenv I_FENV /**/
+
/* I_FP:
* This symbol, if defined, indicates that <fp.h> exists and
* should be included.
*/
#$i_prot I_PROT /**/
+/* I_QUADMATH:
+ * This symbol, if defined, indicates that <quadmath.h> exists and
+ * should be included.
+ */
+#$i_quadmath I_QUADMATH /**/
+
/* I_SHADOW:
* This symbol, if defined, indicates that <shadow.h> exists and
* should be included.
*/
#$i_stdbool I_STDBOOL /**/
+/* I_STDINT:
+ * This symbol, if defined, indicates that <stdint.h> exists and
+ * should be included.
+ */
+#$i_stdint I_STDINT /**/
+
/* I_SUNMATH:
* This symbol, if defined, indicates that <sunmath.h> exists and
* should be included.
*/
#$i_ustat I_USTAT /**/
+/* 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 $doubleinfbytes /**/
+#define DOUBLENANBYTES $doublenanbytes /**/
+#define LONGDBLINFBYTES $longdblinfbytes /**/
+#define LONGDBLNANBYTES $longdblnanbytes /**/
+
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for output.
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for input.
*/
+/* DOUBLEKIND:
+ * DOUBLEKIND will be one of
+ * DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+ * DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+ * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_UNKNOWN_FORMAT
+ */
+#define DOUBLEKIND $doublekind /**/
+#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
+#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
+#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3
+#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4
+#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5
+#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
+#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_UNKNOWN_FORMAT -1
#$d_PRIfldbl PERL_PRIfldbl $sPRIfldbl /**/
#$d_PRIgldbl PERL_PRIgldbl $sPRIgldbl /**/
#$d_PRIeldbl PERL_PRIeldbl $sPRIeldbl /**/
#$d_SCNfldbl PERL_SCNfldbl $sSCNfldbl /**/
-/* PERL_MAD:
- * This symbol, if defined, indicates that the Misc Attribution
- * Declaration code should be conditionally compiled.
- */
-#$mad PERL_MAD /**/
+/* DOUBLEMANTBITS:
+ * This symbol, if defined, tells how many mantissa bits
+ * there are in double precision floating point format.
+ * Note that this is usually DBL_MANT_DIG minus one, since
+ * with the standard IEEE 754 formats DBL_MANT_DIG includes
+ * the implicit bit, which doesn't really exist.
+ */
+/* LONGDBLMANTBITS:
+ * This symbol, if defined, tells how many mantissa bits
+ * there are in long double precision floating point format.
+ * Note that this can be LDBL_MANT_DIG minus one,
+ * since LDBL_MANT_DIG can include the IEEE 754 implicit bit.
+ * The common x86-style 80-bit long double does not have
+ * an implicit bit.
+ */
+/* NVMANTBITS:
+ * This symbol, if defined, tells how many mantissa bits
+ * (not including implicit bit) there are in a Perl NV.
+ * This depends on which floating point type was chosen.
+ */
+#define DOUBLEMANTBITS $doublemantbits
+#define LONGDBLMANTBITS $longdblmantbits
+#define NVMANTBITS $nvmantbits
/* NEED_VA_COPY:
* This symbol, if defined, indicates that the system stores
*/
/* NVSIZE:
* This symbol contains the sizeof(NV).
+ * Note that some floating point formats have unused bytes.
+ * The most notable example is the x86* 80-bit extended precision
+ * which comes in byte sizes of 12 and 16 (for 32 and 64 bit
+ * platforms, respectively), but which only uses 10 bytes.
+ * Perl compiled with -Duselongdouble on x86* is like this.
*/
/* NV_PRESERVES_UV:
* This symbol, if defined, indicates that a variable of type NVTYPE
* This variable contains the size of struct stat's st_ino in bytes.
*/
/* ST_INO_SIGN:
- * This symbol holds the signedess of struct stat's st_ino.
+ * This symbol holds the signedness of struct stat's st_ino.
* 1 for unsigned, -1 for signed.
*/
#define ST_INO_SIGN $st_ino_sign /* st_ino sign */
#$use64bitall USE_64_BIT_ALL /**/
#endif
+/* USE_CBACKTRACE:
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for backtrace.
+ */
+#$usecbacktrace USE_CBACKTRACE /**/
+
/* USE_DTRACE:
* This symbol, if defined, indicates that Perl should
* be built with support for DTrace.
#$useperlio USE_PERLIO /**/
#endif
+/* USE_QUADMATH:
+ * This symbol, if defined, indicates that the quadmath library should
+ * be used when available.
+ */
+#ifndef USE_QUADMATH
+#$usequadmath USE_QUADMATH /**/
+#endif
+
/* USE_SOCKS:
* This symbol, if defined, indicates that Perl should
* be built to use socks.