This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC][PATCH] check-localplt failure associated with IBM long double 128 and PowerPC


The following patch is a first pass at fixing the check-localplt make
check errors associated with PowerPC and IBM long double.

Some of the IBM long double related check-localplt failures have
tendrils into libc/sysdeps/ieee754/ldb-128/ that required fixing.

The reason that this is an [RFC] is that I'm not sure what to do about
the requirements I added into libc/include/fenv.h in order to make libm
local calls invoke hidden symbols, namely:

libm_hidden_proto (fegetexcept)
libm_hidden_proto (fetestexcept)
libm_hidden_proto (__fe_nomask_env)

On non-PowerPC systems the libm_hidden_proto for fegetexcept and
fetestexcept are simply an added internal symbol that isn't used.

On PowerPC they're required because the PowerPC fe functions use these
functions inside of libm.

The real problem is with __fe_nomask_env().  This is a PowerPC only
function defined in sysdeps/powerpc/bits/fenv.h that is unfortunately
used within other PowerPC libm functions.

My experiments indicated that the libm_hidden_proto had to be in
libc/include/fenv.h so that the libm internal functions invoking
__fe_nomask_env (et al) pick up the hidden symbol prototype and not the
external PLT reference.

Perhaps there's an architecture specific way this can be resolved.  Any
ideas?

Ryan S. Arnold
IBM Linux Technology Center
Linux Toolchain Development
2008-02-20  Ryan S. Arnold  <rsa@us.ibm.com>

	* include/fenv.h (fegetexcept, fetestexcept, __fe_nomask_env): Add
	libm_hidden_proto.
	* include/math.h (__signbitl): Add hidden_proto.
	* math/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* math/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* math/s_significandl.c (__significandl): Change ilogb() to
	__ilogb().
	* scripts/data/localplt-powerpc64-linux-gnu.data: New file.
	* sysdeps/alpha/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/alpha/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* sysdeps/i386/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/i386/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* sysdeps/ia64/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/ia64/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l __ieee754_y0l):
	Change finitel() to __finitel().  Change cosl(), sinl(), and sqrtl()
	to __cosl(), __sinl(), and __sqrtl() respectively for both functions.
	* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l __ieee754_y1l):
	Change finitel() to __finitel().  Change cosl(), sinl(), and sqrtl()
	to __cosl(), __sinl(), and __sqrtl() respectively for both functions.
	* sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Change ldexpl() to
	__ldexpl().
	* sysdeps/ieee754/ldbl-128/s_log1pl.c: Change forward declaration
	prototypes frexpl() and ldexpl() to __frexpl() and ldexpl()
	respectivley.
	(__log1pl): Change frexpl() to __frexpl().
	* sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Change
	roundl() to __roundl().
	* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Change ldexpl()
	to __ldexpl().
	* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c: Change forward declaration
	prototypes frexpl() and ldexpl() to __frexpl() and ldexpl()
	respectivley.
	(__log1pl): Change frexpl() to __frexpl().
	* sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c (__nearbyintl): Change
	nextafter() to __nextafter().
	* sysdeps/ieee754/ldbl-128ibm/s_signbitl.c (__signbitl): Add
	hidden_ver.
	* sysdeps/powerpc/fpu/fe_nomask.c (__fe_nomask_env): Add
	libm_hidden_def.
	* sysdeps/powerpc/fpu/fegetexcept.c (fegetexcept): Add
	libm_hidden_def.
	* sysdeps/powerpc/fpu/ftestexcept.c (fetestexcept): Add
	libm_hidden_def.
	* sysdeps/s390/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/s390/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* sysdeps/sh/sh4/fpu/ftestexcept.c (fetestexcept): Add
	libm_hidden_def.
	* sysdeps/sparc/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/sparc/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
	(__fe_nomask_env): Add libm_hidden_def.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c:
	(__fe_nomask_env): Add libm_hidden_def.
	* sysdeps/x86_64/fpu/fegetexcept.c (fegetexcept): Add libm_hidden_def.
	* sysdeps/x86_64/fpu/ftestexcept.c (fetestexcept): Add libm_hidden_def.

