This commit is contained in:
Jakub Jelinek 2008-05-05 12:02:18 +00:00
parent 89117e90e2
commit 3c36f8f7e6
2 changed files with 111 additions and 3 deletions

View File

@ -2815,3 +2815,105 @@
cfi_startproc; cfi_startproc;
PSEUDO_END (BP_SYM (__clone)) PSEUDO_END (BP_SYM (__clone))
--- libc/math/s_clog10l.c.jj 2005-12-14 11:20:38.000000000 +0100
+++ libc/math/s_clog10l.c 2008-05-05 10:11:11.000000000 +0200
@@ -34,7 +34,15 @@ __clog10l (__complex__ long double x)
if (rcls == FP_ZERO && icls == FP_ZERO)
{
/* Real and imaginary part are 0.0. */
+#ifdef __powerpc64__
+ long double t = 0.0;
+ asm ("" : "+f" (t));
+ if (signbit (__real__ x))
+ t = M_PIl;
+ __imag__ result = t;
+#else
__imag__ result = signbit (__real__ x) ? M_PIl : 0.0;
+#endif
__imag__ result = __copysignl (__imag__ result, __imag__ x);
/* Yes, the following line raises an exception. */
__real__ result = -1.0 / fabsl (__real__ x);
--- libc/math/s_catanhl.c.jj 2005-12-14 11:16:38.000000000 +0100
+++ libc/math/s_catanhl.c 2008-05-05 10:22:57.000000000 +0200
@@ -35,14 +35,29 @@ __catanhl (__complex__ long double x)
{
if (icls == FP_INFINITE)
{
+#ifdef __powerpc64__
+ long double t = M_PI_2l;
+ asm ("" : "+f" (t));
+ __real__ res = __copysignl (0.0, __real__ x);
+ __imag__ res = __copysignl (t, __imag__ x);
+#else
__real__ res = __copysignl (0.0, __real__ x);
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
+#endif
}
else if (rcls == FP_INFINITE || rcls == FP_ZERO)
{
__real__ res = __copysignl (0.0, __real__ x);
if (icls >= FP_ZERO)
+#ifdef __powerpc64__
+ {
+ long double t = M_PI_2l;
+ asm ("" : "+f" (t));
+ __imag__ res = __copysignl (t, __imag__ x);
+ }
+#else
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
+#endif
else
__imag__ res = __nanl ("");
}
--- libc/math/s_cacoshl.c.jj 2006-08-03 22:35:41.000000000 +0200
+++ libc/math/s_cacoshl.c 2008-05-05 10:08:57.000000000 +0200
@@ -48,8 +48,18 @@ __cacoshl (__complex__ long double x)
__real__ res = HUGE_VALL;
if (icls >= FP_ZERO)
+#ifdef __powerpc64__
+ {
+ long double t = 0.0;
+ asm ("" : "+f" (t));
+ if (signbit (__real__ x))
+ t = M_PIl;
+ __imag__ res = __copysignl (t, __imag__ x);
+ }
+#else
__imag__ res = __copysignl (signbit (__real__ x) ? M_PIl : 0.0,
__imag__ x);
+#endif
else
__imag__ res = __nanl ("");
}
--- libc/math/s_clogl.c.jj 2005-12-14 11:21:13.000000000 +0100
+++ libc/math/s_clogl.c 2008-05-05 09:56:42.000000000 +0200
@@ -34,7 +34,15 @@ __clogl (__complex__ long double x)
if (rcls == FP_ZERO && icls == FP_ZERO)
{
/* Real and imaginary part are 0.0. */
+#ifdef __powerpc64__
+ long double t = 0.0;
+ asm ("" : "+f" (t));
+ if (signbit (__real__ x))
+ t = M_PIl;
+ __imag__ result = t;
+#else
__imag__ result = signbit (__real__ x) ? M_PIl : 0.0;
+#endif
__imag__ result = __copysignl (__imag__ result, __imag__ x);
/* Yes, the following line raises an exception. */
__real__ result = -1.0 / fabsl (__real__ x);
--- libc/fedora/glibc_post_upgrade.c.jj 2008-04-10 21:21:05.000000000 +0200
+++ libc/fedora/glibc_post_upgrade.c 2008-05-05 10:39:24.000000000 +0200
@@ -170,8 +170,8 @@ main (void)
/* Check if telinit is available and either SysVInit fifo,
or upstart telinit. */
if (access ("/sbin/telinit", X_OK)
- || (access ("/dev/initctl", F_OK)
- && access ("/sbin/initctl", X_OK)))
+ || ((!!access ("/dev/initctl", F_OK))
+ ^ !access ("/sbin/initctl", X_OK)))
_exit (0);
/* Check if we are not inside of some chroot, because we'd just
timeout and leave /etc/initrunlvl. */

View File

@ -23,7 +23,7 @@
Summary: The GNU libc libraries Summary: The GNU libc libraries
Name: glibc Name: glibc
Version: 2.8 Version: 2.8
Release: 2 Release: 3
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs # Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@ -692,7 +692,7 @@ cd ..
%if %{buildxen} %if %{buildxen}
echo ====================TESTING -mno-tls-direct-seg-refs============= echo ====================TESTING -mno-tls-direct-seg-refs=============
cd build-%{nptl_target_cpu}-linuxnptl-nosegneg cd build-%{nptl_target_cpu}-linuxnptl-nosegneg
( make -j$numprocs -k check PARALLELMFLAGS=-s 2>&1 ( make %{?_smp_mflags} -k check PARALLELMFLAGS=-s 2>&1
sleep 10s sleep 10s
teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`" teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
[ -n "$teepid" ] && kill $teepid [ -n "$teepid" ] && kill $teepid
@ -705,7 +705,7 @@ cd build-%{nptl_target_cpu}-linuxnptl-power6
( if [ -d ../power6emul ]; then ( if [ -d ../power6emul ]; then
export LD_PRELOAD=`cd ../power6emul; pwd`/\$LIB/power6emul.so export LD_PRELOAD=`cd ../power6emul; pwd`/\$LIB/power6emul.so
fi fi
make -j$numprocs -k check PARALLELMFLAGS=-s 2>&1 make %{?_smp_mflags} -k check PARALLELMFLAGS=-s 2>&1
sleep 10s sleep 10s
teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`" teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
[ -n "$teepid" ] && kill $teepid [ -n "$teepid" ] && kill $teepid
@ -980,6 +980,12 @@ rm -f *.filelist*
%endif %endif
%changelog %changelog
* Mon May 5 2008 Jakub Jelinek <jakub@redhat.com> 2.8-3
- don't run telinit u in %post if both /dev/initctl and
/sbin/initctl exist (#444978)
- workaround GCC ppc64 miscompilation of c{log{,10},acosh,atan}l
(#444996)
* Wed Apr 30 2008 Jakub Jelinek <jakub@redhat.com> 2.8-2 * Wed Apr 30 2008 Jakub Jelinek <jakub@redhat.com> 2.8-2
- fix nscd races during GC (BZ#5381) - fix nscd races during GC (BZ#5381)
- rebuilt with fixed GCC to fix regex miscompilation on power6 - rebuilt with fixed GCC to fix regex miscompilation on power6