summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2014-08-30 09:17:11 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2014-08-31 17:53:07 -0400
commit2f6b96eb42d99b04896d80305f8877cb2440cf44 (patch)
tree828ddf85b837cde1ddc957588b9b830a29816247
parent935e3c48aca0518881b33f771790170d02704a26 (diff)
downloadperl-2f6b96eb42d99b04896d80305f8877cb2440cf44.tar.gz
POSIX math: Configure scan d_fegetround and i_fenv.
-rwxr-xr-xConfigure12
-rw-r--r--Cross/config.sh-arm-linux2
-rw-r--r--NetWare/config.wc2
-rw-r--r--Porting/Glossary4
-rw-r--r--Porting/config.sh2
-rwxr-xr-xconfig_h.SH12
-rw-r--r--configure.com2
-rw-r--r--plan9/config_sh.sample2
-rw-r--r--symbian/config.sh2
-rw-r--r--uconfig.h16
-rw-r--r--uconfig.sh2
-rw-r--r--uconfig64.sh2
-rw-r--r--win32/config.ce2
-rw-r--r--win32/config.gc2
-rw-r--r--win32/config.vc2
15 files changed, 64 insertions, 2 deletions
diff --git a/Configure b/Configure
index d960d9cf4f..f319eb8cda 100755
--- a/Configure
+++ b/Configure
@@ -462,6 +462,7 @@ d_fcntl_can_lock=''
d_fd_macros=''
d_fd_set=''
d_fds_bits=''
+d_fegetround=''
d_fgetpos=''
d_finite=''
d_finitel=''
@@ -911,6 +912,7 @@ i_dirent=''
i_dlfcn=''
i_execinfo=''
i_fcntl=''
+i_fenv=''
i_float=''
i_fp=''
i_fp_class=''
@@ -6757,6 +6759,10 @@ EOCP
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
@@ -13679,6 +13685,10 @@ EOM
fi
$rm_try
+: see if fegetround exists
+set fegetround d_fegetround
+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_fegetround='$d_fegetround'
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_fenv='$i_fenv'
i_float='$i_float'
i_fp='$i_fp'
i_fp_class='$i_fp_class'
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 8360124799..21d4169ba9 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -192,6 +192,7 @@ d_fcntl_can_lock='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='undef'
+d_fegetround='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_fenv='define'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/NetWare/config.wc b/NetWare/config.wc
index 675d9ba197..7e94133202 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -180,6 +180,7 @@ d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
+d_fegetround='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_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/Porting/Glossary b/Porting/Glossary
index d514458688..5a436e0d26 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -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.
+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.
diff --git a/Porting/config.sh b/Porting/config.sh
index 42099c6f25..de2425d885 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -201,6 +201,7 @@ d_fcntl_can_lock='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='undef'
+d_fegetround='undef'
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_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/config_h.SH b/config_h.SH
index fd070ae15a..d55726e5ce 100755
--- a/config_h.SH
+++ b/config_h.SH
@@ -162,6 +162,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$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().
@@ -708,6 +714,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$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
diff --git a/configure.com b/configure.com
index b1763c1289..33a4869bd6 100644
--- a/configure.com
+++ b/configure.com
@@ -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_fegetround='undef'"
$ 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_fenv='undef'"
$ WC "i_float='define'"
$ WC "i_fp='undef'"
$ WC "i_fp_class='undef'"
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 79bf0afddb..e554ba230a 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -192,6 +192,7 @@ d_fcntl_can_lock='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'
@@ -655,6 +656,7 @@ i_dirent='define'
i_dlfcn='undef'
i_execinfo='undef'
i_fcntl='define'
+i_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/symbian/config.sh b/symbian/config.sh
index 50cf11dbdb..ba281855a4 100644
--- a/symbian/config.sh
+++ b/symbian/config.sh
@@ -136,6 +136,7 @@ d_fcntl_can_lock='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'
@@ -582,6 +583,7 @@ i_dirent='define'
i_dlfcn='undef'
i_execinfo='undef'
i_fcntl='define'
+i_fenv='undef'
i_float='undef'
i_fp='undef'
i_fp_class='undef'
diff --git a/uconfig.h b/uconfig.h
index 045ef2d288..186742623e 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -127,6 +127,12 @@
*/
/*#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().
@@ -673,6 +679,12 @@
*/
/*#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
@@ -4829,6 +4841,6 @@
#endif
/* Generated from:
- * 12401deb2bd159475d6a3533b0fe0fae288825fd27c04f4f0f6655e4959ec9b7 config_h.SH
- * d4624634f898a9b01fb9baadf847f7614e0d036dd077852f40d37a9593af8e38 uconfig.sh
+ * 0486f11f3248b90661c12addfea9b9c4166aa7ab6b424d1b7b901b7bf1a62c89 config_h.SH
+ * a376d0ca25730310baa72472d022838903cee6091bc06eb4a01fc6c22d6f9c4a uconfig.sh
* ex: set ro: */
diff --git a/uconfig.sh b/uconfig.sh
index 33e3d8f99d..49df8be0ff 100644
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -130,6 +130,7 @@ d_fcntl_can_lock='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'
@@ -568,6 +569,7 @@ i_dirent='define'
i_dlfcn='undef'
i_execinfo='undef'
i_fcntl='undef'
+i_fenv='undef'
i_float='undef'
i_fp='undef'
i_fp_class='undef'
diff --git a/uconfig64.sh b/uconfig64.sh
index bab54fb0e9..ebd2dcb7b9 100644
--- a/uconfig64.sh
+++ b/uconfig64.sh
@@ -131,6 +131,7 @@ d_fcntl_can_lock='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'
@@ -569,6 +570,7 @@ i_dirent='define'
i_dlfcn='undef'
i_execinfo='undef'
i_fcntl='undef'
+i_fenv='undef'
i_float='undef'
i_fp='undef'
i_fp_class='undef'
diff --git a/win32/config.ce b/win32/config.ce
index 6f1e5590fb..8258479c2d 100644
--- a/win32/config.ce
+++ b/win32/config.ce
@@ -178,6 +178,7 @@ d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
+d_fegetround='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_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/win32/config.gc b/win32/config.gc
index 6206fee3df..2885d3fdce 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -179,6 +179,7 @@ d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
+d_fegetround='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_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'
diff --git a/win32/config.vc b/win32/config.vc
index 19369f2b0a..45ccd24727 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -179,6 +179,7 @@ d_fcntl_can_lock='undef'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
+d_fegetround='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_fenv='undef'
i_float='define'
i_fp='undef'
i_fp_class='undef'