diff -uNr libc/include/fenv.h libc-patched/include/fenv.h
--- libc/include/fenv.h	2005-07-08 13:45:36.000000000 -0500
+++ libc-patched/include/fenv.h	2008-02-19 13:15:01.000000000 -0600
@@ -15,5 +15,8 @@
 libm_hidden_proto (fesetenv)
 libm_hidden_proto (fesetround)
 libm_hidden_proto (feholdexcept)
+libm_hidden_proto (fegetexcept)
+libm_hidden_proto (fetestexcept)
 
+libm_hidden_proto (__fe_nomask_env)
 #endif
diff -uNr libc/include/math.h libc-patched/include/math.h
--- libc/include/math.h	2002-09-09 19:41:44.000000000 -0500
+++ libc-patched/include/math.h	2008-02-19 13:15:01.000000000 -0600
@@ -17,6 +17,7 @@
 hidden_proto (__finitel)
 hidden_proto (__isinfl)
 hidden_proto (__isnanl)
+hidden_proto (__signbitl)
 #  endif
 # endif
 
diff -uNr libc/math/fegetexcept.c libc-patched/math/fegetexcept.c
--- libc/math/fegetexcept.c	2005-12-14 02:52:22.000000000 -0600
+++ libc-patched/math/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -26,5 +26,6 @@
   /* Signal failure.  */
   return -1;
 }
+libm_hidden_def (fegetexcept)
 stub_warning (fegetexcept)
 #include <stub-tag.h>
diff -uNr libc/math/ftestexcept.c libc-patched/math/ftestexcept.c
--- libc/math/ftestexcept.c	2005-12-14 02:59:46.000000000 -0600
+++ libc-patched/math/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -25,5 +25,6 @@
 {
   return 0;
 }
+libm_hidden_def(fetestexcept)
 stub_warning (fetestexcept)
 #include <stub-tag.h>
diff -uNr libc/math/s_significandl.c libc-patched/math/s_significandl.c
--- libc/math/s_significandl.c	2005-12-14 04:35:24.000000000 -0600
+++ libc-patched/math/s_significandl.c	2008-02-19 13:15:01.000000000 -0600
@@ -34,6 +34,6 @@
 	long double x;
 #endif
 {
-	return __ieee754_scalbl(x,(long double) -ilogbl(x));
+	return __ieee754_scalbl(x,(long double) -__ilogbl(x));
 }
 weak_alias (__significandl, significandl)
diff -uNr libc/scripts/data/localplt-powerpc64-linux-gnu.data libc-patched/scripts/data/localplt-powerpc64-linux-gnu.data
--- libc/scripts/data/localplt-powerpc64-linux-gnu.data	1969-12-31 18:00:00.000000000 -0600
+++ libc-patched/scripts/data/localplt-powerpc64-linux-gnu.data	2008-02-19 16:03:23.000000000 -0600
@@ -0,0 +1,6 @@
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
diff -uNr libc/sysdeps/alpha/fpu/fegetexcept.c libc-patched/sysdeps/alpha/fpu/fegetexcept.c
--- libc/sysdeps/alpha/fpu/fegetexcept.c	2001-07-05 23:55:47.000000000 -0500
+++ libc-patched/sysdeps/alpha/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -29,3 +29,4 @@
 
   return (exc & SWCR_ENABLE_MASK) << SWCR_ENABLE_SHIFT;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/alpha/fpu/ftestexcept.c libc-patched/sysdeps/alpha/fpu/ftestexcept.c
--- libc/sysdeps/alpha/fpu/ftestexcept.c	2001-07-05 23:55:47.000000000 -0500
+++ libc-patched/sysdeps/alpha/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,3 +30,4 @@
 
   return tmp & excepts & SWCR_STATUS_MASK;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/i386/fpu/fegetexcept.c libc-patched/sysdeps/i386/fpu/fegetexcept.c
--- libc/sysdeps/i386/fpu/fegetexcept.c	2001-07-05 23:55:53.000000000 -0500
+++ libc-patched/sysdeps/i386/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,3 +30,4 @@
 
   return (~exc) & FE_ALL_EXCEPT;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/i386/fpu/ftestexcept.c libc-patched/sysdeps/i386/fpu/ftestexcept.c
