This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
POSIX math: Configure scan d_fegetround and i_fenv.
authorJarkko Hietaniemi <jhi@iki.fi>
Sat, 30 Aug 2014 13:17:11 +0000 (09:17 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Sun, 31 Aug 2014 21:53:07 +0000 (17:53 -0400)
15 files changed:
Configure
Cross/config.sh-arm-linux
NetWare/config.wc
Porting/Glossary
Porting/config.sh
config_h.SH
configure.com
plan9/config_sh.sample
symbian/config.sh
uconfig.h
uconfig.sh
uconfig64.sh
win32/config.ce
win32/config.gc
win32/config.vc

index d960d9c..f319eb8 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -462,6 +462,7 @@ d_fcntl_can_lock=''
 d_fd_macros=''
 d_fd_set=''
 d_fds_bits=''
 d_fd_macros=''
 d_fd_set=''
 d_fds_bits=''
+d_fegetround=''
 d_fgetpos=''
 d_finite=''
 d_finitel=''
 d_fgetpos=''
 d_finite=''
 d_finitel=''
@@ -911,6 +912,7 @@ i_dirent=''
 i_dlfcn=''
 i_execinfo=''
 i_fcntl=''
 i_dlfcn=''
 i_execinfo=''
 i_fcntl=''
+i_fenv=''
 i_float=''
 i_fp=''
 i_fp_class=''
 i_float=''
 i_fp=''
 i_fp_class=''
@@ -6757,6 +6759,10 @@ EOCP
 esac
 $rm_try
 
 esac
 $rm_try
 
+: see if this is a fenv.h system
+set fenv.h i_fenv
+eval $inhdr
+
 : see if this is a float.h system
 set float.h i_float
 eval $inhdr
 : see if this is a float.h system
 set float.h i_float
 eval $inhdr
@@ -13679,6 +13685,10 @@ EOM
 fi
 $rm_try
 
 fi
 $rm_try
 
+: see if fegetround exists
+set fegetround d_fegetround
+eval $inlibc
+
 : see if fgetpos exists
 set fgetpos d_fgetpos
 eval $inlibc
 : see if fgetpos exists
 set fgetpos d_fgetpos
 eval $inlibc
@@ -23323,6 +23333,7 @@ d_fcntl_can_lock='$d_fcntl_can_lock'
 d_fd_macros='$d_fd_macros'
 d_fd_set='$d_fd_set'
 d_fds_bits='$d_fds_bits'
 d_fd_macros='$d_fd_macros'
 d_fd_set='$d_fd_set'
 d_fds_bits='$d_fds_bits'
+d_fegetround='$d_fegetround'
 d_fgetpos='$d_fgetpos'
 d_finite='$d_finite'
 d_finitel='$d_finitel'
 d_fgetpos='$d_fgetpos'
 d_finite='$d_finite'
 d_finitel='$d_finitel'
@@ -23798,6 +23809,7 @@ i_dirent='$i_dirent'
 i_dlfcn='$i_dlfcn'
 i_execinfo='$i_execinfo'
 i_fcntl='$i_fcntl'
 i_dlfcn='$i_dlfcn'
 i_execinfo='$i_execinfo'
 i_fcntl='$i_fcntl'
+i_fenv='$i_fenv'
 i_float='$i_float'
 i_fp='$i_fp'
 i_fp_class='$i_fp_class'
 i_float='$i_float'
 i_fp='$i_fp'
 i_fp_class='$i_fp_class'
index 8360124..21d4169 100644 (file)
@@ -192,6 +192,7 @@ d_fcntl_can_lock='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='undef'
+d_fegetround='define'
 d_fgetpos='define'
 d_finite='define'
 d_finitel='define'
 d_fgetpos='define'
 d_finite='define'
 d_finitel='define'
@@ -661,6 +662,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='undef'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='undef'
+i_fenv='define'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index 675d9ba..7e94133 100644 (file)
@@ -180,6 +180,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
@@ -643,6 +644,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index d514458..5a436e0 100644 (file)
@@ -808,6 +808,10 @@ d_fds_bits (d_fd_set.U):
        a half-fast job and neglected to provide the macros to manipulate
        an fd_set, HAS_FDS_BITS will let us know how to fix the gaffe.
 
        a half-fast job and neglected to provide the macros to manipulate
        an fd_set, HAS_FDS_BITS will let us know how to fix the gaffe.
 
+d_fegetround (d_fegetround.U):
+       This variable conditionally defines HAS_FEGETROUND if fegetround() is
+       available to get the floating point rounding mode.
+
 d_fgetpos (d_fgetpos.U):
        This variable conditionally defines HAS_FGETPOS if fgetpos() is
        available to get the file position indicator.
 d_fgetpos (d_fgetpos.U):
        This variable conditionally defines HAS_FGETPOS if fgetpos() is
        available to get the file position indicator.
index 42099c6..de2425d 100644 (file)
@@ -201,6 +201,7 @@ d_fcntl_can_lock='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='undef'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='define'
 d_finitel='define'
 d_fgetpos='define'
 d_finite='define'
 d_finitel='define'
@@ -676,6 +677,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='undef'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='undef'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index fd070ae..d55726e 100755 (executable)
@@ -162,6 +162,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$d_fcntl HAS_FCNTL            /**/
 
  */
 #$d_fcntl HAS_FCNTL            /**/
 
+/* HAS_FEGETROUND:
+ *     This symbol, if defined, indicates that the fegetround routine is
+ *     available to get the floating point rounding mode.
+ */
+#$d_fegetround HAS_FEGETROUND  /**/
+
 /* HAS_FGETPOS:
  *     This symbol, if defined, indicates that the fgetpos routine is
  *     available to get the file position indicator, similar to ftell().
 /* HAS_FGETPOS:
  *     This symbol, if defined, indicates that the fgetpos routine is
  *     available to get the file position indicator, similar to ftell().
@@ -708,6 +714,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #$i_fcntl I_FCNTL      /**/
 
  */
 #$i_fcntl I_FCNTL      /**/
 
+/* I_FENV:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <fenv.h> to get the floating point environment definitions.
+ */
+#$i_fenv I_FENV                /**/
+
 /* I_FLOAT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <float.h> to get definition of symbols like DBL_MAX or
 /* I_FLOAT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <float.h> to get definition of symbols like DBL_MAX or
index b1763c1..33a4869 100644 (file)
@@ -5974,6 +5974,7 @@ $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'"
 $ WC "d_fd_set='" + d_fd_set + "'"
 $ WC "d_fd_macros='define'"
 $ WC "d_fds_bits='define'"
 $ WC "d_fd_set='" + d_fd_set + "'"
 $ WC "d_fd_macros='define'"
 $ WC "d_fds_bits='define'"
+$ WC "d_fegetround='undef'"
 $ WC "d_fgetpos='define'"
 $ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" .AND. use_ieee_math
 $ THEN
 $ WC "d_fgetpos='define'"
 $ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" .AND. use_ieee_math
 $ THEN
@@ -6414,6 +6415,7 @@ $ WC "i_dirent='undef'"   ! we roll our own
 $ WC "i_dlfcn='undef'"
 $ WC "i_execinfo='undef'"
 $ WC "i_fcntl='" + i_fcntl + "'"
 $ WC "i_dlfcn='undef'"
 $ WC "i_execinfo='undef'"
 $ WC "i_fcntl='" + i_fcntl + "'"
+$ WC "i_fenv='undef'"
 $ WC "i_float='define'"
 $ WC "i_fp='undef'"
 $ WC "i_fp_class='undef'"
 $ WC "i_float='define'"
 $ WC "i_fp='undef'"
 $ WC "i_fp_class='undef'"
index 79bf0af..e554ba2 100644 (file)
@@ -192,6 +192,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
@@ -655,6 +656,7 @@ i_dirent='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index 50cf11d..ba28185 100644 (file)
@@ -136,6 +136,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
+d_fegetround='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
@@ -582,6 +583,7 @@ i_dirent='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
index 045ef2d..1867426 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 /*#define HAS_FCNTL            / **/
 
  */
 /*#define HAS_FCNTL            / **/
 
+/* HAS_FEGETROUND:
+ *     This symbol, if defined, indicates that the fegetround routine is
+ *     available to get the floating point rounding mode.
+ */
+/*#define HAS_FEGETROUND       / **/
+
 /* HAS_FGETPOS:
  *     This symbol, if defined, indicates that the fgetpos routine is
  *     available to get the file position indicator, similar to ftell().
 /* HAS_FGETPOS:
  *     This symbol, if defined, indicates that the fgetpos routine is
  *     available to get the file position indicator, similar to ftell().
  */
 /*#define I_FCNTL      / **/
 
  */
 /*#define I_FCNTL      / **/
 
+/* I_FENV:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <fenv.h> to get the floating point environment definitions.
+ */
+/*#define I_FENV               / **/
+
 /* I_FLOAT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <float.h> to get definition of symbols like DBL_MAX or
 /* I_FLOAT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <float.h> to get definition of symbols like DBL_MAX or
 #endif
 
 /* Generated from:
 #endif
 
 /* Generated from:
- * 12401deb2bd159475d6a3533b0fe0fae288825fd27c04f4f0f6655e4959ec9b7 config_h.SH
- * d4624634f898a9b01fb9baadf847f7614e0d036dd077852f40d37a9593af8e38 uconfig.sh
+ * 0486f11f3248b90661c12addfea9b9c4166aa7ab6b424d1b7b901b7bf1a62c89 config_h.SH
+ * a376d0ca25730310baa72472d022838903cee6091bc06eb4a01fc6c22d6f9c4a uconfig.sh
  * ex: set ro: */
  * ex: set ro: */
index 33e3d8f..49df8be 100644 (file)
@@ -130,6 +130,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
+d_fegetround='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
@@ -568,6 +569,7 @@ i_dirent='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='undef'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='undef'
+i_fenv='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
index bab54fb..ebd2dcb 100644 (file)
@@ -131,6 +131,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
 d_fd_macros='undef'
 d_fd_set='undef'
 d_fds_bits='undef'
+d_fegetround='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='undef'
 d_finite='undef'
 d_finitel='undef'
@@ -569,6 +570,7 @@ i_dirent='define'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='undef'
 i_dlfcn='undef'
 i_execinfo='undef'
 i_fcntl='undef'
+i_fenv='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
 i_float='undef'
 i_fp='undef'
 i_fp_class='undef'
index 6f1e559..8258479 100644 (file)
@@ -178,6 +178,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
@@ -639,6 +640,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index 6206fee..2885d3f 100644 (file)
@@ -179,6 +179,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
@@ -651,6 +652,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
index 19369f2..45ccd24 100644 (file)
@@ -179,6 +179,7 @@ d_fcntl_can_lock='undef'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
 d_fd_macros='define'
 d_fd_set='define'
 d_fds_bits='define'
+d_fegetround='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
 d_fgetpos='define'
 d_finite='undef'
 d_finitel='undef'
@@ -650,6 +651,7 @@ i_dirent='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
 i_dlfcn='define'
 i_execinfo='undef'
 i_fcntl='define'
+i_fenv='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'
 i_float='define'
 i_fp='undef'
 i_fp_class='undef'