diff options
Diffstat (limited to 'www/mozilla/patches/patch-bx')
-rw-r--r-- | www/mozilla/patches/patch-bx | 53 |
1 files changed, 38 insertions, 15 deletions
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) \ |