Message ID | 20210524014312.4111807-1-ibmibmibm.tw@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v7,1/3] math: redirect roundeven function | expand |
On Sun, May 23, 2021 at 6:43 PM Shen-Ta Hsieh <ibmibmibm.tw@gmail.com> wrote: > > This patch redirect roundeven function for futhermore changes. > > Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com> > --- > include/math.h | 2 +- > 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, 10 insertions(+), 2 deletions(-) > > diff --git a/include/math.h b/include/math.h > index e1c2a4eb64..b4772d3d3b 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) > > # if !defined __NO_LONG_DOUBLE_MATH \ > && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 > @@ -159,6 +158,7 @@ fabsf128 (_Float128 x) > MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS) > MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS) > MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS) > +MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS) > MATH_REDIRECT (rint, "__", MATH_REDIRECT_UNARY_ARGS) > MATH_REDIRECT (trunc, "__", MATH_REDIRECT_UNARY_ARGS) > MATH_REDIRECT (round, "__", MATH_REDIRECT_UNARY_ARGS) > diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c > index 943b2c634c..5deff3bb8a 100644 > --- a/sysdeps/ieee754/dbl-64/s_roundeven.c > +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c > @@ -16,6 +16,7 @@ > License along with the GNU C Library; if not, see > <https://www.gnu.org/licenses/>. */ > > +#define NO_MATH_REDIRECT > #include <math.h> > #include <math_private.h> > #include <libm-alias-double.h> > @@ -66,5 +67,6 @@ __roundeven (double x) > INSERT_WORDS64 (x, ix); > 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 5a9b3f395f..e0faf727f6 100644 > --- a/sysdeps/ieee754/float128/s_roundevenf128.c > +++ b/sysdeps/ieee754/float128/s_roundevenf128.c > @@ -1,2 +1,3 @@ > +#define NO_MATH_REDIRECT > #include <float128_private.h> > #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 ae54365bbe..2cc0d7b001 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 > <https://www.gnu.org/licenses/>. */ > > +#define NO_MATH_REDIRECT > #include <math.h> > #include <math_private.h> > #include <libm-alias-float.h> > @@ -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 02765be0e0..7c9c11fad2 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 > <https://www.gnu.org/licenses/>. */ > > +#define NO_MATH_REDIRECT > #include <math.h> > #include <math_private.h> > #include <libm-alias-ldouble.h> > diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c > index 8340116ed8..f826829c31 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 > <https://www.gnu.org/licenses/>. */ > > +#define NO_MATH_REDIRECT > #include <math.h> > #include <math_private.h> > #include <libm-alias-ldouble.h> > -- > 2.31.1 > LGTM. Reviewed-by: H.J. Lu <hjl.tools@gmail.com> Thanks.
On Tue, May 25, 2021 at 5:02 AM H.J. Lu <hjl.tools@gmail.com> wrote: > > On Sun, May 23, 2021 at 6:43 PM Shen-Ta Hsieh <ibmibmibm.tw@gmail.com> wrote: > > > > This patch redirect roundeven function for futhermore changes. > > > > Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com> > > --- > > include/math.h | 2 +- > > 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, 10 insertions(+), 2 deletions(-) > > > > diff --git a/include/math.h b/include/math.h > > index e1c2a4eb64..b4772d3d3b 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) > > > > # if !defined __NO_LONG_DOUBLE_MATH \ > > && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 > > @@ -159,6 +158,7 @@ fabsf128 (_Float128 x) > > MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS) > > MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS) > > MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS) > > +MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS) > > MATH_REDIRECT (rint, "__", MATH_REDIRECT_UNARY_ARGS) > > MATH_REDIRECT (trunc, "__", MATH_REDIRECT_UNARY_ARGS) > > MATH_REDIRECT (round, "__", MATH_REDIRECT_UNARY_ARGS) > > diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c > > index 943b2c634c..5deff3bb8a 100644 > > --- a/sysdeps/ieee754/dbl-64/s_roundeven.c > > +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c > > @@ -16,6 +16,7 @@ > > License along with the GNU C Library; if not, see > > <https://www.gnu.org/licenses/>. */ > > > > +#define NO_MATH_REDIRECT > > #include <math.h> > > #include <math_private.h> > > #include <libm-alias-double.h> > > @@ -66,5 +67,6 @@ __roundeven (double x) > > INSERT_WORDS64 (x, ix); > > 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 5a9b3f395f..e0faf727f6 100644 > > --- a/sysdeps/ieee754/float128/s_roundevenf128.c > > +++ b/sysdeps/ieee754/float128/s_roundevenf128.c > > @@ -1,2 +1,3 @@ > > +#define NO_MATH_REDIRECT > > #include <float128_private.h> > > #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 ae54365bbe..2cc0d7b001 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 > > <https://www.gnu.org/licenses/>. */ > > > > +#define NO_MATH_REDIRECT > > #include <math.h> > > #include <math_private.h> > > #include <libm-alias-float.h> > > @@ -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 02765be0e0..7c9c11fad2 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 > > <https://www.gnu.org/licenses/>. */ > > > > +#define NO_MATH_REDIRECT > > #include <math.h> > > #include <math_private.h> > > #include <libm-alias-ldouble.h> > > diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c > > index 8340116ed8..f826829c31 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 > > <https://www.gnu.org/licenses/>. */ > > > > +#define NO_MATH_REDIRECT > > #include <math.h> > > #include <math_private.h> > > #include <libm-alias-ldouble.h> > > -- > > 2.31.1 > > > > LGTM. > > Reviewed-by: H.J. Lu <hjl.tools@gmail.com> > I tried it with scripts/build-many-glibcs.py. It failed with targets using: sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c sysdeps/aarch64/fpu/s_roundevenf.c sysdeps/aarch64/fpu/s_roundeven.c sysdeps/riscv/rv64/rvd/s_roundeven.c sysdeps/riscv/rvf/s_roundevenf.c
diff --git a/include/math.h b/include/math.h index e1c2a4eb64..b4772d3d3b 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) # if !defined __NO_LONG_DOUBLE_MATH \ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 @@ -159,6 +158,7 @@ fabsf128 (_Float128 x) MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS) MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS) MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS) +MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS) MATH_REDIRECT (rint, "__", MATH_REDIRECT_UNARY_ARGS) MATH_REDIRECT (trunc, "__", MATH_REDIRECT_UNARY_ARGS) MATH_REDIRECT (round, "__", MATH_REDIRECT_UNARY_ARGS) diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c index 943b2c634c..5deff3bb8a 100644 --- a/sysdeps/ieee754/dbl-64/s_roundeven.c +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ +#define NO_MATH_REDIRECT #include <math.h> #include <math_private.h> #include <libm-alias-double.h> @@ -66,5 +67,6 @@ __roundeven (double x) INSERT_WORDS64 (x, ix); 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 5a9b3f395f..e0faf727f6 100644 --- a/sysdeps/ieee754/float128/s_roundevenf128.c +++ b/sysdeps/ieee754/float128/s_roundevenf128.c @@ -1,2 +1,3 @@ +#define NO_MATH_REDIRECT #include <float128_private.h> #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 ae54365bbe..2cc0d7b001 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 <https://www.gnu.org/licenses/>. */ +#define NO_MATH_REDIRECT #include <math.h> #include <math_private.h> #include <libm-alias-float.h> @@ -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 02765be0e0..7c9c11fad2 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 <https://www.gnu.org/licenses/>. */ +#define NO_MATH_REDIRECT #include <math.h> #include <math_private.h> #include <libm-alias-ldouble.h> diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c index 8340116ed8..f826829c31 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 <https://www.gnu.org/licenses/>. */ +#define NO_MATH_REDIRECT #include <math.h> #include <math_private.h> #include <libm-alias-ldouble.h>
This patch redirect roundeven function for futhermore changes. Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com> --- include/math.h | 2 +- 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, 10 insertions(+), 2 deletions(-)