--- libc/sysdeps/i386/fpu/ftestexcept.c	2008-01-22 12:36:15.000000000 -0600
+++ libc-patched/sysdeps/i386/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -38,3 +38,4 @@
 
   return (temp | xtemp) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/ia64/fpu/fegetexcept.c libc-patched/sysdeps/ia64/fpu/fegetexcept.c
--- libc/sysdeps/ia64/fpu/fegetexcept.c	2001-07-05 23:55:54.000000000 -0500
+++ libc-patched/sysdeps/ia64/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -29,3 +29,4 @@
 
   return (fpsr ^ FE_ALL_EXCEPT) & FE_ALL_EXCEPT;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/ia64/fpu/ftestexcept.c libc-patched/sysdeps/ia64/fpu/ftestexcept.c
--- libc/sysdeps/ia64/fpu/ftestexcept.c	2001-07-05 23:55:54.000000000 -0500
+++ libc-patched/sysdeps/ia64/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,3 +30,4 @@
 
   return (fpsr >> 13) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/ieee754/ldbl-128/e_j0l.c libc-patched/sysdeps/ieee754/ldbl-128/e_j0l.c
--- libc/sysdeps/ieee754/ldbl-128/e_j0l.c	2003-12-28 14:50:20.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128/e_j0l.c	2008-02-19 13:15:01.000000000 -0600
@@ -679,7 +679,7 @@
 {
   long double xx, xinv, z, p, q, c, s, cc, ss;
 
-  if (! finitel (x))
+  if (! __finitel (x))
     {
       if (x != x)
 	return x;
@@ -768,16 +768,16 @@
      = 1/sqrt(2) * (sin(x) - cos(x))
      sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
      cf. Fdlibm.  */
-  c = cosl (xx);
-  s = sinl (xx);
+  c = __cosl (xx);
+  s = __sinl (xx);
   ss = s - c;
   cc = s + c;
-  z = -cosl (xx + xx);
+  z = -__cosl (xx + xx);
   if ((s * c) < 0)
     cc = z / ss;
   else
     ss = z / cc;
-  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / __sqrtl (xx);
   return z;
 }
 
@@ -817,7 +817,7 @@
 {
   long double xx, xinv, z, p, q, c, s, cc, ss;
 
-  if (! finitel (x))
+  if (! __finitel (x))
     {
       if (x != x)
 	return x;
@@ -836,7 +836,7 @@
       /* 0 <= x <= 2 */
       z = xx * xx;
       p = neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
-      p = TWOOPI * logl(x) * __ieee754_j0l(x) + p;
+      p = TWOOPI * __logl(x) * __ieee754_j0l(x) + p;
       return p;
     }
 
@@ -908,15 +908,15 @@
      = 1/sqrt(2) * (sin(x) - cos(x))
      sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
      cf. Fdlibm.  */
-  c = cosl (x);
-  s = sinl (x);
+  c = __cosl (x);
+  s = __sinl (x);
   ss = s - c;
   cc = s + c;
-  z = -cosl (x + x);
+  z = -__cosl (x + x);
   if ((s * c) < 0)
     cc = z / ss;
   else
     ss = z / cc;
-  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (x);
+  z = ONEOSQPI * (p * ss + q * cc) / __sqrtl (x);
   return z;
 }
diff -uNr libc/sysdeps/ieee754/ldbl-128/e_j1l.c libc-patched/sysdeps/ieee754/ldbl-128/e_j1l.c
--- libc/sysdeps/ieee754/ldbl-128/e_j1l.c	2003-12-28 14:50:20.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128/e_j1l.c	2008-02-19 13:15:01.000000000 -0600
@@ -685,7 +685,7 @@
 {
   long double xx, xinv, z, p, q, c, s, cc, ss;
 
-  if (! finitel (x))
+  if (! __finitel (x))
     {
       if (x != x)
 	return x;
@@ -773,16 +773,16 @@
      sin(X) = sin(x) cos(3 pi/4) - cos(x) sin(3 pi/4)
      = -1/sqrt(2) * (sin(x) + cos(x))
      cf. Fdlibm.  */
-  c = cosl (xx);
-  s = sinl (xx);
+  c = __cosl (xx);
+  s = __sinl (xx);
   ss = -s - c;
   cc = s - c;
-  z = cosl (xx + xx);
+  z = __cosl (xx + xx);
   if ((s * c) > 0)
     cc = z / ss;
   else
     ss = z / cc;
-  z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
+  z = ONEOSQPI * (p * cc - q * ss) / __sqrtl (xx);
   if (x < 0)
     z = -z;
   return z;
@@ -824,7 +824,7 @@
 {
   long double xx, xinv, z, p, q, c, s, cc, ss;
 
-  if (! finitel (x))
+  if (! __finitel (x))
     {
       if (x != x)
 	return x;
@@ -844,7 +844,7 @@
       z = xx * xx;
       p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
       p = -TWOOPI / xx + p;
-      p = TWOOPI * logl(x) * __ieee754_j1l (x) + p;
+      p = TWOOPI * __logl(x) * __ieee754_j1l (x) + p;
       return p;
     }
 
@@ -915,15 +915,15 @@
      sin(X) = sin(x) cos(3 pi/4) - cos(x) sin(3 pi/4)
      = -1/sqrt(2) * (sin(x) + cos(x))
      cf. Fdlibm.  */
-  c = cosl (xx);
-  s = sinl (xx);
+  c = __cosl (xx);
+  s = __sinl (xx);
   ss = -s - c;
   cc = s - c;
-  z = cosl (xx + xx);
+  z = __cosl (xx + xx);
   if ((s * c) > 0)
     cc = z / ss;
   else
     ss = z / cc;
-  z = ONEOSQPI * (p * ss + q * cc) / sqrtl (xx);
+  z = ONEOSQPI * (p * ss + q * cc) / __sqrtl (xx);
   return z;
 }
diff -uNr libc/sysdeps/ieee754/ldbl-128/s_expm1l.c libc-patched/sysdeps/ieee754/ldbl-128/s_expm1l.c
--- libc/sysdeps/ieee754/ldbl-128/s_expm1l.c	2002-09-09 19:57:17.000000000 -0500
+++ libc-patched/sysdeps/ieee754/ldbl-128/s_expm1l.c	2008-02-19 13:15:01.000000000 -0600
@@ -153,7 +153,7 @@
   exp(x) - 1 = 2^k (qx + 1) - 1
              = 2^k qx + 2^k - 1.  */
 
-  px = ldexpl (1.0L, k);
+  px = __ldexpl (1.0L, k);
   x = px * qx + (px - 1.0);
   return x;
 }
diff -uNr libc/sysdeps/ieee754/ldbl-128/s_log1pl.c libc-patched/sysdeps/ieee754/ldbl-128/s_log1pl.c
--- libc/sysdeps/ieee754/ldbl-128/s_log1pl.c	2002-08-26 17:40:02.000000000 -0500
+++ libc-patched/sysdeps/ieee754/ldbl-128/s_log1pl.c	2008-02-19 13:15:01.000000000 -0600
@@ -122,8 +122,8 @@
 
 #if 1
 /* Make sure these are prototyped.  */
-long double frexpl (long double, int *);
-long double ldexpl (long double, int);
+long double __frexpl (long double, int *);
+long double __ldexpl (long double, int);
 #endif
 
 
@@ -160,7 +160,7 @@
   /* Separate mantissa from exponent.  */
 
   /* Use frexp used so that denormal numbers will be handled properly.  */
-  x = frexpl (x, &e);
+  x = __frexpl (x, &e);
 
   /* Logarithm using log(x) = z + z^3 P(z^2)/Q(z^2),
      where z = 2(x-1)/x+1).  */
diff -uNr libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c libc-patched/sysdeps/ieee754/ldbl-128ibm/e_expl.c
--- libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c	2006-01-27 18:07:25.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128ibm/e_expl.c	2008-02-19 13:15:01.000000000 -0600
@@ -148,15 +148,15 @@
       fesetround (FE_TONEAREST);
 #endif
 
-      n = roundl(x*M_1_LN2);
+      n = __roundl(x*M_1_LN2);
       x = x-n*M_LN2_0;
       xl = n*M_LN2_1;
 
-      tval1 = roundl(x*TWO8);
+      tval1 = __roundl(x*TWO8);
       x -= __expl_table[T_EXPL_ARG1+2*tval1];
       xl -= __expl_table[T_EXPL_ARG1+2*tval1+1];
 
-      tval2 = roundl(x*TWO15);
+      tval2 = __roundl(x*TWO15);
       x -= __expl_table[T_EXPL_ARG2+2*tval2];
       xl -= __expl_table[T_EXPL_ARG2+2*tval2+1];
 
diff -uNr libc/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c libc-patched/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
--- libc/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c	2006-01-27 18:07:25.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c	2008-02-19 13:15:01.000000000 -0600
@@ -152,7 +152,7 @@
   exp(x) - 1 = 2^k (qx + 1) - 1
              = 2^k qx + 2^k - 1.  */
 
-  px = ldexpl (1.0L, k);
+  px = __ldexpl (1.0L, k);
   x = px * qx + (px - 1.0);
   return x;
 }
diff -uNr libc/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c libc-patched/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
--- libc/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c	2006-01-27 18:07:25.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c	2008-02-19 13:15:01.000000000 -0600
@@ -123,8 +123,8 @@
 
 #if 1
 /* Make sure these are prototyped.  */
-long double frexpl (long double, int *);
-long double ldexpl (long double, int);
+long double __frexpl (long double, int *);
+long double __ldexpl (long double, int);
 #endif
 
 
@@ -161,7 +161,7 @@
   /* Separate mantissa from exponent.  */
 
   /* Use frexp used so that denormal numbers will be handled properly.  */
-  x = frexpl (x, &e);
+  x = __frexpl (x, &e);
 
   /* Logarithm using log(x) = z + z^3 P(z^2)/Q(z^2),
      where z = 2(x-1)/x+1).  */
diff -uNr libc/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c libc-patched/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
--- libc/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c	2006-01-27 18:07:25.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c	2008-02-19 13:15:01.000000000 -0600
@@ -85,7 +85,7 @@
 	      /* Else the high double is pre rounded and we need to
 	         adjust for that.  */
 	      
-	      tau = nextafter (u.dd[0], 0.0);
+	      tau = __nextafter (u.dd[0], 0.0);
 	      tau = (u.dd[0] - tau) * 2.0;
 	      high = u.dd[0] - tau;
 	      low = u.dd[1] + tau;
@@ -106,7 +106,7 @@
 	    {
 	      /* Else the high double is pre rounded and we need to
 	         adjust for that.  */
-	      tau = nextafter (u.dd[0], 0.0);
+	      tau = __nextafter (u.dd[0], 0.0);
 	      tau = (u.dd[0] - tau) * 2.0;
 	      high = u.dd[0] - tau;
 	      low = u.dd[1] + tau;
diff -uNr libc/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c libc-patched/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
--- libc/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c	2006-01-27 18:07:25.000000000 -0600
+++ libc-patched/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,6 +30,7 @@
   GET_LDOUBLE_MSW64 (e, x);
   return e < 0;
 }
+hidden_ver (___signbitl, __signbitl);
 #ifdef IS_IN_libm
 long_double_symbol (libm, ___signbitl, __signbitl);
 #else
diff -uNr libc/sysdeps/powerpc/fpu/fe_nomask.c libc-patched/sysdeps/powerpc/fpu/fe_nomask.c
--- libc/sysdeps/powerpc/fpu/fe_nomask.c	2007-05-07 01:21:08.000000000 -0500
+++ libc-patched/sysdeps/powerpc/fpu/fe_nomask.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,4 +30,5 @@
   __set_errno (ENOSYS);
   return FE_ENABLED_ENV;
 }
+libm_hidden_def(__fe_nomask_env)
 stub_warning (__fe_nomask_env)
diff -uNr libc/sysdeps/powerpc/fpu/fegetexcept.c libc-patched/sysdeps/powerpc/fpu/fegetexcept.c
--- libc/sysdeps/powerpc/fpu/fegetexcept.c	2001-07-05 23:56:02.000000000 -0500
+++ libc-patched/sysdeps/powerpc/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -41,3 +41,4 @@
 
   return result;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/powerpc/fpu/ftestexcept.c libc-patched/sysdeps/powerpc/fpu/ftestexcept.c
--- libc/sysdeps/powerpc/fpu/ftestexcept.c	2001-07-05 23:56:02.000000000 -0500
+++ libc-patched/sysdeps/powerpc/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -31,3 +31,4 @@
      just:  */
   return u.l[1] & excepts;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/s390/fpu/fegetexcept.c libc-patched/sysdeps/s390/fpu/fegetexcept.c
--- libc/sysdeps/s390/fpu/fegetexcept.c	2001-07-05 23:56:02.000000000 -0500
+++ libc-patched/sysdeps/s390/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -29,3 +29,4 @@
   _FPU_GETCW (exc);
   return ((exc & FPC_EXCEPTION_MASK) >>  FPC_EXCEPTION_MASK_SHIFT);
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/s390/fpu/ftestexcept.c libc-patched/sysdeps/s390/fpu/ftestexcept.c
--- libc/sysdeps/s390/fpu/ftestexcept.c	2001-07-05 23:56:02.000000000 -0500
+++ libc-patched/sysdeps/s390/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -31,3 +31,4 @@
   temp = (temp >> FPC_DXC_SHIFT) | (temp >> FPC_FLAGS_SHIFT);
   return temp & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/sh/sh4/fpu/ftestexcept.c libc-patched/sysdeps/sh/sh4/fpu/ftestexcept.c
