about summary refs log tree commit diff
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 2201a25b5a..acc4d737fd 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 0ad1c6241e..38ec821cc3 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)