aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/powerpc/fpu/s_isnan.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2201a25..acc4d73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2002-09-10 Roland McGrath <roland@redhat.com>
+ * sysdeps/powerpc/fpu/s_isnan.c: Do macro hackery on __GI___isnanf as
+ well so we don't get it declared by include/math.h's hidden_proto.
+ Then do hidden_proto for __isnanf locally so hidden_def works right.
+
* posix/bug-regex5.c (main): Use `union locale_data_value' rather than
a cast to turn nl_langinfo return value into an integer.
diff --git a/sysdeps/powerpc/fpu/s_isnan.c b/sysdeps/powerpc/fpu/s_isnan.c
index 0ad1c62..38ec821 100644
--- a/sysdeps/powerpc/fpu/s_isnan.c
+++ b/sysdeps/powerpc/fpu/s_isnan.c
@@ -20,12 +20,20 @@
/* Ugly kludge to avoid declarations. */
#define __isnanf __Xisnanf
#define isnanf Xisnanf
+#define __GI___isnanf __GI___Xisnanf
#include "math.h"
#include <fenv_libc.h>
#undef __isnanf
#undef isnanf
+#undef __GI___isnanf
+
+
+/* The hidden_proto in include/math.h was obscured by the macro hackery. */
+__typeof (__isnan) __isnanf;
+hidden_proto (__isnanf)
+
int
__isnan (x)
@@ -42,6 +50,7 @@ __isnan (x)
hidden_def (__isnan)
weak_alias (__isnan, isnan)
+
/* It turns out that the 'double' version will also always work for
single-precision. */
strong_alias (__isnan, __isnanf)