--- libc/sysdeps/sh/sh4/fpu/ftestexcept.c	2001-07-05 23:56:04.000000000 -0500
+++ libc-patched/sysdeps/sh/sh4/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,3 +30,4 @@
 
   return temp & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/sparc/fpu/fegetexcept.c libc-patched/sysdeps/sparc/fpu/fegetexcept.c
--- libc/sysdeps/sparc/fpu/fegetexcept.c	2001-07-05 23:56:04.000000000 -0500
+++ libc-patched/sysdeps/sparc/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -28,3 +28,4 @@
 
   return (exc >> 18) & FE_ALL_EXCEPT;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/sparc/fpu/ftestexcept.c libc-patched/sysdeps/sparc/fpu/ftestexcept.c
--- libc/sysdeps/sparc/fpu/ftestexcept.c	2001-07-05 23:56:04.000000000 -0500
+++ libc-patched/sysdeps/sparc/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -28,3 +28,4 @@
 
   return tmp & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)
diff -uNr libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c libc-patched/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c	2007-05-07 01:19:27.000000000 -0500
+++ libc-patched/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c	2008-02-19 13:15:01.000000000 -0600
@@ -66,3 +66,4 @@
 
   return FE_ENABLED_ENV;
 }
+libm_hidden_def(__fe_nomask_env)
diff -uNr libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c libc-patched/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c	2007-05-07 01:19:33.000000000 -0500
+++ libc-patched/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c	2008-02-19 13:15:01.000000000 -0600
@@ -41,3 +41,4 @@
 #endif
   return FE_ENABLED_ENV;
 }
+libm_hidden_def(__fe_nomask_env)
diff -uNr libc/sysdeps/x86_64/fpu/fegetexcept.c libc-patched/sysdeps/x86_64/fpu/fegetexcept.c
--- libc/sysdeps/x86_64/fpu/fegetexcept.c	2001-09-19 05:23:17.000000000 -0500
+++ libc-patched/sysdeps/x86_64/fpu/fegetexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -30,3 +30,4 @@
 
   return (~exc) & FE_ALL_EXCEPT;
 }
+libm_hidden_def (fegetexcept)
diff -uNr libc/sysdeps/x86_64/fpu/ftestexcept.c libc-patched/sysdeps/x86_64/fpu/ftestexcept.c
--- libc/sysdeps/x86_64/fpu/ftestexcept.c	2001-09-19 05:23:17.000000000 -0500
+++ libc-patched/sysdeps/x86_64/fpu/ftestexcept.c	2008-02-19 13:15:01.000000000 -0600
@@ -31,3 +31,4 @@
 
   return (temp | mxscr) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def(fetestexcept)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]