This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
revamp pp_entersub()'s CV locating code
[perl5.git] / uconfig.h
index 62458ce..c7bb73f 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  *     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.21/unknown"          / **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.21/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.
 /* 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
  *     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.
  */
 #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:
  */
 /*#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
  *     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
 /*#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     / **/
  *     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.21"            /**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.21"                /**/
+#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
  *     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.21/unknown"         / **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.21/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.
  *     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.21"            /**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.21"                /**/
+#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:
  */
 /*#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.
  *     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
  */
 /*#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.
 /*#define PERL_PRIeldbl        "lle"   / **/
 /*#define PERL_SCNfldbl        "llf"   / **/
 
+/* 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
  *     the variable argument list datatype, va_list, in a format
  */
 /* 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
 #endif
 
 /* Generated from:
- * 0b960722a4dac6f7f6060a886109bb674ad8acdc08d0d14e9c3af5e1bf9e89a6 config_h.SH
- * f00aaa095a00a83a70716ff4b9df8a1e7feb27fbb4d9b759d4ca27e6412545b1 uconfig.sh
+ * 0459b706f70bb18d7481b187553e0719406d2c7d5c354c3a309332dfd8e66197 config_h.SH
+ * 9382cd0e3b112993f14cfefe78ebe24b4b09df9d9dd199226ca7ba5e6b90f21a uconfig.sh
  * ex: set ro: */