pkgsrc/mail/thunderbird/patches/patch-bx
taya 2d0540b479 1)Generate extension directory at installation time.
2)sync patches from www/mozilla.

- update patch-ab
from commit log
>> date: 2004/08/31 02:37:57;  author: danw;  state: Exp;  lines: +13 -6
>> darwin fixes (tested against firefox-gtk2)

- update patch-ac
- update patch-bx
- add patch-bz
- add patch-ca
- add patch-cb
from commit log
>> date: 2004/07/07 09:08:31;  author: aymeric;  state: Exp;  lines: +14 -7
>> . 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.

- remove patch-bn
enable HAVE_SOCKLEN_T

- update patch-br
from commit log
>> date: 2004/10/04 11:52:45;  author: grant;  state: Exp;  lines: +10 -6
>> bring across a patch in Firefox for using thread-safe resolver library
>> functions on NetBSD >=2.0F.

- update patch-cc
make mozilla work on NetBSD-current/alpha

3)bump PKGREVISION
2004-12-04 02:16:03 +00:00

84 lines
2.9 KiB
Text

$NetBSD: patch-bx,v 1.2 2004/12/04 02:16:03 taya Exp $
--- 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 ;-).
-#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
+// name, it is difficult to get a generic assembler mechanism like
+// in the G++ 2.95 case.
+// Create names would be like:
+// _ZN14nsXPTCStubBase5Stub1Ev
+// _ZN14nsXPTCStubBase6Stub12Ev
+// _ZN14nsXPTCStubBase7Stub123Ev
+// _ZN14nsXPTCStubBase8Stub1234Ev
+// etc.
+// Use assembler directives to get the names right...
+
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub@local \n" \
+);
+#endif
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \