This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #122287] probe in Configure whether dtrace builds an object
[perl5.git] / config_h.SH
index 2cf870a..9dd2c09 100755 (executable)
@@ -1952,7 +1952,8 @@ sed <<!GROK!THIS! >$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
@@ -1966,8 +1967,10 @@ sed <<!GROK!THIS! >$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.
  */
@@ -1981,9 +1984,14 @@ sed <<!GROK!THIS! >$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:
@@ -2319,6 +2327,48 @@ sed <<!GROK!THIS! >$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
@@ -2358,36 +2408,6 @@ sed <<!GROK!THIS! >$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
@@ -2420,12 +2440,6 @@ sed <<!GROK!THIS! >$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     /**/
@@ -3589,6 +3603,13 @@ sed <<!GROK!THIS! >$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.
@@ -3995,12 +4016,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$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.
@@ -4026,12 +4061,26 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$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.
@@ -4073,16 +4122,8 @@ sed <<!GROK!THIS! >$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
@@ -4765,6 +4806,27 @@ sed <<!GROK!THIS! >$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.
@@ -4808,6 +4870,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #$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
@@ -4884,6 +4970,11 @@ sed <<!GROK!THIS! >$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