head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.8 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.6 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.4 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.2 pkgsrc-2011Q2-base:1.2 pkgsrc-2010Q1:1.1.1.1.0.4 pkgsrc-2010Q1-base:1.1.1.1 pkgsrc-2009Q4:1.1.1.1.0.2 pkgsrc-2009Q4-base:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.2 date 2010.04.21.16.59.29; author tnn; state dead; branches; next 1.1; 1.1 date 2009.11.28.21.59.55; author tnn; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2009.11.28.21.59.55; author tnn; state Exp; branches; next ; desc @@ 1.2 log @remove thunderbird2. Mozilla says no more 2.x releases planned. @ text @$NetBSD: patch-bx,v 1.1 2009/11/28 21:59:55 tnn 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() \ @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD: patch-bx,v 1.2 2004/12/04 02:16:03 taya Exp $ @ 1.1.1.1 log @Re-import mail/thunderbird as mail/thunderbird2 to let mail/thunderbird become the natural upgrade path to thunderbird 3.0. @ text @@