diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 16:39:27 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 16:39:27 +0000 |
commit | 52629237a522c7c146d788ddaaf69946fd2729f9 (patch) | |
tree | 552402b085cff37bc251fc0f45ed9255b53cdd57 /include/math.h | |
parent | 3896c5809b49e72fbadc57da2189ff42aa2a5d02 (diff) | |
parent | 064374be911f72dfaec8a75f06da1f9fc1827712 (diff) |
Merge commit 'refs/top-bases/t/hurdsig-boot-fix' into t/hurdsig-boot-fix
Diffstat (limited to 'include/math.h')
-rw-r--r-- | include/math.h | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/include/math.h b/include/math.h index ba7bba018a..e21d34b868 100644 --- a/include/math.h +++ b/include/math.h @@ -1,11 +1,13 @@ #ifndef _MATH_H +#ifdef _ISOMAC +# undef NO_LONG_DOUBLE +#endif + #include <math/math.h> #ifndef _ISOMAC /* Now define the internal interfaces. */ -extern int __matherr (struct exception *__exc); - extern int __signgam; # if IS_IN (libc) || IS_IN (libm) @@ -21,6 +23,13 @@ hidden_proto (__finitel) hidden_proto (__isinfl) hidden_proto (__isnanl) # endif + +# if __HAVE_DISTINCT_FLOAT128 +hidden_proto (__finitef128) +hidden_proto (__isinff128) +hidden_proto (__isnanf128) +hidden_proto (__signbitf128) +# endif # endif libm_hidden_proto (__fpclassify) @@ -29,6 +38,7 @@ libm_hidden_proto (__issignaling) libm_hidden_proto (__issignalingf) libm_hidden_proto (__exp) libm_hidden_proto (__expf) +libm_hidden_proto (__roundeven) # ifndef __NO_LONG_DOUBLE_MATH libm_hidden_proto (__fpclassifyl) @@ -37,5 +47,27 @@ libm_hidden_proto (__expl) libm_hidden_proto (__expm1l) # endif +# if __HAVE_DISTINCT_FLOAT128 +libm_hidden_proto (__fpclassifyf128) +libm_hidden_proto (__issignalingf128) +libm_hidden_proto (__expf128) +libm_hidden_proto (__expm1f128) +# endif + +# if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0) +# ifndef NO_MATH_REDIRECT +/* Declare sqrt for use within GLIBC. Compilers typically inline sqrt as a + single instruction. Use an asm to avoid use of PLTs if it doesn't. */ +float (sqrtf) (float) asm ("__ieee754_sqrtf"); +double (sqrt) (double) asm ("__ieee754_sqrt"); +# ifndef __NO_LONG_DOUBLE_MATH +long double (sqrtl) (long double) asm ("__ieee754_sqrtl"); +# endif +# if __HAVE_DISTINCT_FLOAT128 > 0 +_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128"); +# endif +# endif +# endif + #endif #endif |