From 447954a206837b5f153869cfeeeab44631c3fac9 Mon Sep 17 00:00:00 2001 From: Shen-Ta Hsieh Date: Mon, 24 May 2021 09:43:10 +0800 Subject: [PATCH] math: redirect roundeven function Content-type: text/plain; charset=UTF-8 This patch redirect roundeven function for futhermore changes. Signed-off-by: Shen-Ta Hsieh Reviewed-by: H.J. Lu --- include/math.h | 3 ++- sysdeps/ieee754/dbl-64/s_roundeven.c | 4 +++- sysdeps/ieee754/float128/s_roundevenf128.c | 1 + sysdeps/ieee754/flt-32/s_roundevenf.c | 3 +++ sysdeps/ieee754/ldbl-128/s_roundevenl.c | 1 + sysdeps/ieee754/ldbl-96/s_roundevenl.c | 1 + 6 files changed, 11 insertions(+), 2 deletions(-) Conflicts: include/math.h (missing MATH_REDIRECT macros) diff --git a/include/math.h b/include/math.h index e21d34b8..1f9f9a54 100644 --- a/include/math.h +++ b/include/math.h @@ -38,7 +38,6 @@ 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) @@ -56,6 +55,8 @@ libm_hidden_proto (__expm1f128) # if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0) # ifndef NO_MATH_REDIRECT +float (roundevenf) (float) asm ("__roundevenf"); +double (roundeven) (double) asm ("__roundeven"); /* 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"); diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c index 1438e81d..61962184 100644 --- a/sysdeps/ieee754/dbl-64/s_roundeven.c +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include @@ -101,5 +102,6 @@ __roundeven (double x) INSERT_WORDS (x, hx, lx); return x; } -hidden_def (__roundeven) +#ifndef __roundeven libm_alias_double (__roundeven, roundeven) +#endif diff --git a/sysdeps/ieee754/float128/s_roundevenf128.c b/sysdeps/ieee754/float128/s_roundevenf128.c index 5a9b3f39..e0faf727 100644 --- a/sysdeps/ieee754/float128/s_roundevenf128.c +++ b/sysdeps/ieee754/float128/s_roundevenf128.c @@ -1,2 +1,3 @@ +#define NO_MATH_REDIRECT #include #include "../ldbl-128/s_roundevenl.c" diff --git a/sysdeps/ieee754/flt-32/s_roundevenf.c b/sysdeps/ieee754/flt-32/s_roundevenf.c index 90f991d5..a661875e 100644 --- a/sysdeps/ieee754/flt-32/s_roundevenf.c +++ b/sysdeps/ieee754/flt-32/s_roundevenf.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include @@ -67,4 +68,6 @@ __roundevenf (float x) SET_FLOAT_WORD (x, ix); return x; } +#ifndef __roundevenf libm_alias_float (__roundeven, roundeven) +#endif diff --git a/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/sysdeps/ieee754/ldbl-128/s_roundevenl.c index 5fc59af4..b9375b6c 100644 --- a/sysdeps/ieee754/ldbl-128/s_roundevenl.c +++ b/sysdeps/ieee754/ldbl-128/s_roundevenl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c index be2e4fa4..65031ab7 100644 --- a/sysdeps/ieee754/ldbl-96/s_roundevenl.c +++ b/sysdeps/ieee754/ldbl-96/s_roundevenl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include -- GitLab