summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/Makefile3
-rw-r--r--math/Versions4
-rw-r--r--math/fenv.h16
3 files changed, 22 insertions, 1 deletions
diff --git a/math/Makefile b/math/Makefile
index bc2e7b9307..f9f0ce4790 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -39,7 +39,8 @@ extra-libs-others = $(extra-libs)
 libm-support = k_standard s_lib_version s_matherr s_signgam		\
 	       fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg		\
 	       ftestexcept fegetround fesetround fegetenv feholdexcpt	\
-	       fesetenv feupdateenv t_exp
+	       fesetenv feupdateenv t_exp fedisblxcpt feenablxcpt	\
+	       fegetexcept
 libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod	\
 	     e_hypot e_j0 e_j1 e_jn e_lgamma_r e_log e_log10 e_pow	\
 	     e_rem_pio2 e_remainder e_scalb e_sinh e_sqrt e_gamma_r	\
diff --git a/math/Versions b/math/Versions
index 2be65529c9..99064cee68 100644
--- a/math/Versions
+++ b/math/Versions
@@ -158,4 +158,8 @@ libm {
     feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
     fesetenv; fesetexceptflag; feupdateenv;
   }
+  GLIBC_2.2 {
+    # fp environment function
+    feenableexcept; fedisableexcept; fegetexcept;
+  }
 }
diff --git a/math/fenv.h b/math/fenv.h
index 845b5e637f..bda3ee916f 100644
--- a/math/fenv.h
+++ b/math/fenv.h
@@ -115,6 +115,22 @@ extern int feupdateenv (__const fenv_t *__envp) __THROW;
 # include <bits/fenvinline.h>
 #endif
 
+#ifdef __USE_GNU
+
+/* Enable individual exceptions.  Will not enable more exceptions than
+   EXCEPTS specifies.  Returns the previous enabled exceptions if all
+   exceptions are successfull set, otherwise returns -1.  */
+extern int feenableexcept (int __excepts) __THROW;
+
+/* Disable individual exceptions.  Will not disable more exceptions than
+   EXCEPTS specifies.  Returns the previous enabled exceptions if all
+   exceptions are successfull disabled, otherwise returns -1.  */
+extern int fedisableexcept (int __excepts) __THROW;
+
+/* Return enabled exceptions.  */
+extern int fegetexcept (void) __THROW;
+#endif
+
 __END_DECLS
 
 #endif /* fenv.h */