/* 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
*/
#$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_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.
*/
/* 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