X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/ae60cb464cebf89579ec0ff91db8b792b2f1e7cd..1ff56747187edf1f59cfa937d579cc52a48084a8:/uconfig.h diff --git a/uconfig.h b/uconfig.h index c379902..c7bb73f 100644 --- a/uconfig.h +++ b/uconfig.h @@ -46,6 +46,12 @@ */ /*#define HAS_BZERO / **/ +/* HAS_CBRT: + * This symbol, if defined, indicates that the cbrt() (cube root) + * function is available. + */ +/*#define HAS_CBRT / **/ + /* HAS_CHOWN: * This symbol, if defined, indicates that the chown routine is * available. @@ -246,13 +252,13 @@ /* 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. */ /*#define 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. */ /*#define HAS_MBTOWC / **/ @@ -384,6 +390,13 @@ */ /*#define 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). + */ +#define 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() @@ -499,6 +512,12 @@ */ /*#define HAS_SETSID / **/ +/* HAS_STAT: + * This symbol, if defined, indicates that the stat routine is + * available to get file status. + */ +#define HAS_STAT /**/ + /* HAS_STRCHR: * This symbol is defined to indicate that the strchr()/strrchr() * functions are available for string searching. If not, try the @@ -527,7 +546,7 @@ * This symbol, if defined, indicates that the strtol routine is available * to provide better numeric string conversion than atoi() and friends. */ -/*#define HAS_STRTOL / **/ +#define HAS_STRTOL /**/ /* HAS_STRXFRM: * This symbol, if defined, indicates that the strxfrm() routine is @@ -614,7 +633,7 @@ /* 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. */ /*#define HAS_WCTOMB / **/ @@ -703,12 +722,6 @@ */ /*#define I_NETINET_IN / **/ -/* I_SFIO: - * This symbol, if defined, indicates to the C program that it should - * include . - */ -/*#define I_SFIO / **/ - /* I_STDDEF: * This symbol, if defined, indicates that exists and should * be included. @@ -811,26 +824,6 @@ */ /*#define I_SYS_WAIT / **/ -/* I_TERMIO: - * This symbol, if defined, indicates that the program should include - * rather than . 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 - * rather than . There are also differences in - * the ioctl() calls that depend on the value of this symbol. - */ -/*#define I_TERMIO / **/ -/*#define I_TERMIOS / **/ -/*#define I_SGTTY / **/ - /* I_UNISTD: * This symbol, if defined, indicates to the C program that it should * include . @@ -892,18 +885,6 @@ #define OSNAME "unknown" /**/ #define OSVERS "unknown" /**/ -/* 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 -/*#define USE_CROSS_COMPILE / **/ -#define PERL_TARGETARCH "" /**/ -#endif - /* MULTIARCH: * This symbol, if defined, signifies that the build * process will produce some binary files that are going to be @@ -916,13 +897,10 @@ /* 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 4 -#endif /* ARCHLIB: * This variable, if defined, holds the name of the directory in @@ -937,8 +915,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define ARCHLIB "/usr/local/lib/perl5/5.15/unknown" / **/ -/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.15/unknown" / **/ +/*#define ARCHLIB "/usr/local/lib/perl5/5.23/unknown" / **/ +/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.23/unknown" / **/ /* ARCHNAME: * This symbol holds a string representing the architecture name. @@ -984,19 +962,10 @@ * 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 @@ -1016,12 +985,9 @@ # endif # endif # endif -# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__)) -# define BYTEORDER 0x4321 -# endif #else #define BYTEORDER 0x1234 /* large digits for MSB */ -#endif /* NeXT */ +#endif /* CHARBITS: * This symbol contains the size of a char, so that the C preprocessor @@ -1143,6 +1109,13 @@ /*#define HASATTRIBUTE_UNUSED / **/ /*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/ +/* HAS_BACKTRACE: + * This symbol, if defined, indicates that the backtrace() routine is + * available to get a stack trace. The header must be + * included to use this routine. + */ +/*#define HAS_BACKTRACE / **/ + /* CASTI32: * This symbol is defined if the C compiler can cast negative * or large floating point numbers to 32-bit ints. @@ -1231,6 +1204,13 @@ /*#define HAS_CTIME_R / **/ #define CTIME_R_PROTO 0 /**/ +/* HAS_DLADDR: + * This symbol, if defined, indicates that the dladdr() routine is + * available to query dynamic linker information for an address. + * The header must be included to use this routine. + */ +/*#define 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. @@ -1937,11 +1917,46 @@ /* 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. + */ +/*#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 +/* 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: @@ -2277,6 +2292,48 @@ */ /*#define HAS_SIGACTION / **/ +/* HAS_SIGINFO_SI_ERRNO: + * This symbol, if defined, indicates that siginfo_t has the + * si_errno member + */ +/*#define HAS_SIGINFO_SI_ERRNO / **/ + +/* HAS_SIGINFO_SI_PID: + * This symbol, if defined, indicates that siginfo_t has the + * si_pid member + */ +/*#define HAS_SIGINFO_SI_PID / **/ + +/* HAS_SIGINFO_SI_UID: + * This symbol, if defined, indicates that siginfo_t has the + * si_uid member + */ +/*#define HAS_SIGINFO_SI_UID / **/ + +/* HAS_SIGINFO_SI_ADDR: + * This symbol, if defined, indicates that siginfo_t has the + * si_addr member + */ +/*#define HAS_SIGINFO_SI_ADDR / **/ + +/* HAS_SIGINFO_SI_STATUS: + * This symbol, if defined, indicates that siginfo_t has the + * si_status member + */ +/*#define HAS_SIGINFO_SI_STATUS / **/ + +/* HAS_SIGINFO_SI_BAND: + * This symbol, if defined, indicates that siginfo_t has the + * si_band member + */ +/*#define HAS_SIGINFO_SI_BAND / **/ + +/* HAS_SIGINFO_SI_VALUE: + * This symbol, if defined, indicates that siginfo_t has the + * si_value member + */ +/*#define 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 @@ -2316,55 +2373,44 @@ * 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; + */ /*#define HAS_SOCKET / **/ /*#define HAS_SOCKETPAIR / **/ /*#define HAS_SOCKADDR_SA_LEN / **/ -/*#define HAS_MSG_CTRUNC / **/ -/*#define HAS_MSG_DONTROUTE / **/ -/*#define HAS_MSG_OOB / **/ -/*#define HAS_MSG_PEEK / **/ -/*#define HAS_MSG_PROXY / **/ -/*#define HAS_SCM_RIGHTS / **/ +/*#define HAS_SOCKADDR_IN6 / **/ /*#define HAS_SIN6_SCOPE_ID / **/ +/*#define HAS_IP_MREQ / **/ +/*#define HAS_IP_MREQ_SOURCE / **/ +/*#define HAS_IPV6_MREQ / **/ +/*#define HAS_IPV6_MREQ_SOURCE / **/ /* HAS_SRAND48_R: * This symbol, if defined, indicates that the srand48_r routine @@ -2651,25 +2697,11 @@ #define DOUBLESIZE 8 /**/ /* EBCDIC: - * This symbol, if defined, indicates that this system uses + * This symbol, if defined, indicates that this system uses * EBCDIC encoding. */ /*#define EBCDIC / **/ -/* USE_KERN_PROC_PATHNAME: - * This symbol, if defined, indicates that we can use sysctl with - * KERN_PROC_PATHNAME to get a full path for the executable, and hence - * convert $^X to an absolute path. - */ -/*#define USE_KERN_PROC_PATHNAME / **/ - -/* USE_NSGETEXECUTABLEPATH: - * This symbol, if defined, indicates that we can use _NSGetExecutablePath - * and realpath to get a full path for the executable, and hence convert - * $^X to an absolute path. - */ -/*#define USE_NSGETEXECUTABLEPATH / **/ - /* Fpos_t: * This symbol holds the type used to declare file positions in libc. * It can be fpos_t, long, uint, etc... It may be necessary to include @@ -2683,7 +2715,7 @@ #define Gid_t_f "lu" /**/ /* 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 1 /* GID sign */ @@ -2722,6 +2754,12 @@ /*#define DIRNAMLEN / **/ #define Direntry_t struct dirent +/* I_EXECINFO: + * This symbol, if defined, indicates to the C program that it should + * include for backtrace() support. + */ +/*#define I_EXECINFO / **/ + /* I_GRP: * This symbol, if defined, indicates to the C program that it should * include . @@ -2860,6 +2898,26 @@ */ /*#define I_SYSUIO / **/ +/* I_TERMIO: + * This symbol, if defined, indicates that the program should include + * rather than . 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 + * rather than . There are also differences in + * the ioctl() calls that depend on the value of this symbol. + */ +/*#define I_TERMIO / **/ +/*#define I_TERMIOS / **/ +/*#define I_SGTTY / **/ + /* I_TIME: * This symbol, if defined, indicates to the C program that it should * include . @@ -3030,8 +3088,8 @@ * 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 "/usr/local/lib/perl5/5.15" /**/ -#define PRIVLIB_EXP "/usr/local/lib/perl5/5.15" /**/ +#define PRIVLIB "/usr/local/lib/perl5/5.23" /**/ +#define PRIVLIB_EXP "/usr/local/lib/perl5/5.23" /**/ /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle @@ -3097,9 +3155,9 @@ * function used to generate normalized random numbers. * Values include 15, 16, 31, and 48. */ -#define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) /**/ -#define Rand_seed_t int /**/ -#define seedDrand01(x) srand((Rand_seed_t)x) /**/ +#define Drand01() Perl_drand48() /**/ +#define Rand_seed_t U32 /**/ +#define seedDrand01(x) Perl_drand48_init((Rand_seed_t)x) /**/ #define RANDBITS 48 /**/ /* Select_fd_set_t: @@ -3174,8 +3232,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define SITEARCH "/usr/local/lib/perl5/5.15/unknown" / **/ -/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.15/unknown" / **/ +/*#define SITEARCH "/usr/local/lib/perl5/5.23/unknown" / **/ +/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.23/unknown" / **/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -3197,8 +3255,8 @@ * 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 "/usr/local/lib/perl5/5.15" /**/ -#define SITELIB_EXP "/usr/local/lib/perl5/5.15" /**/ +#define SITELIB "/usr/local/lib/perl5/5.23" /**/ +#define SITELIB_EXP "/usr/local/lib/perl5/5.23" /**/ #define SITELIB_STEM "/usr/local/lib/perl5" /**/ /* Size_t_size: @@ -3242,7 +3300,7 @@ #define Uid_t_f "lu" /**/ /* 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 1 /* UID sign */ @@ -3315,29 +3373,16 @@ /*#define PERL_VENDORLIB_EXP "" / **/ /*#define PERL_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 1 -#endif -#define VOIDFLAGS 1 -#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 +/*#define USE_CROSS_COMPILE / **/ +#define PERL_TARGETARCH "" /**/ #endif /* PERL_USE_DEVEL: @@ -3365,12 +3410,30 @@ */ /*#define HAS__FWALK / **/ +/* HAS_ACOSH: + * This symbol, if defined, indicates that the acosh routine is + * available to do the inverse hyperbolic cosine function. + */ +/*#define HAS_ACOSH / **/ + /* HAS_AINTL: * This symbol, if defined, indicates that the aintl routine is * available. If copysignl is also present we can emulate modfl. */ /*#define HAS_AINTL / **/ +/* HAS_ASINH: + * This symbol, if defined, indicates that the asinh routine is + * available to do the inverse hyperbolic sine function. + */ +/*#define HAS_ASINH / **/ + +/* HAS_ATANH: + * This symbol, if defined, indicates that the atanh routine is + * available to do the inverse hyperbolic tangent function. + */ +/*#define HAS_ATANH / **/ + /* HAS_BUILTIN_CHOOSE_EXPR: * Can we handle GCC builtin for compile-time ternary-like expressions */ @@ -3416,6 +3479,12 @@ */ /*#define HAS_STRUCT_CMSGHDR / **/ +/* HAS_COPYSIGN: + * This symbol, if defined, indicates that the copysign routine is + * available to do the copysign function. + */ +/*#define HAS_COPYSIGN / **/ + /* HAS_COPYSIGNL: * This symbol, if defined, indicates that the copysignl routine is * available. If aintl is also present we can emulate modfl. @@ -3456,6 +3525,30 @@ */ /*#define DLSYM_NEEDS_UNDERSCORE / **/ +/* HAS_ERF: + * This symbol, if defined, indicates that the erf routine is + * available to do the error function. + */ +/*#define HAS_ERF / **/ + +/* HAS_ERFC: + * This symbol, if defined, indicates that the erfc routine is + * available to do the complementary error function. + */ +/*#define HAS_ERFC / **/ + +/* HAS_EXP2: + * This symbol, if defined, indicates that the exp2 routine is + * available to do the 2**x function. + */ +/*#define 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. + */ +/*#define HAS_EXPM1 / **/ + /* HAS_FAST_STDIO: * This symbol, if defined, indicates that the "fast stdio" * is available to manipulate the stdio buffers directly. @@ -3475,6 +3568,26 @@ */ /*#define 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. + */ +/*#define HAS_FDCLOSE / **/ + +/* HAS_FDIM: + * This symbol, if defined, indicates that the fdim routine is + * available to do the positive difference function. + */ +/*#define 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. + */ +/*#define 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). @@ -3496,6 +3609,24 @@ */ /*#define HAS_FLOCK_PROTO / **/ +/* HAS_FMA: + * This symbol, if defined, indicates that the fma routine is + * available to do the multiply-add function. + */ +/*#define HAS_FMA / **/ + +/* HAS_FMAX: + * This symbol, if defined, indicates that the fmax routine is + * available to do the maximum function. + */ +/*#define HAS_FMAX / **/ + +/* HAS_FMIN: + * This symbol, if defined, indicates that the fmin routine is + * available to do the minimum function. + */ +/*#define 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. @@ -3514,6 +3645,13 @@ */ /*#define 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. + */ +/*#define 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. @@ -3544,7 +3682,19 @@ * FP_NAN NaN * */ -/*#define 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 + * + */ +/*#define HAS_FPCLASSIFY / **/ +/*#define HAS_FP_CLASSIFY / **/ /* HAS_FPCLASSL: * This symbol, if defined, indicates that the fpclassl routine is @@ -3564,6 +3714,12 @@ */ /*#define HAS_FPCLASSL / **/ +/* HAS_FPGETROUND: + * This symbol, if defined, indicates that the fpgetround routine is + * available to get the floating point rounding mode. + */ +/*#define HAS_FPGETROUND / **/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ @@ -3679,6 +3835,18 @@ */ /*#define HAS_HASMNTOPT / **/ +/* HAS_HYPOT: + * This symbol, if defined, indicates that the hypot routine is + * available to do the hypotenuse function. + */ +/*#define HAS_HYPOT / **/ + +/* HAS_ILOGB: + * This symbol, if defined, indicates that the ilogb routine is + * available to get integer exponent of a floating-point value. + */ +/*#define HAS_ILOGB / **/ + /* HAS_ILOGBL: * This symbol, if defined, indicates that the ilogbl routine is * available. If scalbnl is also present we can emulate frexpl. @@ -3704,18 +3872,43 @@ */ /*#define HAS_INT64_T / **/ +/* HAS_ISBLANK: + * This manifest constant lets the C program know that isblank + * is available. + */ +/*#define 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). */ /*#define 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). + */ +/*#define HAS_ISFINITEL / **/ + /* HAS_ISINF: * This symbol, if defined, indicates that the isinf routine is * available to check whether a double is an infinity. */ /*#define HAS_ISINF / **/ +/* HAS_ISINFL: + * This symbol, if defined, indicates that the isinfl routine is + * available to check whether a long double is an infinity. + */ +/*#define HAS_ISINFL / **/ + +/* HAS_ISLESS: + * This symbol, if defined, indicates that the isless routine is + * available to do the isless function. + */ +/*#define HAS_ISLESS / **/ + /* HAS_ISNAN: * This symbol, if defined, indicates that the isnan routine is * available to check whether a double is a NaN. @@ -3728,6 +3921,31 @@ */ /*#define 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). + */ +/*#define 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. + */ +/*#define HAS_J0 / **/ +/*#define 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. + */ +/*#define 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 @@ -3736,12 +3954,98 @@ */ /*#define 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. + */ +/*#define 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. + */ +/*#define 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. */ /*#define 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. + */ +/*#define 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. + */ +/*#define HAS_LLRINTL / **/ + +/* HAS_LLROUND: + * This symbol, if defined, indicates that the llround routine is + * available to return the nearest long long value. + */ +/*#define 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. + */ +/*#define HAS_LLROUNDL / **/ + +/* HAS_LOG1P: + * This symbol, if defined, indicates that the log1p routine is + * available to do the logarithm of 1 plus argument function. + */ +/*#define HAS_LOG1P / **/ + +/* HAS_LOG2: + * This symbol, if defined, indicates that the log2 routine is + * available to do the log2 function. + */ +/*#define HAS_LOG2 / **/ + +/* HAS_LOGB: + * This symbol, if defined, indicates that the logb routine is + * available to do the logb function. + */ +/*#define 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. + */ +/*#define 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. + */ +/*#define HAS_LRINTL / **/ + +/* HAS_LROUND: + * This symbol, if defined, indicates that the lround routine is + * available to return the nearest integral value. + */ +/*#define 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. + */ +/*#define HAS_LROUNDL / **/ + /* HAS_MADVISE: * This symbol, if defined, indicates that the madvise system call is * available to map a file into memory. @@ -3783,16 +4087,8 @@ * 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. - */ /*#define HAS_MODFL / **/ /*#define HAS_MODFL_PROTO / **/ -/*#define HAS_MODFL_POW32_BUG / **/ /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is @@ -3806,6 +4102,33 @@ */ /*#define HAS_STRUCT_MSGHDR / **/ +/* HAS_NAN: + * This symbol, if defined, indicates that the nan routine is + * available to generate NaN. + */ +/*#define 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. + */ +/*#define 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. + */ +/*#define 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. + */ +/*#define 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 @@ -3821,6 +4144,8 @@ /* 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 @@ -3850,6 +4175,11 @@ */ /*#define HAS_PTHREAD_ATTR_SETSCOPE / **/ +/* HAS_PTRDIFF_T: + * This symbol will be defined if the C compiler supports ptrdiff_t. + */ +#define HAS_PTRDIFF_T /**/ + /* HAS_READV: * This symbol, if defined, indicates that the readv routine is * available to do gather reads. You will also need @@ -3863,6 +4193,31 @@ */ /*#define HAS_RECVMSG / **/ +/* HAS_REMAINDER: + * This symbol, if defined, indicates that the remainder routine is + * available to return the floating-point remainder. + */ +/*#define HAS_REMAINDER / **/ + +/* HAS_REMQUO: + * This symbol, if defined, indicates that the remquo routine is + * available to return the remainder and part of quotient. + */ +/*#define 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. + */ +/*#define HAS_RINT / **/ + +/* HAS_ROUND: + * This symbol, if defined, indicates that the round routine is + * available to round to nearest integer, away from zero. + */ +/*#define HAS_ROUND / **/ + /* HAS_SBRK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the sbrk() function. Otherwise, it is up @@ -3872,6 +4227,13 @@ */ /*#define 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. + */ +/*#define HAS_SCALBN / **/ + /* HAS_SCALBNL: * This symbol, if defined, indicates that the scalbnl routine is * available. If ilogbl is also present we can emulate frexpl. @@ -3896,12 +4258,6 @@ */ /*#define HAS_SETPROCTITLE / **/ -/* USE_SFIO: - * This symbol, if defined, indicates that sfio should - * be used. - */ -/*#define 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. @@ -4076,6 +4432,12 @@ */ /*#define 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. + */ +/*#define HAS_TGAMMA / **/ + /* HAS_CTIME64: * This symbol, if defined, indicates that the ctime64 () routine is * available to do the 64bit variant of ctime () @@ -4113,6 +4475,18 @@ */ /*#define HAS_TIMEGM / **/ +/* HAS_TRUNC: + * This symbol, if defined, indicates that the trunc routine is + * available to round doubles towards zero. + */ +/*#define HAS_TRUNC / **/ + +/* HAS_TRUNCL: + * This symbol, if defined, indicates that the truncl routine is + * available. If copysignl is also present we can emulate modfl. + */ +/*#define HAS_TRUNCL / **/ + /* U32_ALIGNMENT_REQUIRED: * This symbol, if defined, indicates that you must access * character data through U32-aligned pointers. @@ -4154,6 +4528,18 @@ */ /*#define HAS_USTAT / **/ +/* HAS_WCSCMP: + * This symbol, if defined, indicates that the wcscmp routine is + * available to compare two wide character strings. + */ +/*#define HAS_WCSCMP / **/ + +/* HAS_WCSXFRM: + * This symbol, if defined, indicates that the wcsxfrm routine is + * available to tranform a wide character string for wcscmp(). + */ +/*#define HAS_WCSXFRM / **/ + /* HAS_WRITEV: * This symbol, if defined, indicates that the writev routine is * available to do scatter writes. @@ -4167,8 +4553,10 @@ /*#define 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 @@ -4186,6 +4574,12 @@ */ #define I_ASSERT /**/ +/* I_BFD: + * This symbol, if defined, indicates that exists and + * can be included. + */ +/*#define I_BFD / **/ + /* I_CRYPT: * This symbol, if defined, indicates that exists and * should be included. @@ -4222,6 +4616,12 @@ #define DB_VERSION_MINOR_CFG 0 /**/ #define DB_VERSION_PATCH_CFG 0 /**/ +/* I_FENV: + * This symbol, if defined, indicates to the C program that it should + * include to get the floating point environment definitions. + */ +/*#define I_FENV / **/ + /* I_FP: * This symbol, if defined, indicates that exists and * should be included. @@ -4288,6 +4688,12 @@ */ /*#define I_PROT / **/ +/* I_QUADMATH: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_QUADMATH / **/ + /* I_SHADOW: * This symbol, if defined, indicates that exists and * should be included. @@ -4306,6 +4712,12 @@ */ /*#define I_STDBOOL / **/ +/* I_STDINT: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_STDINT / **/ + /* I_SUNMATH: * This symbol, if defined, indicates that exists and * should be included. @@ -4359,6 +4771,27 @@ */ /*#define 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 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f /**/ +#define DOUBLENANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f /**/ +#define LONGDBLINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /**/ +#define LONGDBLNANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 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. @@ -4375,16 +4808,56 @@ * 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 3 /**/ +#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 /*#define PERL_PRIfldbl "llf" / **/ /*#define PERL_PRIgldbl "llg" / **/ /*#define PERL_PRIeldbl "lle" / **/ /*#define PERL_SCNfldbl "llf" / **/ -/* PERL_MAD: - * This symbol, if defined, indicates that the Misc Attribution - * Declaration code should be conditionally compiled. - */ -/*#define 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 52 +#define LONGDBLMANTBITS 64 +#define NVMANTBITS 52 /* NEED_VA_COPY: * This symbol, if defined, indicates that the system stores @@ -4462,6 +4935,11 @@ */ /* 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 @@ -4579,7 +5057,7 @@ * 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 1 /* st_ino sign */ @@ -4651,6 +5129,12 @@ /*#define USE_64_BIT_ALL / **/ #endif +/* USE_CBACKTRACE: + * This symbol, if defined, indicates that Perl should + * be built with support for backtrace. + */ +/*#define USE_CBACKTRACE / **/ + /* USE_DTRACE: * This symbol, if defined, indicates that Perl should * be built with support for DTrace. @@ -4666,6 +5150,13 @@ /*#define USE_FAST_STDIO / **/ #endif +/* USE_KERN_PROC_PATHNAME: + * This symbol, if defined, indicates that we can use sysctl with + * KERN_PROC_PATHNAME to get a full path for the executable, and hence + * convert $^X to an absolute path. + */ +/*#define USE_KERN_PROC_PATHNAME / **/ + /* USE_LARGE_FILES: * This symbol, if defined, indicates that large file support * should be used when available. @@ -4698,6 +5189,13 @@ /*#define MULTIPLICITY / **/ #endif +/* USE_NSGETEXECUTABLEPATH: + * This symbol, if defined, indicates that we can use _NSGetExecutablePath + * and realpath to get a full path for the executable, and hence convert + * $^X to an absolute path. + */ +/*#define USE_NSGETEXECUTABLEPATH / **/ + /* USE_PERLIO: * This symbol, if defined, indicates that the PerlIO abstraction should * be used throughout. If not defined, stdio should be @@ -4707,6 +5205,14 @@ /*#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: * This symbol, if defined, indicates that Perl should * be built to use socks. @@ -4718,6 +5224,6 @@ #endif /* Generated from: - * 5b5dacbb00f53ae9b440c79cf6d5c8bbf80a7adfa1db3f3814aa77dc6f461fa7 config_h.SH - * b5e74633486412bbc4d2a1c3847f3e85b10a86e96fb5d1efb7b8bc885956d746 uconfig.sh + * 0459b706f70bb18d7481b187553e0719406d2c7d5c354c3a309332dfd8e66197 config_h.SH + * 9382cd0e3b112993f14cfefe78ebe24b4b09df9d9dd199226ca7ba5e6b90f21a uconfig.sh * ex: set ro: */