[PATCH v2 1/8] ldbl-128: Use mathx_hidden_def inplace of hidden_def
Gabriel F. T. Gomes
gftg@linux.vnet.ibm.com
Fri Apr 28 21:36:00 GMT 2017
From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com>
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.
---
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 +-
4 files changed, 7 insertions(+), 3 deletions(-)
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 <math_ldbl.h>
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.4.11
More information about the Libc-alpha
mailing list