summaryrefslogtreecommitdiff
path: root/www/mozilla
diff options
context:
space:
mode:
authoraymeric <aymeric@pkgsrc.org>2004-07-07 09:08:31 +0000
committeraymeric <aymeric@pkgsrc.org>2004-07-07 09:08:31 +0000
commitb726a6a9dcf460a3cc244704efe9334f15f9ba25 (patch)
treee3006c0ef86fb45c56dab7e9b3299c1d3f4b377a /www/mozilla
parent573c01347b983d55d44a2cc51468fbe85c480008 (diff)
downloadpkgsrc-b726a6a9dcf460a3cc244704efe9334f15f9ba25.tar.gz
. on PowerPC, update files so that Mozilla works properly when compiled with
gcc version 3+. . generally reduce diffs to Linux version . retain compatibility with older ABI (AIX-like) thanks to useful comments from Charles Hannum Thanks to Matthew Green for the fruitful discussion. This should address PR#23240 as far as mozilla is concerned.
Diffstat (limited to 'www/mozilla')
-rw-r--r--www/mozilla/distinfo9
-rw-r--r--www/mozilla/patches/patch-ac23
-rw-r--r--www/mozilla/patches/patch-bx53
-rw-r--r--www/mozilla/patches/patch-bz122
-rw-r--r--www/mozilla/patches/patch-ca166
-rw-r--r--www/mozilla/patches/patch-cb26
6 files changed, 373 insertions, 26 deletions
diff --git a/www/mozilla/distinfo b/www/mozilla/distinfo
index d9510f21a5a..5abd78d2b44 100644
--- a/www/mozilla/distinfo
+++ b/www/mozilla/distinfo
@@ -1,10 +1,10 @@
-$NetBSD: distinfo,v 1.59 2004/07/05 14:22:42 taya Exp $
+$NetBSD: distinfo,v 1.60 2004/07/07 09:08:31 aymeric Exp $
SHA1 (mozilla-source-1.7.tar.bz2) = 52b8ab9248a8f4ed5763d7715f4fa18bda8123cf
Size (mozilla-source-1.7.tar.bz2) = 35174502 bytes
SHA1 (patch-aa) = be62070f062e8ae13f06bd7b3f4f0d4a9ee67bef
SHA1 (patch-ab) = 334a1e79d63d045dafb50b82ea192b311b55e7d5
-SHA1 (patch-ac) = 2b948f47ebb2c99140c29c53bd51a23200f2592c
+SHA1 (patch-ac) = 32aa4b92eea19aca07077a292cb759d074026642
SHA1 (patch-ad) = 2210b695a2eedefb82c16698a51f4f0f6b2e53e4
SHA1 (patch-ae) = f3c8ffcdfc8c0d5cc75413602c97c731721d751e
SHA1 (patch-af) = 547ebc0d72a012f636839f416f872125c15846ba
@@ -30,5 +30,8 @@ SHA1 (patch-bt) = 02c84d908156e42b2d60f0c680eab1a89eb5b330
SHA1 (patch-bu) = db33b8651e3cb1fbf9a18dbe78e1e8288cfda0ee
SHA1 (patch-bv) = 4f23dfd885131ea866f31370f1421e7c19706860
SHA1 (patch-bw) = fc3a518d3762be6e85104a6dc7fffd5ae1a463c8
-SHA1 (patch-bx) = 7b07b7e3f5199c44e82a6be21ecc0d4f8942b05a
+SHA1 (patch-bx) = 046e19c9c4b431369411658373b14c1822841d85
SHA1 (patch-by) = 643185af7a0df7030b2b96447ee4031dc9c82f88
+SHA1 (patch-bz) = 6f854d74a9d1d1174ce8eff7d65f8024a7da4711
+SHA1 (patch-ca) = 479ef14631ae019ae5ca1c08a2f786294f3e972b
+SHA1 (patch-cb) = fd0f033d63be066ce5c47057d72c48a085718908
diff --git a/www/mozilla/patches/patch-ac b/www/mozilla/patches/patch-ac
index 8448ff9680e..e9ff6fee1a1 100644
--- a/www/mozilla/patches/patch-ac
+++ b/www/mozilla/patches/patch-ac
@@ -1,9 +1,8 @@
-$NetBSD: patch-ac,v 1.23 2004/06/21 14:14:00 taya Exp $
+$NetBSD: patch-ac,v 1.24 2004/07/07 09:08:31 aymeric Exp $
-diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in ./xpcom/reflect/xptcall/src/md/unix/Makefile.in
---- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-04-23 05:50:05.000000000 +0900
-+++ ./xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-06-10 22:55:50.000000000 +0900
-@@ -49,6 +49,9 @@
+--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2004-04-22 22:50:05.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in
+@@ -49,6 +49,9 @@ ifneq (,$(filter FreeBSD NetBSD OpenBSD
ifeq (86,$(findstring 86,$(OS_TEST)))
CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
endif
@@ -13,7 +12,7 @@ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in ./xpcom/r
endif
#
# New code for Linux, et. al., with gcc
-@@ -140,7 +143,7 @@
+@@ -140,7 +143,7 @@ endif
# NetBSD/ARM
#
ifeq ($(OS_ARCH),NetBSD)
@@ -22,7 +21,7 @@ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in ./xpcom/r
CPPSRCS := xptcinvoke_arm_netbsd.cpp xptcstubs_arm_netbsd.cpp
endif
endif
-@@ -174,7 +177,7 @@
+@@ -174,7 +177,7 @@ endif
# NetBSD/m68k
#
ifeq ($(OS_ARCH),NetBSD)
@@ -31,7 +30,15 @@ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in ./xpcom/r
CPPSRCS := xptcinvoke_netbsd_m68k.cpp xptcstubs_netbsd_m68k.cpp
endif
endif
-@@ -305,6 +308,13 @@
+@@ -257,6 +260,7 @@ endif
+ ifneq (,$(filter NetBSDmacppc NetBSDbebox NetBSDofppc NetBSDprep NetBSDamigappc,$(OS_ARCH)$(OS_TEST)))
+ CPPSRCS := xptcinvoke_ppc_netbsd.cpp xptcstubs_ppc_netbsd.cpp
+ ASFILES := xptcinvoke_asm_ppc_netbsd.s xptcstubs_asm_ppc_netbsd.s
++AS := $(CC) -c -x assembler-with-cpp
+ endif
+
+ #
+@@ -305,6 +309,13 @@ ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc)
CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp
ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
endif
diff --git a/www/mozilla/patches/patch-bx b/www/mozilla/patches/patch-bx
index 66f8eb4b17d..8af711af943 100644
--- a/www/mozilla/patches/patch-bx
+++ b/www/mozilla/patches/patch-bx
@@ -1,13 +1,45 @@
-$NetBSD: patch-bx,v 1.1 2004/06/21 14:14:01 taya Exp $
+$NetBSD: patch-bx,v 1.2 2004/07/07 09:08:31 aymeric Exp $
-diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp
---- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp 2001-09-29 05:12:53.000000000 +0900
-+++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp 2004-06-10 23:12:38.000000000 +0900
-@@ -195,6 +195,47 @@
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp.orig 2001-09-28 22:12:53.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp
+@@ -119,8 +119,10 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+ if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack
+ dp->val.d = *(double*) ap;
+ ap += 2;
++#if __GXX_ABI_VERSION < 100
+ if (gpr < GPR_COUNT)
+ gpr += 2;
++#endif
+ }
+ continue;
+ }
+@@ -130,8 +132,10 @@ PrepareAndDispatch(nsXPTCStubBase* self,
+ else {
+ dp->val.f = *(float*) ap;
+ ap += 1;
++#if __GXX_ABI_VERSION < 100
+ if (gpr < GPR_COUNT)
+ gpr += 1;
++#endif
+ }
+ continue;
+ }
+@@ -195,7 +199,9 @@ PrepareAndDispatch(nsXPTCStubBase* self,
// however, it's quick, dirty, and'll break when the ABI changes on
// us, which is what we want ;-).
-+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+-#define STUB_ENTRY(n) \
++#if __GXX_ABI_VERSION < 100
++// gcc-2 version
++# define STUB_ENTRY(n) \
+ __asm__ ( \
+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+@@ -206,6 +212,46 @@ __asm__ (
+ "li 11,"#n" \n\t" \
+ "b SharedStub@local \n" \
+ );
++#else
+// gcc-3 version
+//
+// As G++3 ABI contains the length of the functionname in the mangled
@@ -23,7 +55,6 @@ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.
+
+# define STUB_ENTRY(n) \
+__asm__ ( \
-+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
@@ -47,14 +78,6 @@ diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.
+ "li 11,"#n" \n\t" \
+ "b SharedStub@local \n" \
+);
-+#else
- #define STUB_ENTRY(n) \
- __asm__ ( \
- ".section \".text\" \n\t" \
-@@ -206,6 +247,7 @@
- "li 11,"#n" \n\t" \
- "b SharedStub@local \n" \
- );
+#endif
#define SENTINEL_ENTRY(n) \
diff --git a/www/mozilla/patches/patch-bz b/www/mozilla/patches/patch-bz
new file mode 100644
index 00000000000..fc27653a7bf
--- /dev/null
+++ b/www/mozilla/patches/patch-bz
@@ -0,0 +1,122 @@
+$NetBSD: patch-bz,v 1.1 2004/07/07 09:08:31 aymeric Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_netbsd.s.orig 2001-03-11 18:22:22.000000000 +0100
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_netbsd.s
+@@ -1,27 +1,27 @@
+-# -*- Mode: Asm -*-
+-#
+-# The contents of this file are subject to the Netscape Public
+-# License Version 1.1 (the "License"); you may not use this file
+-# except in compliance with the License. You may obtain a copy of
+-# the License at http://www.mozilla.org/NPL/
+-#
+-# Software distributed under the License is distributed on an "AS
+-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+-# implied. See the License for the specific language governing
+-# rights and limitations under the License.
+-#
+-# The Original Code is mozilla.org code.
+-#
+-# The Initial Developer of the Original Code is Netscape
+-# Communications Corporation. Portions created by Netscape are
+-# Copyright (C) 1999 Netscape Communications Corporation. All
+-# Rights Reserved.
+-#
+-# Contributor(s):
+-# Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+-# beard@netscape.com (Patrick Beard)
+-# waterson@netscape.com (Chris Waterson)
+-#
++// -*- Mode: Asm -*-
++//
++// The contents of this file are subject to the Netscape Public
++// License Version 1.1 (the "License"); you may not use this file
++// except in compliance with the License. You may obtain a copy of
++// the License at http://www.mozilla.org/NPL/
++//
++// Software distributed under the License is distributed on an "AS
++// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
++// implied. See the License for the specific language governing
++// rights and limitations under the License.
++//
++// The Original Code is mozilla.org code.
++//
++// The Initial Developer of the Original Code is Netscape
++// Communications Corporation. Portions created by Netscape are
++// Copyright (C) 1999 Netscape Communications Corporation. All
++// Rights Reserved.
++//
++// Contributor(s):
++// Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
++// beard@netscape.com (Patrick Beard)
++// waterson@netscape.com (Chris Waterson)
++//
+
+ .set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4
+ .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+@@ -44,23 +44,23 @@
+ .type SharedStub,@function
+
+ SharedStub:
+- stwu sp,-112(sp) # room for
+- # linkage (8),
+- # gprData (32),
+- # fprData (64),
+- # stack alignment(8)
++ stwu sp,-112(sp) // room for
++ // linkage (8),
++ // gprData (32),
++ // fprData (64),
++ // stack alignment(8)
+ mflr r0
+- stw r0,116(sp) # save LR backchain
++ stw r0,116(sp) // save LR backchain
+
+- stw r4,12(sp) # save GP registers
+- stw r5,16(sp) # (n.b. that we don't save r3
+- stw r6,20(sp) # because PrepareAndDispatch() is savvy)
++ stw r4,12(sp) // save GP registers
++ stw r5,16(sp) // (n.b. that we don't save r3
++ stw r6,20(sp) // because PrepareAndDispatch() is savvy)
+ stw r7,24(sp)
+ stw r8,28(sp)
+ stw r9,32(sp)
+ stw r10,36(sp)
+
+- stfd f1,40(sp) # save FP registers
++ stfd f1,40(sp) // save FP registers
+ stfd f2,48(sp)
+ stfd f3,56(sp)
+ stfd f4,64(sp)
+@@ -69,21 +69,20 @@ SharedStub:
+ stfd f7,88(sp)
+ stfd f8,96(sp)
+
+- # r3 has the 'self' pointer already
++ // r3 has the 'self' pointer already
+
+- mr r4,r11 # r4 <= methodIndex selector, passed
+- # via r11 in the nsXPTCStubBase::StubXX() call
++ mr r4,r11 // r4 <= methodIndex selector, passed
++ // via r11 in the nsXPTCStubBase::StubXX() call
+
+- addi r5,sp,120 # r5 <= pointer to callers args area,
+- # beyond r3-r10/f1-f8 mapped range
++ addi r5,sp,120 // r5 <= pointer to callers args area,
++ // beyond r3-r10/f1-f8 mapped range
+
+- addi r6,sp,8 # r6 <= gprData
+- addi r7,sp,40 # r7 <= fprData
++ addi r6,sp,8 // r6 <= gprData
++ addi r7,sp,40 // r7 <= fprData
+
+- bl PrepareAndDispatch@local # Go!
++ bl PrepareAndDispatch@local // Go!
+
+- lwz r0,116(sp) # restore LR
++ lwz r0,116(sp) // restore LR
+ mtlr r0
+- la sp,112(sp) # clean up the stack
++ la sp,112(sp) // clean up the stack
+ blr
+-
diff --git a/www/mozilla/patches/patch-ca b/www/mozilla/patches/patch-ca
new file mode 100644
index 00000000000..20c4ddaf08e
--- /dev/null
+++ b/www/mozilla/patches/patch-ca
@@ -0,0 +1,166 @@
+$NetBSD: patch-ca,v 1.1 2004/07/07 09:08:31 aymeric Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2001-03-11 18:22:17.000000000 +0100
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s
+@@ -1,27 +1,28 @@
+-# -*- Mode: Asm -*-
+-#
+-# The contents of this file are subject to the Netscape Public
+-# License Version 1.1 (the "License"); you may not use this file
+-# except in compliance with the License. You may obtain a copy of
+-# the License at http://www.mozilla.org/NPL/
+-#
+-# Software distributed under the License is distributed on an "AS
+-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+-# implied. See the License for the specific language governing
+-# rights and limitations under the License.
+-#
+-# The Original Code is mozilla.org code.
+-#
+-# The Initial Developer of the Original Code is Netscape
+-# Communications Corporation. Portions created by Netscape are
+-# Copyright (C) 1999 Netscape Communications Corporation. All
+-# Rights Reserved.
+-#
+-# Contributor(s):
+-# Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+-# beard@netscape.com (Patrick Beard)
+-# waterson@netscape.com (Chris Waterson)
+-#
++// -*- Mode: Asm -*-
++//
++// The contents of this file are subject to the Netscape Public
++// License Version 1.1 (the "License"); you may not use this file
++// except in compliance with the License. You may obtain a copy of
++// the License at http://www.mozilla.org/NPL/
++//
++// Software distributed under the License is distributed on an "AS
++// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
++// implied. See the License for the specific language governing
++// rights and limitations under the License.
++//
++// The Original Code is mozilla.org code.
++//
++// The Initial Developer of the Original Code is Netscape
++// Communications Corporation. Portions created by Netscape are
++// Copyright (C) 1999 Netscape Communications Corporation. All
++// Rights Reserved.
++//
++// Contributor(s):
++// Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
++// beard@netscape.com (Patrick Beard)
++// waterson@netscape.com (Chris Waterson)
++//
++
+ .set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4
+ .set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+ .set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
+@@ -42,38 +43,38 @@
+ .globl XPTC_InvokeByIndex
+ .type XPTC_InvokeByIndex,@function
+
+-#
+-# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+-# PRUint32 paramCount, nsXPTCVariant* params)
+-#
++//
++// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
++// PRUint32 paramCount, nsXPTCVariant* params)
++//
+
+ XPTC_InvokeByIndex:
+- stwu sp,-32(sp) # setup standard stack frame
+- mflr r0 # save LR
+- stw r3,8(sp) # r3 <= that
+- stw r4,12(sp) # r4 <= methodIndex
++ stwu sp,-32(sp) // setup standard stack frame
++ mflr r0 // save LR
++ stw r3,8(sp) // r3 <= that
++ stw r4,12(sp) // r4 <= methodIndex
+ stw r30,16(sp)
+ stw r31,20(sp)
+
+- stw r0,36(sp) # store LR backchain
++ stw r0,36(sp) // store LR backchain
+ mr r31,sp
+
+- rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f
+- addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96
+- lwz r9,0(sp) # r9 = backchain
++ rlwinm r10,r5,3,0,27 // r10 = (ParamCount * 2 * 4) & ~0x0f
++ addi r0,r10,96 // reserve stack for GPR and FPR register save area r0 = r10 + 96
++ lwz r9,0(sp) // r9 = backchain
+ neg r0,r0
+- stwux r9,sp,r0 # reserve stack sapce and save SP backchain
+-
+- addi r3,sp,8 # r3 <= args
+- mr r4,r5 # r4 <= paramCount
+- mr r5,r6 # r5 <= params
+- add r6,r3,r10 # r6 <= gpregs ( == args + r10 )
+- mr r30,r6 # store in r30 for use later...
+- addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 )
++ stwux r9,sp,r0 // reserve stack space and save SP backchain
++
++ addi r3,sp,8 // r3 <= args
++ mr r4,r5 // r4 <= paramCount
++ mr r5,r6 // r5 <= params
++ add r6,r3,r10 // r6 <= gpregs ( == args + r10 )
++ mr r30,r6 // store in r30 for use later...
++ addi r7,r6,32 // r7 <= fpregs ( == gpregs + 32 )
+
+- bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs)
++ bl invoke_copy_to_stack@local // (args, paramCount, params, gpregs, fpregs)
+
+- lfd f1,32(r30) # load FP registers with method parameters
++ lfd f1,32(r30) // load FP registers with method parameters
+ lfd f2,40(r30)
+ lfd f3,48(r30)
+ lfd f4,56(r30)
+@@ -82,18 +83,18 @@ XPTC_InvokeByIndex:
+ lfd f7,80(r30)
+ lfd f8,88(r30)
+
+- lwz r3,8(r31) # r3 <= that
+- lwz r4,12(r31) # r4 <= methodIndex
+- lwz r5,0(r3) # r5 <= vtable ( == *that )
+- slwi r4,r4,3 # convert to offset ( *= 8 )
+- addi r4,r4,8 # skip first two vtable entries
+- add r4,r4,r5
+- lhz r0,0(r4) # virtual base offset
+- extsh r0,r0
+- add r3,r3,r0
+- lwz r0,4(r4) # r0 <= methodpointer ( == vtable + offset )
++ lwz r3,8(r31) // r3 <= that
++ lwz r4,12(r31) // r4 <= methodIndex
++ lwz r5,0(r3) // r5 <= vtable ( == *that )
++#if !((__GNUC__ == 3 && __GNUC_MINOR__ < 2) || __GXX_ABI_VERSION >= 100) // G++ pre-V3 ABI is like that of AIX under NetBSD
++ slwi r4,r4,3 // convert to offset ( *= 8 )
++ addi r4,r4,8 // skip garbage before vtable
++#else
++ slwi r4,r4,2 // convert to offset ( *= 4 )
++#endif
++ lwzx r0,r5,r4 // r0 <= methodpointer ( == vtable + offset )
+
+- lwz r4,4(r30) # load GP regs with method parameters
++ lwz r4,4(r30) // load GP regs with method parameters
+ lwz r5,8(r30)
+ lwz r6,12(r30)
+ lwz r7,16(r30)
+@@ -101,13 +102,13 @@ XPTC_InvokeByIndex:
+ lwz r9,24(r30)
+ lwz r10,28(r30)
+
+- mtlr r0 # copy methodpointer to LR
+- blrl # call method
++ mtlr r0 // copy methodpointer to LR
++ blrl // call method
+
+- lwz r30,16(r31) # restore r30 & r31
++ lwz r30,16(r31) // restore r30 & r31
+ lwz r31,20(r31)
+
+- lwz r11,0(sp) # clean up the stack
++ lwz r11,0(sp) // clean up the stack
+ lwz r0,4(r11)
+ mtlr r0
+ mr sp,r11
diff --git a/www/mozilla/patches/patch-cb b/www/mozilla/patches/patch-cb
new file mode 100644
index 00000000000..5fc7aec927b
--- /dev/null
+++ b/www/mozilla/patches/patch-cb
@@ -0,0 +1,26 @@
+$NetBSD: patch-cb,v 1.1 2004/07/07 09:08:31 aymeric Exp $
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2001-09-28 22:12:52.000000000 +0200
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp
+@@ -104,8 +104,10 @@ invoke_copy_to_stack(PRUint32* d,
+ if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack
+ *((double*) d) = s->val.d;
+ d += 2;
++#if __GXX_ABI_VERSION < 100
+ if (gpr < GPR_COUNT)
+ gpr += 2;
++#endif
+ }
+ }
+ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
+@@ -114,8 +116,10 @@ invoke_copy_to_stack(PRUint32* d,
+ else {
+ *((float*) d) = s->val.f;
+ d += 1;
++#if __GXX_ABI_VERSION < 100
+ if (gpr < GPR_COUNT)
+ gpr += 1;
++#endif
+ }
+ }
+ else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64