summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Volynets <iluxa@gentoo.org>2004-06-05 01:47:46 +0000
committerIlya Volynets <iluxa@gentoo.org>2004-06-05 01:47:46 +0000
commit5d0403b9db95bfe58e9196c31997eedc97869881 (patch)
treed9a79e5595771bafb70e2e4430ebb83419de5b5b /sys-libs
parentAdded ~sparc keywords to help resolve bug #53019. (Manifest recommit) (diff)
downloadgentoo-2-5d0403b9db95bfe58e9196c31997eedc97869881.tar.gz
gentoo-2-5d0403b9db95bfe58e9196c31997eedc97869881.tar.bz2
gentoo-2-5d0403b9db95bfe58e9196c31997eedc97869881.zip
Finalize n32 fixes. Add ALT_HEADERS variable
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/ChangeLog10
-rw-r--r--sys-libs/glibc/files/2.3.4/mips-sysdep-cancel.diff54
-rw-r--r--sys-libs/glibc/glibc-2.3.4.20040602.ebuild15
3 files changed, 74 insertions, 5 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
index ef0fe8331e5c..27ff70054027 100644
--- a/sys-libs/glibc/ChangeLog
+++ b/sys-libs/glibc/ChangeLog
@@ -1,6 +1,14 @@
# 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.171 2004/06/04 18:15:25 iluxa Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.172 2004/06/05 01:47:46 iluxa Exp $
+
+ 04 Jun 2004; Ilya A. Volynets-Evenbach <iluxa@gentoo.org>
+ +files/2.3.4/mips-sysdep-cancel.diff, glibc-2.3.4.20040602.ebuild:
+ Finalize n32 fixes (n64 is yet to be tested, but should be
+ piece of cake now)
+ Add ALT_HEADERS variable, which will allows us to point glibc
+ to something other then /usr/lib. This will be needed for
+ x-compilation support.
04 Jun 2004; Travis Tilley <lv@gentoo.org> glibc-2.3.3_pre20040529.ebuild:
stable on amd64
diff --git a/sys-libs/glibc/files/2.3.4/mips-sysdep-cancel.diff b/sys-libs/glibc/files/2.3.4/mips-sysdep-cancel.diff
new file mode 100644
index 000000000000..0e70b8ddf1ad
--- /dev/null
+++ b/sys-libs/glibc/files/2.3.4/mips-sysdep-cancel.diff
@@ -0,0 +1,54 @@
+Index: linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h,v
+retrieving revision 1.2
+diff -u -r1.2 sysdep-cancel.h
+--- linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 28 Jul 2003 18:45:37 -0000 1.2
++++ linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 1 Jun 2004 17:19:08 -0000
+@@ -27,9 +27,6 @@
+ #ifdef __PIC__
+ # undef PSEUDO
+ # define PSEUDO(name, syscall_name, args) \
+- .align 2; \
+- 99: la t9,__syscall_error; \
+- jr t9; \
+ ENTRY (name) \
+ .set noreorder; \
+ .cpload t9; \
+@@ -44,25 +41,25 @@
+ ret; \
+ L(pseudo_cancel): \
+ SAVESTK_##args; \
+- sw ra, 28(sp); \
+- sw gp, 32(sp); \
++ sw gp, 28(sp); \
++ sw ra, 32(sp); \
+ PUSHARGS_##args; /* save syscall args */ \
+ CENABLE; \
+- lw gp, 32(sp); \
+- sw v0, 44(sp); /* save mask */ \
++ lw gp, 28(sp); \
++ sw v0, 36(sp); /* save mask */ \
+ POPARGS_##args; /* restore syscall args */ \
+ .set noreorder; \
+ li v0, SYS_ify (syscall_name); \
+ syscall; \
+ .set reorder; \
+- sw v0, 36(sp); /* save syscall result */ \
+- sw a3, 40(sp); /* save syscall error flag */ \
+- lw a0, 44(sp); /* pass mask as arg1 */ \
++ sw v0, 40(sp); /* save syscall result */ \
++ sw a3, 44(sp); /* save syscall error flag */ \
++ lw a0, 36(sp); /* pass mask as arg1 */ \
+ CDISABLE; \
+- lw gp, 32(sp); \
+- lw v0, 36(sp); /* restore syscall result */ \
+- lw a3, 40(sp); /* restore syscall error flag */ \
+- lw ra, 28(sp); /* restore return address */ \
++ lw gp, 28(sp); \
++ lw v0, 40(sp); /* restore syscall result */ \
++ lw a3, 44(sp); /* restore syscall error flag */ \
++ lw ra, 32(sp); /* restore return address */ \
+ RESTORESTK; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ L(pseudo_end):
diff --git a/sys-libs/glibc/glibc-2.3.4.20040602.ebuild b/sys-libs/glibc/glibc-2.3.4.20040602.ebuild
index cfc9cc1f0e80..c68dbccecd0e 100644
--- a/sys-libs/glibc/glibc-2.3.4.20040602.ebuild
+++ b/sys-libs/glibc/glibc-2.3.4.20040602.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.20040602.ebuild,v 1.11 2004/06/04 18:20:40 iluxa Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20040602.ebuild,v 1.12 2004/06/05 01:47:46 iluxa Exp $
IUSE="nls pic build nptl erandom hardened makecheck multilib"
@@ -66,6 +66,12 @@ PROVIDE="virtual/glibc"
# theoretical x-compiler support
[ -z "${CCHOST}" ] && CCHOST="${CHOST}"
+# We need to be able to set alternative headers for
+# compiling for non-native platform
+# Will also come useful for testing kernel-headers without screwing up
+# whole system
+[ -z "${ALT_HEADERS}" ] && ALT_HEADERS="/usr/include"
+
setup_flags() {
# -freorder-blocks for all but ia64 s390 s390x
use ppc || append-flags "-freorder-blocks"
@@ -256,7 +262,7 @@ src_unpack() {
# This is due to PaX 'exec-protecting' the stack, and ld.so then trying
# to make the stack executable due to some libraries not containing the
# PT_GNU_STACK section. Bug #32960. <azarah@gentoo.org> (12 Nov 2003).
- cd ${S}; epatch ${FILESDIR}/2.3.3/${PN}-2.3.3-dl_execstack-PaX-support.patch
+ use mips || ( cd ${S}; epatch ${FILESDIR}/2.3.3/${PN}-2.3.3-dl_execstack-PaX-support.patch )
# Program header support for PaX.
cd ${S}; epatch ${FILESDIR}/2.3.3/${PN}-2.3.3_pre20040117-pt_pax.diff
@@ -289,6 +295,7 @@ src_unpack() {
epatch ${FILESDIR}/2.3.3/mips-syscall.h.diff
epatch ${FILESDIR}/2.3.3/semtimedop.diff
epatch ${FILESDIR}/2.3.3/mips-sysify.diff
+ epatch ${FILESDIR}/2.3.4/mips-sysdep-cancel.diff
# Need to install into /lib for n32-only userland for now.
# Propper solution is to make all userland /lib{32|64}-aware.
use multilib || epatch ${FILESDIR}/2.3.3/mips-nolib3264.diff
@@ -379,14 +386,14 @@ src_compile() {
--disable-profile \
--without-gd \
--without-cvs \
- --with-headers=/usr/include \
+ --with-headers=${ALT_HEADERS} \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--libexecdir=/usr/lib/misc \
${myconf} || die
- make || die
+ make PARALLELMFLAGS="${MAKEOPTS}" || die
}
src_install() {