[v6,1/3] math: redirect roundeven function

Message ID 20210522002227.2234377-1-ibmibmibm.tw@gmail.com
State Superseded
Headers show
Series
  • [v6,1/3] math: redirect roundeven function
Related show

Commit Message

H.J. Lu via Libc-alpha May 22, 2021, 12:22 a.m.
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(-)

-- 
2.31.1

Comments

H.J. Lu via Libc-alpha May 23, 2021, 6:54 p.m. | #1
On Fri, May 21, 2021 at 5:23 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


Is this really needed?

>  #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


Is this really needed?

>  #include <math.h>

>  #include <math_private.h>

>  #include <libm-alias-ldouble.h>

> --

> 2.31.1

>



-- 
H.J.
H.J. Lu via Libc-alpha May 24, 2021, 1:39 a.m. | #2
I don't know if it is not needed, but I saw the same line at
"sysdeps/ieee754/ldbl-96/s_roundl.c", which is added by this commit:

https://sourceware.org/git/?p=glibc.git;a=commit;h=9755bc4686d8cd6a0e9539040b903e9e9291c319

H.J. Lu <hjl.tools@gmail.com> 於 2021年5月24日 週一 上午2:55寫道:
>

> On Fri, May 21, 2021 at 5:23 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

>

> Is this really needed?

>

> >  #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

>

> Is this really needed?

>

> >  #include <math.h>

> >  #include <math_private.h>

> >  #include <libm-alias-ldouble.h>

> > --

> > 2.31.1

> >

>

>

> --

> H.J.

Patch

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>