summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2004-06-16 15:36:27 +0000
committerLuca Barbato <lu_zero@gentoo.org>2004-06-16 15:36:27 +0000
commitc49e0eff7e294eef150a808ab06e1db0ac6e494d (patch)
tree994d58832806715f796c67c274dd830674fb8641 /sys-libs
parentAdd jabber and ssl use flags with deps - bug 52277 (Manifest recommit) (diff)
downloadgentoo-2-c49e0eff7e294eef150a808ab06e1db0ac6e494d.tar.gz
gentoo-2-c49e0eff7e294eef150a808ab06e1db0ac6e494d.tar.bz2
gentoo-2-c49e0eff7e294eef150a808ab06e1db0ac6e494d.zip
Altivec nptl fix
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/ChangeLog6
-rw-r--r--sys-libs/glibc/files/2.3.4/glibc-2.3.4-nptl-altivec.patch229
-rw-r--r--sys-libs/glibc/glibc-2.3.4.20040605.ebuild8
3 files changed, 241 insertions, 2 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
index 552767095464..3cdf0ecea7bd 100644
--- a/sys-libs/glibc/ChangeLog
+++ b/sys-libs/glibc/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-libs/glibc
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.190 2004/06/14 02:02:58 lv Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.191 2004/06/16 15:36:27 lu_zero Exp $
+
+ 16 Jun 2004; Luca Barbato <lu_zero@gentoo.org>
+ +files/2.3.4/glibc-2.3.4-nptl-altivec.patch, glibc-2.3.4.20040605.ebuild:
+ Added a patch for ppc, pending some tests
13 Jun 2004; Travis Tilley <lv@gentoo.org>
+files/2.3.4/glibc-2.3.4-hardened-sysdep-shared.patch,
diff --git a/sys-libs/glibc/files/2.3.4/glibc-2.3.4-nptl-altivec.patch b/sys-libs/glibc/files/2.3.4/glibc-2.3.4-nptl-altivec.patch
new file mode 100644
index 000000000000..8ddc8afdd165
--- /dev/null
+++ b/sys-libs/glibc/files/2.3.4/glibc-2.3.4-nptl-altivec.patch
@@ -0,0 +1,229 @@
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S 2004-06-14 19:28:43.131988368 -0500
+@@ -187,8 +187,8 @@
+ addi r9,r9,32
+
+ stvx v18,0,r10
+- stvx v11,0,r9
+- addi r19,r10,32
++ stvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+@@ -221,11 +221,6 @@
+ addi r10,r10,32
+ addi r9,r9,32
+
+- stvx v10,0,r10
+- stvx v11,0,r9
+- addi r10,r10,32
+- addi r9,r9,32
+-
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S 2004-06-14 19:36:33.639954472 -0500
+@@ -133,8 +133,8 @@
+ addi r9,r9,32
+
+ lvx v18,0,r10
+- lvx v11,0,r9
+- addi r19,r10,32
++ lvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S 2004-06-14 19:39:49.580990280 -0500
+@@ -189,8 +189,8 @@
+ addi r9,r9,32
+
+ stvx v18,0,r10
+- stvx v11,0,r9
+- addi r19,r10,32
++ stvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+@@ -223,11 +223,6 @@
+ addi r10,r10,32
+ addi r9,r9,32
+
+- stvx v10,0,r10
+- stvx v11,0,r9
+- addi r10,r10,32
+- addi r9,r9,32
+-
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+@@ -339,8 +334,8 @@
+ addi r9,r9,32
+
+ lvx v18,0,r10
+- lvx v11,0,r9
+- addi r19,r10,32
++ lvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S 2004-06-14 19:27:34.406052600 -0500
+@@ -268,21 +268,22 @@
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ ld r5,.LC__dl_hwcap@toc(r2)
+- li r10,0
+ # ifdef SHARED
+ /* Load _rtld-global._dl_hwcap. */
+ ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
+ # else
+ ld r5,0(r5) /* Load extern _dl_hwcap. */
+-# endif
+- andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+- beq L(has_no_vec)
+-
++# endif
+ la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
+ la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
++
++ andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16)
++
+ clrrdi r10,r10,4
++ beq L(has_no_vec)
+ clrrdi r9,r9,4
+-
++ mr r5,r10 /* Capture *v_regs value in r5. */
++
+ stvx v0,0,r10
+ stvx v1,0,r9
+ addi r10,r10,32
+@@ -329,8 +330,8 @@
+ addi r9,r9,32
+
+ stvx v18,0,r10
+- stvx v11,0,r9
+- addi r19,r10,32
++ stvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+@@ -363,11 +364,6 @@
+ addi r10,r10,32
+ addi r9,r9,32
+
+- stvx v10,0,r10
+- stvx v11,0,r9
+- addi r10,r10,32
+- addi r9,r9,32
+-
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+@@ -378,7 +374,7 @@
+ Store either a NULL or a quadword aligned pointer to the Vector register
+ array into *v_regs.
+ */
+- std r10,(SIGCONTEXT_V_REGS_PTR)(r3)
++ std r5,(SIGCONTEXT_V_REGS_PTR)(r3)
+
+ addi r5,r3,UCONTEXT_SIGMASK
+ li r4,0
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2004-06-09 11:28:37.000000000 -0500
+@@ -293,8 +293,8 @@
+ addi r9,r9,32
+
+ lvx v18,0,r10
+- lvx v11,0,r9
+- addi r19,r10,32
++ lvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+diff -urN libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+--- libc23-cvstip-20040607/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2004-05-28 16:19:18.000000000 -0500
++++ libc23/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2004-06-14 19:28:05.164035488 -0500
+@@ -391,20 +391,22 @@
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ ld r8,.LC__dl_hwcap@toc(r2)
+- li r10,0
+ #ifdef SHARED
+ /* Load _rtld-global._dl_hwcap. */
+ ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8)
+ #else
+ ld r8,0(r8) /* Load extern _dl_hwcap. */
+ #endif
+- andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+- beq L(has_no_vec)
+-
+ la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
+ la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
++
++ andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
++
+ clrrdi r10,r10,4
++ beq L(has_no_vec)
++
+ clrrdi r9,r9,4
++ mr r8,r10 /* Capture *v_regs value in r5. */
+
+ stvx v0,0,r10
+ stvx v1,0,r9
+@@ -452,8 +454,8 @@
+ addi r9,r9,32
+
+ stvx v18,0,r10
+- stvx v11,0,r9
+- addi r19,r10,32
++ stvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+@@ -486,11 +488,6 @@
+ addi r10,r10,32
+ addi r9,r9,32
+
+- stvx v10,0,r10
+- stvx v11,0,r9
+- addi r10,r10,32
+- addi r9,r9,32
+-
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+@@ -501,7 +498,7 @@
+ Store either a NULL or a quadword aligned pointer to the Vector register
+ array into *v_regs.
+ */
+- std r10,(SIGCONTEXT_V_REGS_PTR)(r3)
++ std r8,(SIGCONTEXT_V_REGS_PTR)(r3)
+
+ mr r31,r4
+ addi r5,r3,UCONTEXT_SIGMASK
+@@ -596,8 +593,8 @@
+ addi r9,r9,32
+
+ lvx v18,0,r10
+- lvx v11,0,r9
+- addi r19,r10,32
++ lvx v19,0,r9
++ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+
diff --git a/sys-libs/glibc/glibc-2.3.4.20040605.ebuild b/sys-libs/glibc/glibc-2.3.4.20040605.ebuild
index c9203e4ba8cd..9044d1e22469 100644
--- a/sys-libs/glibc/glibc-2.3.4.20040605.ebuild
+++ b/sys-libs/glibc/glibc-2.3.4.20040605.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20040605.ebuild,v 1.10 2004/06/12 21:04:52 tgall Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20040605.ebuild,v 1.11 2004/06/16 15:36:27 lu_zero Exp $
IUSE="nls pic build nptl erandom hardened makecheck multilib"
@@ -312,6 +312,12 @@ src_unpack() {
use multilib || epatch ${FILESDIR}/2.3.3/mips-nolib3264.diff
fi
+ if [ "${ARCH}" = "ppc" -o "${ARCH}" = "ppc64" ]
+ then
+ cd ${S}
+ epatch ${FILESDIR}/2.3.4/glibc-2.3.4-nptl-altivec.patch
+ fi
+
if [ "${ARCH}" = "alpha" ]
then
cd ${S}