X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b19ee02c9e71bfad5bfbbb7e20a238f6db8048b0..c2538af7458bf317cdc7bc684f65831744010d80:/config_h.SH diff --git a/config_h.SH b/config_h.SH index d947b79..9dd2c09 100755 --- a/config_h.SH +++ b/config_h.SH @@ -81,6 +81,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_bzero HAS_BZERO /**/ +/* HAS_CBRT: + * This symbol, if defined, indicates that the cbrt() (cube root) + * function is available. + */ +#$d_cbrt HAS_CBRT /**/ + /* HAS_CHOWN: * This symbol, if defined, indicates that the chown routine is * available. @@ -419,6 +425,13 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_readlink HAS_READLINK /**/ +/* HAS_REGCOMP: + * This symbol, if defined, indicates that the regcomp() routine is + * available to do some regular patern matching (usually on POSIX.2 + * conforming systems). + */ +#$d_regcomp HAS_REGCOMP /* POSIX.2 */ + /* HAS_RENAME: * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() @@ -534,6 +547,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_setsid HAS_SETSID /**/ +/* HAS_STAT: + * This symbol, if defined, indicates that the stat routine is + * available to get file status. + */ +#$d_stat HAS_STAT /**/ + /* HAS_STRCHR: * This symbol is defined to indicate that the strchr()/strrchr() * functions are available for string searching. If not, try the @@ -1933,7 +1952,8 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* LONG_DOUBLESIZE: * This symbol contains the size of a long double, so that the * C preprocessor can make decisions based on it. It is only - * defined if the system supports long doubles. + * defined if the system supports long doubles. Note that this + * is sizeof(long double), which may include unused bytes. */ /* HAS_LDEXPL: * This symbol, if defined, indicates that the ldexpl routine is @@ -1947,8 +1967,10 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN + * LONG_DOUBLE_IS_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. */ @@ -1962,9 +1984,14 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2 #define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3 #define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN 5 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6 +#define LONG_DOUBLE_IS_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: @@ -2300,6 +2327,48 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$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 @@ -2339,36 +2408,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * 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 @@ -2401,12 +2440,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$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 /**/ @@ -3412,12 +3445,30 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d__fwalk HAS__FWALK /**/ +/* HAS_ACOSH: + * This symbol, if defined, indicates that the acosh routine is + * available to do the inverse hyperbolic cosine function. + */ +#$d_acosh HAS_ACOSH /**/ + /* HAS_AINTL: * This symbol, if defined, indicates that the aintl routine is * available. If copysignl is also present we can emulate modfl. */ #$d_aintl HAS_AINTL /**/ +/* HAS_ASINH: + * This symbol, if defined, indicates that the asinh routine is + * available to do the inverse hyperbolic sine function. + */ +#$d_asinh HAS_ASINH /**/ + +/* HAS_ATANH: + * This symbol, if defined, indicates that the atanh routine is + * available to do the inverse hyperbolic tangent function. + */ +#$d_atanh HAS_ATANH /**/ + /* HAS_BUILTIN_CHOOSE_EXPR: * Can we handle GCC builtin for compile-time ternary-like expressions */ @@ -3463,6 +3514,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_cmsghdr_s HAS_STRUCT_CMSGHDR /**/ +/* HAS_COPYSIGN: + * This symbol, if defined, indicates that the copysign routine is + * available to do the copysign function. + */ +#$d_copysign HAS_COPYSIGN /**/ + /* HAS_COPYSIGNL: * This symbol, if defined, indicates that the copysignl routine is * available. If aintl is also present we can emulate modfl. @@ -3503,6 +3560,30 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_dlsymun DLSYM_NEEDS_UNDERSCORE /**/ +/* HAS_ERF: + * This symbol, if defined, indicates that the erf routine is + * available to do the error function. + */ +#$d_erf HAS_ERF /**/ + +/* HAS_ERFC: + * This symbol, if defined, indicates that the erfc routine is + * available to do the complementary error function. + */ +#$d_erfc HAS_ERFC /**/ + +/* HAS_EXP2: + * This symbol, if defined, indicates that the exp2 routine is + * available to do the 2**x function. + */ +#$d_exp2 HAS_EXP2 /**/ + +/* HAS_EXPM1: + * This symbol, if defined, indicates that the expm1 routine is + * available to do the exp(x) - 1 when x is near 1 function. + */ +#$d_expm1 HAS_EXPM1 /**/ + /* HAS_FAST_STDIO: * This symbol, if defined, indicates that the "fast stdio" * is available to manipulate the stdio buffers directly. @@ -3522,6 +3603,26 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$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). @@ -3543,6 +3644,24 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_flockproto HAS_FLOCK_PROTO /**/ +/* HAS_FMA: + * This symbol, if defined, indicates that the fma routine is + * available to do the multiply-add function. + */ +#$d_fma HAS_FMA /**/ + +/* HAS_FMAX: + * This symbol, if defined, indicates that the fmax routine is + * available to do the maximum function. + */ +#$d_fmax HAS_FMAX /**/ + +/* HAS_FMIN: + * This symbol, if defined, indicates that the fmin routine is + * available to do the minimum function. + */ +#$d_fmin HAS_FMIN /**/ + /* HAS_FP_CLASS: * This symbol, if defined, indicates that the fp_class routine is * available to classify doubles. Available for example in Digital UNIX. @@ -3563,25 +3682,11 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* HAS_FP_CLASSL: * This symbol, if defined, indicates that the fp_classl routine is - * available to classify doubles. Available for example in Digital UNIX. - * See HAS_FP_CLASS. - * + * 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_FP_CLASSIFY: - * This symbol, if defined, indicates that the fp_classify routine is - * available to classify doubles. - * The returned values are defined in and are: - * - * FP_NAN - * FP_INFINITE - * FP_NORMAL - * FP_SUBNORMAL - * FP_ZERO - */ -#$d_fp_classify HAS_FP_CLASSIFY /**/ - /* HAS_FPCLASS: * This symbol, if defined, indicates that the fpclass routine is * available to classify doubles. Available for example in Solaris/SVR4. @@ -3612,7 +3717,19 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * FP_NAN NaN * */ -#$d_fpclassify HAS_FPCLASSIFY /**/ +/* HAS_FP_CLASSIFY: + * This symbol, if defined, indicates that the fp_classify routine is + * available to classify doubles. The values are defined in + * + * 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 @@ -3632,6 +3749,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_fpclassl HAS_FPCLASSL /**/ +/* HAS_FPGETROUND: + * This symbol, if defined, indicates that the fpgetround routine is + * available to get the floating point rounding mode. + */ +#$d_fpgetround HAS_FPGETROUND /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ @@ -3747,6 +3870,18 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_hasmntopt HAS_HASMNTOPT /**/ +/* HAS_HYPOT: + * This symbol, if defined, indicates that the hypot routine is + * available to do the hypotenuse function. + */ +#$d_hypot HAS_HYPOT /**/ + +/* HAS_ILOGB: + * This symbol, if defined, indicates that the ilogb routine is + * available to get integer exponent of a floating-point value. + */ +#$d_ilogb HAS_ILOGB /**/ + /* HAS_ILOGBL: * This symbol, if defined, indicates that the ilogbl routine is * available. If scalbnl is also present we can emulate frexpl. @@ -3785,8 +3920,8 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_isfinite HAS_ISFINITE /**/ /* HAS_ISFINITEL: - * This symbol, if defined, indicates that the isfinite routine is - * available to check whether a long double is finitel + * 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 /**/ @@ -3797,12 +3932,18 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_isinf HAS_ISINF /**/ -/* HAS_ISINF: - * This symbol, if defined, indicates that the isinf routine is +/* 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. @@ -3815,6 +3956,31 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_isnanl HAS_ISNANL /**/ +/* HAS_ISNORMAL: + * This symbol, if defined, indicates that the isnormal routine is + * available to check whether a double is normal (non-zero normalized). + */ +#$d_isnormal HAS_ISNORMAL /**/ + +/* HAS_J0: + * This symbol, if defined, indicates to the C program that the + * j0() function is available for Bessel functions of the first + * kind of the order zero, for doubles. + */ +/* HAS_J0L: + * This symbol, if defined, indicates to the C program that the + * j0l() function is available for Bessel functions of the first + * kind of the order zero, for long doubles. + */ +#$d_j0 HAS_J0 /**/ +#$d_j0l HAS_J0L /**/ + +/* HAS_LC_MONETARY_2008: + * This symbol, if defined, indicates that the localeconv routine is + * available and has the additional members added in POSIX 1003.1-2008. + */ +#$d_lc_monetary_2008 HAS_LC_MONETARY_2008 /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's * or defines the symbol LDBL_DIG, which is the number @@ -3823,12 +3989,98 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_ldbl_dig HAS_LDBL_DIG /* */ +/* HAS_LGAMMA: + * This symbol, if defined, indicates that the lgamma routine is + * available to do the log gamma function. See also HAS_TGAMMA and + * HAS_LGAMMA_R. + */ +#$d_lgamma HAS_LGAMMA /**/ + +/* HAS_LGAMMA_R: + * This symbol, if defined, indicates that the lgamma_r routine is + * available to do the log gamma function without using the global + * signgam variable. + */ +#$d_lgamma_r HAS_LGAMMA_R /**/ + /* LIBM_LIB_VERSION: * This symbol, if defined, indicates that libm exports _LIB_VERSION * and that math.h defines the enum to manipulate it. */ #$d_libm_lib_version LIBM_LIB_VERSION /**/ +/* HAS_LLRINT: + * This symbol, if defined, indicates that the llrint routine is + * available to return the closest long long value according to + * the current rounding mode. + */ +#$d_llrint HAS_LLRINT /**/ + +/* HAS_LLRINTL: + * This symbol, if defined, indicates that the llrintl routine is + * available to return the closest long long value of the long double + * argument according to the current rounding mode. + */ +#$d_llrintl HAS_LLRINTL /**/ + +/* HAS_LLROUND: + * This symbol, if defined, indicates that the llround routine is + * available to return the nearest long long value. + */ +#$d_llround HAS_LLROUND /**/ + +/* HAS_LLROUNDL: + * This symbol, if defined, indicates that the llroundl routine is + * available to return the nearest long long value away from zero of + * the long double argument value. + */ +#$d_llroundl HAS_LLROUNDL /**/ + +/* HAS_LOG1P: + * This symbol, if defined, indicates that the log1p routine is + * available to do the logarithm of 1 plus argument function. + */ +#$d_log1p HAS_LOG1P /**/ + +/* HAS_LOG2: + * This symbol, if defined, indicates that the log2 routine is + * available to do the log2 function. + */ +#$d_log2 HAS_LOG2 /**/ + +/* HAS_LOGB: + * This symbol, if defined, indicates that the logb routine is + * available to do the logb function. + */ +#$d_logb HAS_LOGB /**/ + +/* HAS_LRINT: + * This symbol, if defined, indicates that the lrint routine is + * available to return the closest integral value according to + * the current rounding mode. + */ +#$d_lrint HAS_LRINT /**/ + +/* HAS_LRINTL: + * This symbol, if defined, indicates that the lrintl routine is + * available to return the closest integral value of the long double + * argument according to the current rounding mode. + */ +#$d_lrintl HAS_LRINTL /**/ + +/* HAS_LROUND: + * This symbol, if defined, indicates that the lround routine is + * available to return the nearest integral value. + */ +#$d_lround HAS_LROUND /**/ + +/* HAS_LROUNDL: + * This symbol, if defined, indicates that the lroundl routine is + * available to return the nearest integral value away from zero of + * the long double argument value. + */ +#$d_lroundl HAS_LROUNDL /**/ + /* HAS_MADVISE: * This symbol, if defined, indicates that the madvise system call is * available to map a file into memory. @@ -3870,16 +4122,8 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * 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 @@ -3893,6 +4137,33 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_msghdr_s HAS_STRUCT_MSGHDR /**/ +/* HAS_NAN: + * This symbol, if defined, indicates that the nan routine is + * available to generate NaN. + */ +#$d_nan HAS_NAN /**/ + +/* HAS_NEARBYINT: + * This symbol, if defined, indicates that the nearbyint routine is + * available to return the integral value closest to (according to + * the current rounding mode) to x. + */ +#$d_nearbyint HAS_NEARBYINT /**/ + +/* HAS_NEXTAFTER: + * This symbol, if defined, indicates that the nextafter routine is + * available to return the next machine representable double from + * x in direction y. + */ +#$d_nextafter HAS_NEXTAFTER /**/ + +/* HAS_NEXTTOWARD: + * This symbol, if defined, indicates that the nexttoward routine is + * available to return the next machine representable long double from + * x in direction y. + */ +#$d_nexttoward HAS_NEXTTOWARD /**/ + /* HAS_NL_LANGINFO: * This symbol, if defined, indicates that the nl_langinfo routine is * available to return local data. You will also need @@ -3908,6 +4179,8 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* HAS_PRCTL: * This symbol, if defined, indicates that the prctl routine is * available to set process title. + * Note that there are at least two prctl variants: Linux and Irix. + * While they are somewhat similar, they are incompatible. */ /* HAS_PRCTL_SET_NAME: * This symbol, if defined, indicates that the prctl routine is @@ -3955,6 +4228,31 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_recvmsg HAS_RECVMSG /**/ +/* HAS_REMAINDER: + * This symbol, if defined, indicates that the remainder routine is + * available to return the floating-point remainder. + */ +#$d_remainder HAS_REMAINDER /**/ + +/* HAS_REMQUO: + * This symbol, if defined, indicates that the remquo routine is + * available to return the remainder and part of quotient. + */ +#$d_remquo HAS_REMQUO /**/ + +/* HAS_RINT: + * This symbol, if defined, indicates that the rint routine is + * available to return the nearest integral value to x as double + * using the current rounding mode. + */ +#$d_rint HAS_RINT /**/ + +/* HAS_ROUND: + * This symbol, if defined, indicates that the round routine is + * available to round to nearest integer, away from zero. + */ +#$d_round HAS_ROUND /**/ + /* HAS_SBRK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the sbrk() function. Otherwise, it is up @@ -3964,6 +4262,13 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sbrkproto HAS_SBRK_PROTO /**/ +/* HAS_SCALBN: + * This symbol, if defined, indicates that the scalbn routine is + * available to multiply floating-point number by integral power + * of radix. + */ +#$d_scalbn HAS_SCALBN /**/ + /* HAS_SCALBNL: * This symbol, if defined, indicates that the scalbnl routine is * available. If ilogbl is also present we can emulate frexpl. @@ -4162,6 +4467,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_telldirproto HAS_TELLDIR_PROTO /**/ +/* HAS_TGAMMA: + * This symbol, if defined, indicates that the tgamma routine is + * available to do the gamma function. See also HAS_LGAMMA. + */ +#$d_tgamma HAS_TGAMMA /**/ + /* HAS_CTIME64: * This symbol, if defined, indicates that the ctime64 () routine is * available to do the 64bit variant of ctime () @@ -4199,6 +4510,18 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_timegm HAS_TIMEGM /**/ +/* HAS_TRUNC: + * This symbol, if defined, indicates that the trunc routine is + * available to round doubles towards zero. + */ +#$d_trunc HAS_TRUNC /**/ + +/* HAS_TRUNCL: + * This symbol, if defined, indicates that the truncl routine is + * available. If copysignl is also present we can emulate modfl. + */ +#$d_truncl HAS_TRUNCL /**/ + /* U32_ALIGNMENT_REQUIRED: * This symbol, if defined, indicates that you must access * character data through U32-aligned pointers. @@ -4328,6 +4651,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define DB_VERSION_MINOR_CFG $db_version_minor /**/ #define DB_VERSION_PATCH_CFG $db_version_patch /**/ +/* I_FENV: + * This symbol, if defined, indicates to the C program that it should + * include to get the floating point environment definitions. + */ +#$i_fenv I_FENV /**/ + /* I_FP: * This symbol, if defined, indicates that exists and * should be included. @@ -4394,6 +4723,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$i_prot I_PROT /**/ +/* I_QUADMATH: + * This symbol, if defined, indicates that exists and + * should be included. + */ +#$i_quadmath I_QUADMATH /**/ + /* I_SHADOW: * This symbol, if defined, indicates that exists and * should be included. @@ -4412,6 +4747,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$i_stdbool I_STDBOOL /**/ +/* I_STDINT: + * This symbol, if defined, indicates that exists and + * should be included. + */ +#$i_stdint I_STDINT /**/ + /* I_SUNMATH: * This symbol, if defined, indicates that exists and * should be included. @@ -4465,6 +4806,27 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$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. @@ -4481,11 +4843,57 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'f') for input. */ +/* DOUBLEKIND: + * DOUBLEKIND will be one of + * DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE + * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE + * DOUBLE_IS_UNKNOWN_FORMAT + */ +#define DOUBLEKIND $doublekind /**/ +#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1 +#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2 +#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3 +#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4 +#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5 +#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6 +#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7 +#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8 +#define DOUBLE_IS_UNKNOWN_FORMAT -1 #$d_PRIfldbl PERL_PRIfldbl $sPRIfldbl /**/ #$d_PRIgldbl PERL_PRIgldbl $sPRIgldbl /**/ #$d_PRIeldbl PERL_PRIeldbl $sPRIeldbl /**/ #$d_SCNfldbl PERL_SCNfldbl $sSCNfldbl /**/ +/* 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 * the variable argument list datatype, va_list, in a format @@ -4562,6 +4970,11 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ /* NVSIZE: * This symbol contains the sizeof(NV). + * Note that some floating point formats have unused bytes. + * The most notable example is the x86* 80-bit extended precision + * which comes in byte sizes of 12 and 16 (for 32 and 64 bit + * platforms, respectively), but which only uses 10 bytes. + * Perl compiled with -Duselongdouble on x86* is like this. */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE @@ -4827,6 +5240,14 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$useperlio USE_PERLIO /**/ #endif +/* USE_QUADMATH: + * This symbol, if defined, indicates that the quadmath library should + * be used when available. + */ +#ifndef USE_QUADMATH +#$usequadmath USE_QUADMATH /**/ +#endif + /* USE_SOCKS: * This symbol, if defined, indicates that Perl should * be built to use socks.