Bug 6824

Summary: Usage of __LONGDOUBLE128 instead of __LONG_DOUBLE_128__ causes PowerPC checklocal-plt make check failure
Product: glibc Reporter: Ryan S. Arnold <rsa>
Component: libcAssignee: Ulrich Drepper <drepper.fsp>
Status: RESOLVED FIXED    
Severity: normal CC: glibc-bugs
Priority: P2 Flags: fweimer: security-
Version: 2.8   
Target Milestone: ---   
Host: powerpc64-linux Target: powerpc64-linux
Build: powerpc64-linux Last reconfirmed:

Description Ryan S. Arnold 2008-08-07 21:58:39 UTC
Erroneous usage of __LONGDOUBLE128 (which was introduced to GCC for AIX support)
was causing mathinline.h to lack an implementation of __signbitl for powerpc32.
 This caused checklocal-plt make check failure for PowerPC.

The correct define to use is __LONG_DOUBLE_128__.

diff -X /home/ryanarn/bin/dontdiff -uNr
glibc/sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h
glibc.new/sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h
--- glibc/sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h     2008-08-07
10:54:03.000000000 -0500
+++ glibc.new/sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h 2008-08-07
16:17:36.000000000 -0500
@@ -72,7 +72,7 @@
   __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
   return __u.__i[0] < 0;
 }
-#  ifdef __LONGDOUBLE128
+#  ifdef __LONG_DOUBLE_128__
 __MATH_INLINE int
 __NTH (__signbitl (long double __x))
 {

I'll post this to mainline with a ChangeLog after full testing with GCC 4.1 &
GCC 4.3 compilers and on different PowerPC arches.
Comment 1 Ulrich Drepper 2008-08-07 23:06:10 UTC
Applied to cvs.