summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Nall <nall@gentoo.org>2002-10-30 02:44:58 +0000
committerJon Nall <nall@gentoo.org>2002-10-30 02:44:58 +0000
commit14bdb1ec06f158de5121559a8412a5b27a56d45f (patch)
tree1e45f81aca3e2d0456f5b476239c0d06c1f8d5cd /sys-libs
parentInitial commit of Aladdin Stuffit into gentoo CVS (diff)
downloadhistorical-14bdb1ec06f158de5121559a8412a5b27a56d45f.tar.gz
historical-14bdb1ec06f158de5121559a8412a5b27a56d45f.tar.bz2
historical-14bdb1ec06f158de5121559a8412a5b27a56d45f.zip
Added patches for sqrtl and semctl on PPC. The former closes bug #9796
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/ChangeLog7
-rw-r--r--sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-semctl.diff56
-rw-r--r--sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-sqrtl.diff19
-rw-r--r--sys-libs/glibc/glibc-2.2.5-r7.ebuild15
4 files changed, 95 insertions, 2 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
index 31fcf3e13379..f7967c28de98 100644
--- a/sys-libs/glibc/ChangeLog
+++ b/sys-libs/glibc/ChangeLog
@@ -1,6 +1,6 @@
# ChangeLog for sys-libs/glibc
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.22 2002/10/29 09:17:34 seemant Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.23 2002/10/30 02:44:58 nall Exp $
*glibc-2.3.1-r1 (26 Oct 2002)
@@ -15,6 +15,11 @@
*glibc-2.2.5-r7 (13 Oct 2002)
+ 29 Oct 2002; Jon Nall <nall@gentoo.org> glibc-2.2.5-r7.ebuild :
+
+ Added sqrtl patch for ppc. This closes bug #9796. Also added semctl
+ patch for ppc.
+
29 Oct 2002; Seemant Kulleen <seemant@gentoo.org> glibc-2.2.5-r7.ebuild :
Added semctl patch for sparc. Thanks to nall <nall@gentoo.org> for
diff --git a/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-semctl.diff b/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-semctl.diff
new file mode 100644
index 000000000000..3e42db95b972
--- /dev/null
+++ b/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-semctl.diff
@@ -0,0 +1,56 @@
+--- sysdeps/unix/sysv/linux/semctl.c 6 Jul 2001 04:56:13 -0000 1.12
++++ sysdeps/unix/sysv/linux/semctl.c 28 Apr 2002 21:03:16 -0000
+@@ -69,8 +69,23 @@ __old_semctl (int semid, int semnum, int
+
+ va_start (ap, cmd);
+
+- /* Get the argument. */
+- arg = va_arg (ap, union semun);
++ /* Get the argument only if required. */
++ arg.buf = NULL;
++ switch (cmd)
++ {
++ case SETVAL: /* arg.val */
++ case GETALL: /* arg.array */
++ case SETALL:
++ case IPC_STAT: /* arg.buf */
++ case IPC_SET:
++ case SEM_STAT:
++ case IPC_INFO: /* arg.__buf */
++ case SEM_INFO:
++ va_start (ap, cmd);
++ arg = va_arg (ap, union semun);
++ va_end (ap);
++ break;
++ }
+
+ va_end (ap);
+
+@@ -88,8 +103,23 @@ __new_semctl (int semid, int semnum, int
+
+ va_start (ap, cmd);
+
+- /* Get the argument. */
+- arg = va_arg (ap, union semun);
++ /* Get the argument only if required. */
++ arg.buf = NULL;
++ switch (cmd)
++ {
++ case SETVAL: /* arg.val */
++ case GETALL: /* arg.array */
++ case SETALL:
++ case IPC_STAT: /* arg.buf */
++ case IPC_SET:
++ case SEM_STAT:
++ case IPC_INFO: /* arg.__buf */
++ case SEM_INFO:
++ va_start (ap, cmd);
++ arg = va_arg (ap, union semun);
++ va_end (ap);
++ break;
++ }
+
+ va_end (ap);
+
+
+
diff --git a/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-sqrtl.diff b/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-sqrtl.diff
new file mode 100644
index 000000000000..ed8c3b40550a
--- /dev/null
+++ b/sys-libs/glibc/files/2.2.5/glibc-2.2.5-ppc-sqrtl.diff
@@ -0,0 +1,19 @@
+--- sysdeps/powerpc/fpu/w_sqrt.c 6 Jul 2001 04:56:02 -0000 1.2
++++ sysdeps/powerpc/fpu/w_sqrt.c 10 May 2002 08:40:46 -0000
+@@ -1,5 +1,5 @@
+ /* Single-precision floating point square root.
+- Copyright (C) 1997 Free Software Foundation, Inc.
++ Copyright (C) 1997, 2002 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -139,3 +139,8 @@ weak_alias (__sqrt, sqrt)
+ /* Strictly, this is wrong, but the only places where _ieee754_sqrt is
+ used will not pass in a negative result. */
+ strong_alias(__sqrt,__ieee754_sqrt)
++
++#ifdef NO_LONG_DOUBLE
++weak_alias (__sqrt, __sqrtl)
++weak_alias (__sqrt, sqrtl)
++#endif
+
diff --git a/sys-libs/glibc/glibc-2.2.5-r7.ebuild b/sys-libs/glibc/glibc-2.2.5-r7.ebuild
index c8b3d4987d58..39fcc529a8c6 100644
--- a/sys-libs/glibc/glibc-2.2.5-r7.ebuild
+++ b/sys-libs/glibc/glibc-2.2.5-r7.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.2.5-r7.ebuild,v 1.19 2002/10/29 09:17:34 seemant Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.2.5-r7.ebuild,v 1.20 2002/10/30 02:44:58 nall Exp $
IUSE="nls pic build"
@@ -99,6 +99,19 @@ src_unpack() {
einfo "Applying divdi3 patch..."
cd ${S}; patch -p1 < ${FILESDIR}/${PV}/${P}-divdi3.diff > /dev/null || die
fi
+
+ if [ "${ARCH}" = "ppc" ]; then
+ # This patch fixes the absence of sqrtl on PPC
+ # http://sources.redhat.com/ml/libc-hacker/2002-05/msg00012.html
+ einfo "Applying ppc-sqrtl patch..."
+ cd ${S}; patch -p0 < ${FILESDIR}/${PV}/${P}-ppc-sqrtl.diff > /dev/null || die
+
+ # This patch fixes a SIGSEGV in semctl's va_arg processing
+ # http://sources.redhat.com/ml/libc-alpha/2002-05/msg00065.html
+ einfo "Applying ppc-semctl patch..."
+ cd ${S}; patch -p0 < ${FILESDIR}/${PV}/${P}-ppc-semctl.diff > /dev/null || die
+ fi
+
# Some gcc-3.1.1 fixes. This works fine for other versions of gcc as well,
# and should generally be ok, as it just fixes define order that causes scope