From 593bf7189a82b9b2874d41c71cb2109482a9f201 Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Thu, 4 May 2017 14:47:27 -0300 Subject: [PATCH] ldbl-128: Use mathx_hidden_def inplace of hidden_def This provides a extra macro expansion before invoking the hidden_def macro. This is necessary to build the ldbl-128 files as float128 correctly. * sysdeps/generic/math_private.h: (mathx_hidden_def): New macro. * sysdeps/ieee754/ldbl-128/s_finitel.c: Replace hidden_def with the above. * sysdeps/ieee754/ldbl-128/s_isinfl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_isnanl.c: Likewise. --- ChangeLog | 8 ++++++++ sysdeps/generic/math_private.h | 4 ++++ sysdeps/ieee754/ldbl-128/s_finitel.c | 2 +- sysdeps/ieee754/ldbl-128/s_isinfl.c | 2 +- sysdeps/ieee754/ldbl-128/s_isnanl.c | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d023fc..c0bb010 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2017-05-04 Paul E. Murphy + + * sysdeps/generic/math_private.h (mathx_hidden_def): New macro. + * sysdeps/ieee754/ldbl-128/s_finitel.c: Replace hidden_def with + the above. + * sysdeps/ieee754/ldbl-128/s_isinfl.c: Likewise. + * sysdeps/ieee754/ldbl-128/s_isnanl.c: Likewise. + 2017-05-04 Joseph Myers [BZ #21445] diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index aba1cb9..4d8a35f 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -181,6 +181,10 @@ do { \ } while (0) #endif +/* We need to guarantee an expansion of name when building + ldbl-128 files as another type (e.g _Float128). */ +#define mathx_hidden_def(name) hidden_def(name) + /* Get long double macros from a separate header. */ #include diff --git a/sysdeps/ieee754/ldbl-128/s_finitel.c b/sysdeps/ieee754/ldbl-128/s_finitel.c index feb4590..7c69968 100644 --- a/sysdeps/ieee754/ldbl-128/s_finitel.c +++ b/sysdeps/ieee754/ldbl-128/s_finitel.c @@ -32,5 +32,5 @@ int __finitel(_Float128 x) return (int)((u_int64_t)((hx&0x7fff000000000000LL) -0x7fff000000000000LL)>>63); } -hidden_def (__finitel) +mathx_hidden_def (__finitel) weak_alias (__finitel, finitel) diff --git a/sysdeps/ieee754/ldbl-128/s_isinfl.c b/sysdeps/ieee754/ldbl-128/s_isinfl.c index dce8fc0..a41e8cf 100644 --- a/sysdeps/ieee754/ldbl-128/s_isinfl.c +++ b/sysdeps/ieee754/ldbl-128/s_isinfl.c @@ -25,5 +25,5 @@ __isinfl (_Float128 x) lx |= -lx; return ~(lx >> 63) & (hx >> 62); } -hidden_def (__isinfl) +mathx_hidden_def (__isinfl) weak_alias (__isinfl, isinfl) diff --git a/sysdeps/ieee754/ldbl-128/s_isnanl.c b/sysdeps/ieee754/ldbl-128/s_isnanl.c index 1dee642..80f97fe 100644 --- a/sysdeps/ieee754/ldbl-128/s_isnanl.c +++ b/sysdeps/ieee754/ldbl-128/s_isnanl.c @@ -34,5 +34,5 @@ int __isnanl(_Float128 x) hx = 0x7fff000000000000LL - hx; return (int)((u_int64_t)hx>>63); } -hidden_def (__isnanl) +mathx_hidden_def (__isnanl) weak_alias (__isnanl, isnanl) -- 2.7.4