summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Brauel <bjb@gentoo.org>2002-10-06 09:04:58 +0000
committerBjoern Brauel <bjb@gentoo.org>2002-10-06 09:04:58 +0000
commit3be74d0c6c962dd66e8d2079201ce9e34b7ce32f (patch)
treea53e24987511e5eb3b9bdf093b1b8bf0ad38e7ad /net-www/mozilla
parentBump up to gnucash 1.6.8. Both 1.6.7 and this version failed to build for me (diff)
downloadgentoo-2-3be74d0c6c962dd66e8d2079201ce9e34b7ce32f.tar.gz
gentoo-2-3be74d0c6c962dd66e8d2079201ce9e34b7ce32f.tar.bz2
gentoo-2-3be74d0c6c962dd66e8d2079201ce9e34b7ce32f.zip
gcc3 abi patch for alpha
Diffstat (limited to 'net-www/mozilla')
-rw-r--r--net-www/mozilla/files/mozilla-alpha-xpcom-subs-fix.patch139
-rw-r--r--net-www/mozilla/mozilla-1.0.1-r1.ebuild9
2 files changed, 146 insertions, 2 deletions
diff --git a/net-www/mozilla/files/mozilla-alpha-xpcom-subs-fix.patch b/net-www/mozilla/files/mozilla-alpha-xpcom-subs-fix.patch
new file mode 100644
index 000000000000..c7f95467438a
--- /dev/null
+++ b/net-www/mozilla/files/mozilla-alpha-xpcom-subs-fix.patch
@@ -0,0 +1,139 @@
+--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2002-04-10 05:37:38.000000000 +0200
++++ mozilla-alpha/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 2002-10-06 10:44:59.000000000 +0200
+@@ -20,6 +20,7 @@
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
++ * Glen Nakamura <glen@imodulo.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -37,16 +38,14 @@
+
+ /* Platform specific code to invoke XPCOM methods on native objects */
+
+-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+-
+ #include "xptcprivate.h"
+
+ /* Prototype specifies unmangled function name and disables unused warning */
+-static void
++void
+ invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
+ __asm__("invoke_copy_to_stack") __attribute__((unused));
+
+-static void
++void
+ invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
+ {
+ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer
+@@ -163,7 +162,11 @@
+ "bis $16,$16,$1\n\t" /* load "this" */
+ "ldq $2,16($15)\n\t" /* load "methodIndex" */
+ "ldq $1,0($1)\n\t" /* load vtable */
++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
++ "s8addq $2,$31,$2\n\t" /* vtable index = "methodIndex" * 8 */
++#else /* not G++ V3 ABI */
+ "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
++#endif /* G++ V3 ABI */
+ "addq $1,$2,$1\n\t"
+ "ldq $27,0($1)\n\t" /* load address of function */
+ "jsr $26,($27),0\n\t" /* call virtual function */
+@@ -176,4 +179,3 @@
+ "ret $31,($26),1\n\t"
+ ".end XPTC_InvokeByIndex"
+ );
+-
+--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2002-04-10 05:37:42.000000000 +0200
++++ mozilla-alpha/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 2002-10-06 10:45:10.000000000 +0200
+@@ -20,6 +20,7 @@
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
++ * Glen Nakamura <glen@imodulo.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -37,16 +38,14 @@
+
+ /* Implement shared vtbl methods. */
+
+-/* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+-
+ #include "xptcprivate.h"
+
+ /* Prototype specifies unmangled function name and disables unused warning */
+-static nsresult
++nsresult
+ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
+ __asm__("PrepareAndDispatch") __attribute__((unused));
+
+-static nsresult
++nsresult
+ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
+ {
+ const PRUint8 PARAM_BUFFER_COUNT = 16;
+@@ -188,23 +187,45 @@
+ * nsresult nsXPTCStubBase::Stub##n()
+ * Sets register $1 to "methodIndex" and jumps to SharedStub.
+ */
++#define STUB_MANGLED_ENTRY(n, symbol) \
++ "#### Stub"#n" ####" "\n\t" \
++ ".text" "\n\t" \
++ ".align 5" "\n\t" \
++ ".globl " symbol "\n\t" \
++ ".ent " symbol "\n" \
++symbol ":" "\n\t" \
++ ".frame $30,0,$26,0" "\n\t" \
++ "ldgp $29,0($27)" "\n" \
++"$" symbol "..ng:" "\n\t" \
++ ".prologue 1" "\n\t" \
++ "lda $1,"#n "\n\t" \
++ "br $31,$SharedStub..ng" "\n\t" \
++ ".end " symbol
++
++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
++
++#define STUB_ENTRY(n) \
++__asm__( \
++ ".if "#n" < 10" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase5Stub"#n"Ev") "\n\t" \
++ ".elseif "#n" < 100" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase6Stub"#n"Ev") "\n\t" \
++ ".elseif "#n" < 1000" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase7Stub"#n"Ev") "\n\t" \
++ ".else" "\n\t" \
++ ".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \
++ ".endif" \
++ );
++
++#else /* not G++ V3 ABI */
++
+ #define STUB_ENTRY(n) \
+ __asm__( \
+- "#### Stub"#n" ####\n" \
+-".text\n\t" \
+- ".align 5\n\t" \
+- ".globl Stub"#n"__14nsXPTCStubBase\n\t" \
+- ".ent Stub"#n"__14nsXPTCStubBase\n" \
+-"Stub"#n"__14nsXPTCStubBase:\n\t" \
+- ".frame $30,0,$26,0\n\t" \
+- "ldgp $29,0($27)\n" \
+-"$Stub"#n"__14nsXPTCStubBase..ng:\n\t" \
+- ".prologue 1\n\t" \
+- "lda $1,"#n"\n\t" \
+- "br $31,$SharedStub..ng\n\t" \
+- ".end Stub"#n"__14nsXPTCStubBase" \
++ STUB_MANGLED_ENTRY(n, "Stub"#n"__14nsXPTCStubBase") \
+ );
+
++#endif /* G++ V3 ABI */
++
+ #define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \
+ { \
+@@ -213,4 +234,3 @@
+ }
+
+ #include "xptcstubsdef.inc"
+-
diff --git a/net-www/mozilla/mozilla-1.0.1-r1.ebuild b/net-www/mozilla/mozilla-1.0.1-r1.ebuild
index e0fdba131631..1ba5099705b7 100644
--- a/net-www/mozilla/mozilla-1.0.1-r1.ebuild
+++ b/net-www/mozilla/mozilla-1.0.1-r1.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/net-www/mozilla/mozilla-1.0.1-r1.ebuild,v 1.3 2002/10/05 05:39:24 drobbins Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-www/mozilla/mozilla-1.0.1-r1.ebuild,v 1.4 2002/10/06 09:04:58 bjb Exp $
IUSE="mozxmlterm moznomail java mozp3p crypt ipv6 gtk2 mozinterfaceinfo ssl ldap mozaccess mozctl gnome"
@@ -23,7 +23,7 @@ SRC_URI="ftp://ftp.mozilla.org/pub/mozilla/releases/${PN}${MY_PV2}/src/${PN}-sou
http://enigmail.mozdev.org/dload/src/ipc-${IPCVER}.tar.gz )"
HOMEPAGE="http://www.mozilla.org"
-KEYWORDS="x86 ppc sparc sparc64"
+KEYWORDS="x86 ppc sparc sparc64 alpha"
SLOT="0"
LICENSE="MPL-1.1 | NPL-1.1"
@@ -81,6 +81,11 @@ src_unpack() {
if [ "${ARCH}" = "ppc" ] ; then
patch -p0 < ${FILESDIR}/mozilla-1.0-abi-xpcom-ppc.patch || die
fi
+
+ # ABI Patch for alpha/xpcom for gcc-3.x
+ if [ "${ARCH}" = "alpha" ] ; then
+ patch -p1 < ${FILESDIR}/mozilla-alpha-xpcom-subs-fix.patch || die
+ fi
fi
# Apply the bytecode patch for freetype2