aboutsummaryrefslogtreecommitdiffstats
path: root/www/seamonkey
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-06-01 11:34:55 +0800
committermarcus <marcus@FreeBSD.org>2003-06-01 11:34:55 +0800
commit91f2c4dc076786cffdf768f633b71fa2b53b804a (patch)
tree882b401a25ef3430bc9eb57813222dfa52a76287 /www/seamonkey
parent839e10ff14cbeb131bb7b0bfa7b7fd3cef246303 (diff)
downloadfreebsd-ports-gnome-91f2c4dc076786cffdf768f633b71fa2b53b804a.tar.gz
freebsd-ports-gnome-91f2c4dc076786cffdf768f633b71fa2b53b804a.tar.zst
freebsd-ports-gnome-91f2c4dc076786cffdf768f633b71fa2b53b804a.zip
* Add [untested] Alpha support [1]
* Fix some 64-bit problems in the JavaScript and nspr code [2] Submitted by: Bernd Walter <ticso@cicely.de> [1] tmm [2]
Diffstat (limited to 'www/seamonkey')
-rw-r--r--www/seamonkey/Makefile8
-rw-r--r--www/seamonkey/files/patch-alpha492
-rw-r--r--www/seamonkey/files/patch-jsfun.c29
-rw-r--r--www/seamonkey/files/patch-nspr-unix.c21
4 files changed, 545 insertions, 5 deletions
diff --git a/www/seamonkey/Makefile b/www/seamonkey/Makefile
index 8aa0e4fa8b79..5f35509a61b5 100644
--- a/www/seamonkey/Makefile
+++ b/www/seamonkey/Makefile
@@ -159,14 +159,12 @@ ALL_TARGET= default
CONFIGURE_ARGS+= --enable-reorder
.endif
-.if defined(WITH_OPTIMIZED_CFLAGS) && ${ARCH} != "alpha"
+.if defined(WITH_OPTIMIZED_CFLAGS)
CFLAGS+= -O2
CONFIGURE_ARGS+= --enable-optimize=-O2
.endif
-.if ${ARCH} == "alpha"
-CFLAGS+= -O0
-CONFIGURE_ARGS+= --disable-optimize
+.if ${ARCH} == "alpha" && ${OSVERSION} < 500035
BROKEN= "core dumps on alpha during post-build"
.endif
@@ -253,7 +251,7 @@ do-install:
${MKDIR} ${PREFIX}/lib/browser_plugins ; \
fi
if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \
- ${LN} -sf ${LOCALBASE}/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so \
+ ${LN} -sf ${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \
${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ; \
fi
.if defined(WITH_GTK2)
diff --git a/www/seamonkey/files/patch-alpha b/www/seamonkey/files/patch-alpha
new file mode 100644
index 000000000000..f8c1b081c9fa
--- /dev/null
+++ b/www/seamonkey/files/patch-alpha
@@ -0,0 +1,492 @@
+--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Mon Jan 27 22:52:51 2003
++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Tue May 27 01:41:12 2003
+@@ -100,9 +100,15 @@
+ ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s
+ endif
+ #
++# FreeBSD/Alpha
++#
++ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDalpha)
++CPPSRCS := xptcinvoke_freebsd_alpha.cpp xptcstubs_freebsd_alpha.cpp
++endif
++#
+ # Linux/Alpha
+ #
+-ifneq (,$(filter Linuxalpha FreeBSDalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST)))
++ifneq (,$(filter Linuxalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST)))
+ CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp
+ endif
+ #
+--- config/rules.mk.orig Mon May 5 21:04:55 2003
++++ config/rules.mk Tue May 27 01:33:11 2003
+@@ -444,7 +444,11 @@
+
+ ifeq ($(OS_ARCH),FreeBSD)
+ ifdef IS_COMPONENT
++ifneq (,$(filter alpha,$(OS_TEST)))
++EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
++else
+ EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
++endif
+ endif
+ endif
+
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp.orig Tue May 27 01:37:25 2003
++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp Tue May 27 01:37:00 2003
+@@ -0,0 +1,184 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: NPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1998
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * 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
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the NPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the NPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/* 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
++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
++__asm__("invoke_copy_to_stack") __attribute__((unused));
++
++static void
++invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
++{
++ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer
++
++ for(PRUint32 i = 0; i < paramCount; i++, d++, s++)
++ {
++ if(s->IsPtrData())
++ {
++ *d = (PRUint64)s->ptr;
++ continue;
++ }
++ switch(s->type)
++ {
++ case nsXPTType::T_I8 : *d = (PRUint64)s->val.i8; break;
++ case nsXPTType::T_I16 : *d = (PRUint64)s->val.i16; break;
++ case nsXPTType::T_I32 : *d = (PRUint64)s->val.i32; break;
++ case nsXPTType::T_I64 : *d = (PRUint64)s->val.i64; break;
++ case nsXPTType::T_U8 : *d = (PRUint64)s->val.u8; break;
++ case nsXPTType::T_U16 : *d = (PRUint64)s->val.u16; break;
++ case nsXPTType::T_U32 : *d = (PRUint64)s->val.u32; break;
++ case nsXPTType::T_U64 : *d = (PRUint64)s->val.u64; break;
++ case nsXPTType::T_FLOAT :
++ if(i < NUM_ARG_REGS)
++ {
++ // convert floats to doubles if they are to be passed
++ // via registers so we can just deal with doubles later
++ union { PRUint64 u64; double d; } t;
++ t.d = (double)s->val.f;
++ *d = t.u64;
++ }
++ else
++ // otherwise copy to stack normally
++ *d = (PRUint64)s->val.u32;
++ break;
++ case nsXPTType::T_DOUBLE : *d = (PRUint64)s->val.u64; break;
++ case nsXPTType::T_BOOL : *d = (PRUint64)s->val.b; break;
++ case nsXPTType::T_CHAR : *d = (PRUint64)s->val.c; break;
++ case nsXPTType::T_WCHAR : *d = (PRUint64)s->val.wc; break;
++ default:
++ // all the others are plain pointer types
++ *d = (PRUint64)s->val.p;
++ break;
++ }
++ }
++}
++
++/*
++ * XPTC_PUBLIC_API(nsresult)
++ * XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
++ * PRUint32 paramCount, nsXPTCVariant* params, void* vt)
++ */
++__asm__(
++ "#### XPTC_InvokeByIndex ####\n"
++".text\n\t"
++ ".align 5\n\t"
++ ".globl XPTC_InvokeByIndex\n\t"
++ ".ent XPTC_InvokeByIndex\n"
++"XPTC_InvokeByIndex:\n\t"
++ ".frame $15,32,$26,0\n\t"
++ ".mask 0x4008000,-32\n\t"
++ "ldgp $29,0($27)\n"
++"$XPTC_InvokeByIndex..ng:\n\t"
++ "subq $30,32,$30\n\t"
++ "stq $26,0($30)\n\t"
++ "stq $15,8($30)\n\t"
++ "bis $30,$30,$15\n\t"
++ ".prologue 1\n\t"
++
++ /*
++ * Allocate enough stack space to hold the greater of 6 or "paramCount"+1
++ * parameters. (+1 for "this" pointer) Room for at least 6 parameters
++ * is required for storage of those passed via registers.
++ */
++
++ "bis $31,5,$2\n\t" /* count = MAX(5, "paramCount") */
++ "cmplt $2,$18,$1\n\t"
++ "cmovne $1,$18,$2\n\t"
++ "s8addq $2,16,$1\n\t" /* room for count+1 params (8 bytes each) */
++ "bic $1,15,$1\n\t" /* stack space is rounded up to 0 % 16 */
++ "subq $30,$1,$30\n\t"
++
++ "stq $16,0($30)\n\t" /* save "that" (as "this" pointer) */
++ "stq $17,16($15)\n\t" /* save "methodIndex" */
++
++ "addq $30,8,$16\n\t" /* pass stack pointer */
++ "bis $18,$18,$17\n\t" /* pass "paramCount" */
++ "bis $19,$19,$18\n\t" /* pass "params" */
++ "bsr $26,$invoke_copy_to_stack..ng\n\t" /* call invoke_copy_to_stack */
++
++ /*
++ * Copy the first 6 parameters to registers and remove from stack frame.
++ * Both the integer and floating point registers are set for each parameter
++ * except the first which is the "this" pointer. (integer only)
++ * The floating point registers are all set as doubles since the
++ * invoke_copy_to_stack function should have converted the floats.
++ */
++ "ldq $16,0($30)\n\t" /* integer registers */
++ "ldq $17,8($30)\n\t"
++ "ldq $18,16($30)\n\t"
++ "ldq $19,24($30)\n\t"
++ "ldq $20,32($30)\n\t"
++ "ldq $21,40($30)\n\t"
++ "ldt $f17,8($30)\n\t" /* floating point registers */
++ "ldt $f18,16($30)\n\t"
++ "ldt $f19,24($30)\n\t"
++ "ldt $f20,32($30)\n\t"
++ "ldt $f21,40($30)\n\t"
++
++ "addq $30,48,$30\n\t" /* remove params from stack */
++
++ /*
++ * Call the virtual function with the constructed stack frame.
++ */
++ "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 0
++ "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
++#else
++ "mulq $2, 8, $2\n\t"
++ "addq $2, 0, $2\n\t" /* vtable index = "methodIndex" * 16 + 24 */
++#endif
++ "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 */
++ "ldgp $29,0($26)\n\t"
++
++ "bis $15,$15,$30\n\t"
++ "ldq $26,0($30)\n\t"
++ "ldq $15,8($30)\n\t"
++ "addq $30,32,$30\n\t"
++ "ret $31,($26),1\n\t"
++ ".end XPTC_InvokeByIndex"
++ );
++
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp.orig Tue May 27 01:37:30 2003
++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp Tue May 27 01:37:04 2003
+@@ -0,0 +1,269 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: NPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1999
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * 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
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the NPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the NPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/* Implement shared vtbl methods. */
++
++/* contributed by Glen Nakamura <glen.nakamura@usa.net> */
++
++#include <sys/types.h>
++#include <machine/cpu.h>
++#include "xptcprivate.h"
++
++/* Prototype specifies unmangled function name and disables unused warning */
++static nsresult
++PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
++__asm__("PrepareAndDispatch") __attribute__((unused));
++
++static nsresult
++PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
++{
++ const PRUint8 PARAM_BUFFER_COUNT = 16;
++ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer
++
++ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
++ nsXPTCMiniVariant* dispatchParams = NULL;
++ nsIInterfaceInfo* iface_info = NULL;
++ const nsXPTMethodInfo* info;
++ PRUint8 paramCount;
++ PRUint8 i;
++ nsresult result = NS_ERROR_FAILURE;
++
++ NS_ASSERTION(self,"no self");
++
++ self->GetInterfaceInfo(&iface_info);
++ NS_ASSERTION(iface_info,"no interface info");
++
++ iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
++ NS_ASSERTION(info,"no interface info");
++
++ paramCount = info->GetParamCount();
++
++ // setup variant array pointer
++ if(paramCount > PARAM_BUFFER_COUNT)
++ dispatchParams = new nsXPTCMiniVariant[paramCount];
++ else
++ dispatchParams = paramBuffer;
++ NS_ASSERTION(dispatchParams,"no place for params");
++
++ // args[0] to args[NUM_ARG_REGS] hold floating point register values
++ PRUint64* ap = args + NUM_ARG_REGS;
++ for(i = 0; i < paramCount; i++, ap++)
++ {
++ const nsXPTParamInfo& param = info->GetParam(i);
++ const nsXPTType& type = param.GetType();
++ nsXPTCMiniVariant* dp = &dispatchParams[i];
++
++ if(param.IsOut() || !type.IsArithmetic())
++ {
++ dp->val.p = (void*) *ap;
++ continue;
++ }
++ // else
++ switch(type)
++ {
++ case nsXPTType::T_I8 : dp->val.i8 = (PRInt8) *ap; break;
++ case nsXPTType::T_I16 : dp->val.i16 = (PRInt16) *ap; break;
++ case nsXPTType::T_I32 : dp->val.i32 = (PRInt32) *ap; break;
++ case nsXPTType::T_I64 : dp->val.i64 = (PRInt64) *ap; break;
++ case nsXPTType::T_U8 : dp->val.u8 = (PRUint8) *ap; break;
++ case nsXPTType::T_U16 : dp->val.u16 = (PRUint16) *ap; break;
++ case nsXPTType::T_U32 : dp->val.u32 = (PRUint32) *ap; break;
++ case nsXPTType::T_U64 : dp->val.u64 = (PRUint64) *ap; break;
++ case nsXPTType::T_FLOAT :
++ if(i < NUM_ARG_REGS)
++ {
++ // floats passed via registers are stored as doubles
++ // in the first NUM_ARG_REGS entries in args
++ dp->val.u64 = (PRUint64) args[i];
++ dp->val.f = (float) dp->val.d; // convert double to float
++ }
++ else
++ dp->val.u32 = (PRUint32) *ap;
++ break;
++ case nsXPTType::T_DOUBLE :
++ // doubles passed via registers are also stored
++ // in the first NUM_ARG_REGS entries in args
++ dp->val.u64 = (i < NUM_ARG_REGS) ? args[i] : *ap;
++ break;
++ case nsXPTType::T_BOOL : dp->val.b = (PRBool) *ap; break;
++ case nsXPTType::T_CHAR : dp->val.c = (char) *ap; break;
++ case nsXPTType::T_WCHAR : dp->val.wc = (PRUnichar) *ap; break;
++ default:
++ NS_ASSERTION(0, "bad type");
++ break;
++ }
++ }
++
++ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
++
++ NS_RELEASE(iface_info);
++
++ if(dispatchParams != paramBuffer)
++ delete [] dispatchParams;
++
++ return result;
++}
++
++/*
++ * SharedStub()
++ * Collects arguments and calls PrepareAndDispatch. The "methodIndex" is
++ * passed to this function via $1 to preserve the argument registers.
++ */
++__asm__(
++ "#### SharedStub ####\n"
++".text\n\t"
++ ".align 5\n\t"
++ ".ent SharedStub\n"
++"SharedStub:\n\t"
++ ".frame $30,96,$26,0\n\t"
++ ".mask 0x4000000,-96\n\t"
++ "ldgp $29,0($27)\n"
++"$SharedStub..ng:\n\t"
++ "subq $30,96,$30\n\t"
++ "stq $26,0($30)\n\t"
++ ".prologue 1\n\t"
++
++ /*
++ * Store arguments passed via registers to the stack.
++ * Floating point registers are stored as doubles and converted
++ * to floats in PrepareAndDispatch if necessary.
++ */
++ "stt $f17,16($30)\n\t" /* floating point registers */
++ "stt $f18,24($30)\n\t"
++ "stt $f19,32($30)\n\t"
++ "stt $f20,40($30)\n\t"
++ "stt $f21,48($30)\n\t"
++ "stq $17,56($30)\n\t" /* integer registers */
++ "stq $18,64($30)\n\t"
++ "stq $19,72($30)\n\t"
++ "stq $20,80($30)\n\t"
++ "stq $21,88($30)\n\t"
++
++ /*
++ * Call PrepareAndDispatch function.
++ */
++ "bis $1,$1,$17\n\t" /* pass "methodIndex" */
++ "addq $30,16,$18\n\t" /* pass "args" */
++ "bsr $26,$PrepareAndDispatch..ng\n\t"
++
++ "ldq $26,0($30)\n\t"
++ "addq $30,96,$30\n\t"
++ "ret $31,($26),1\n\t"
++ ".end SharedStub"
++ );
++
++#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
++/*
++ * nsresult nsXPTCStubBase::Stub##n()
++ * Sets register $1 to "methodIndex" and jumps to SharedStub.
++ */
++#define STUB_ENTRY(n) \
++__asm__( \
++ "#### Stub"#n" ####\n" \
++".text\n\t" \
++ ".align 5\n\t" \
++ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n\t" \
++ ".ent _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
++"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n\t" \
++ ".frame $30,0,$26,0\n\t" \
++ "ldgp $29,0($27)\n" \
++"$_ZN14nsXPTCStubBase5Stub"#n"Ev..ng:\n\t" \
++ ".prologue 1\n\t" \
++ "lda $1,"#n"\n\t" \
++ "br $31,$SharedStub..ng\n\t" \
++ ".end _ZN14nsXPTCStubBase5Stub"#n"Ev" \
++ ); \
++__asm__( \
++ "#### Stub"#n" ####\n" \
++".text\n\t" \
++ ".align 5\n\t" \
++ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n\t" \
++ ".ent _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
++"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n\t" \
++ ".frame $30,0,$26,0\n\t" \
++ "ldgp $29,0($27)\n" \
++"$_ZN14nsXPTCStubBase6Stub"#n"Ev..ng:\n\t" \
++ ".prologue 1\n\t" \
++ "lda $1,"#n"\n\t" \
++ "br $31,$SharedStub..ng\n\t" \
++ ".end _ZN14nsXPTCStubBase6Stub"#n"Ev" \
++ ); \
++__asm__( \
++ "#### Stub"#n" ####\n" \
++".text\n\t" \
++ ".align 5\n\t" \
++ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n\t" \
++ ".ent _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
++"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n\t" \
++ ".frame $30,0,$26,0\n\t" \
++ "ldgp $29,0($27)\n" \
++"$_ZN14nsXPTCStubBase7Stub"#n"Ev..ng:\n\t" \
++ ".prologue 1\n\t" \
++ "lda $1,"#n"\n\t" \
++ "br $31,$SharedStub..ng\n\t" \
++ ".end _ZN14nsXPTCStubBase7Stub"#n"Ev" \
++ );
++#else
++/*
++ * nsresult nsXPTCStubBase::Stub##n()
++ * Sets register $1 to "methodIndex" and jumps to SharedStub.
++ */
++#define STUB_ENTRY(n) \
++nsresult nsXPTCStubBase::Stub##n() \
++{ \
++ nsresult result; \
++__asm__ __volatile__( \
++ "ldah $29,0($27)\n\t" \
++ "lda $29,0($29)\n\t" \
++ "lda $1, "#n"\n\t" \
++ "br $31, $SharedStub..ng\n\t" \
++ "mov $0, %0\n\t" \
++ : "=r" (result) \
++ ); \
++ return result; \
++}
++#endif
++
++#define SENTINEL_ENTRY(n) \
++nsresult nsXPTCStubBase::Sentinel##n() \
++{ \
++ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
++ return NS_ERROR_NOT_IMPLEMENTED; \
++}
++
++#include "xptcstubsdef.inc"
++
diff --git a/www/seamonkey/files/patch-jsfun.c b/www/seamonkey/files/patch-jsfun.c
new file mode 100644
index 000000000000..69aacb9b54cd
--- /dev/null
+++ b/www/seamonkey/files/patch-jsfun.c
@@ -0,0 +1,29 @@
+--- js/src/jsfun.c.orig Fri May 30 20:55:38 2003
++++ js/src/jsfun.c Fri May 30 20:54:24 2003
+@@ -1081,7 +1081,7 @@
+ JSString *atomstr;
+ char *propname;
+ JSScopeProperty *sprop;
+- jsid userid;
++ uint32 userid;
+ JSAtom *atom;
+ uintN i, n, dupflag;
+ uint32 type;
+@@ -1157,7 +1157,7 @@
+ userid = INT_TO_JSVAL(sprop->shortid);
+ propname = ATOM_BYTES((JSAtom *)sprop->id);
+ if (!JS_XDRUint32(xdr, &type) ||
+- !JS_XDRUint32(xdr, (uint32 *)&userid) ||
++ !JS_XDRUint32(xdr, &userid) ||
+ !JS_XDRCString(xdr, &propname)) {
+ if (mark)
+ JS_ARENA_RELEASE(&cx->tempPool, mark);
+@@ -1173,7 +1173,7 @@
+ uintN attrs = JSPROP_ENUMERATE | JSPROP_PERMANENT;
+
+ if (!JS_XDRUint32(xdr, &type) ||
+- !JS_XDRUint32(xdr, (uint32 *)&userid) ||
++ !JS_XDRUint32(xdr, &userid) ||
+ !JS_XDRCString(xdr, &propname)) {
+ return JS_FALSE;
+ }
diff --git a/www/seamonkey/files/patch-nspr-unix.c b/www/seamonkey/files/patch-nspr-unix.c
new file mode 100644
index 000000000000..6bb4ed08fb40
--- /dev/null
+++ b/www/seamonkey/files/patch-nspr-unix.c
@@ -0,0 +1,21 @@
+--- nsprpub/pr/src/md/unix/unix.c.orig Sat May 31 18:06:04 2003
++++ nsprpub/pr/src/md/unix/unix.c Sat May 31 18:04:43 2003
+@@ -65,7 +65,8 @@
+ * PRInt32* pointer to a _PRSockLen_t* pointer.
+ */
+ #if defined(HAVE_SOCKLEN_T) \
+- || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
++ || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2) \
++ || defined(FREEBSD)
+ #define _PRSockLen_t socklen_t
+ #elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \
+ || defined(AIX4_1) || defined(LINUX) || defined(SONY) \
+@@ -73,7 +74,7 @@
+ || defined(SUNOS4) || defined(NCR) || defined(DARWIN) \
+ || defined(NEXTSTEP) || defined(QNX)
+ #define _PRSockLen_t int
+-#elif (defined(AIX) && !defined(AIX4_1)) || defined(FREEBSD) \
++#elif (defined(AIX) && !defined(AIX4_1)) \
+ || defined(NETBSD) || defined(OPENBSD) || defined(UNIXWARE) \
+ || defined(DGUX) || defined(VMS) || defined(NTO)
+ #define _PRSockLen_t size_t
ent KDE SC 4.4.4 for FreeBSD.makc2010-06-021-3/+3 * Bounce PORTREVISION for gettext-related ports. Have fun, ya'll.ade2010-05-312-2/+2 * - Update KOffice to 2.1.2 releasefluffy2010-05-116-64/+6 * - The FreeBSD KDE team is pleased to announce KDE SC 4.4.3 for FreeBSDfluffy2010-05-114-219/+430 * - update to 1.4.1dinoex2010-03-285-4/+5 * Presenting KDE 4.3.5 for FreeBSD. The official release notes for thismiwi2010-02-073-4/+43 * - update to jpeg-8dinoex2010-02-055-2/+5 * The KDE FreeBSD team is proud to announce the release of KOffice2 suite for F...fluffy2009-12-227-76/+243 * The FreeBSD KDE is please to announce the release of KDE 4.3.4,miwi2009-12-022-16/+78 * The KDE FreeBSD team is proud to announce the release of KDE 4.3.3miwi2009-11-272-5/+27 * The FreeBSD KDE is please to announce the release of KDE 4.3.1,tabthorpe2009-09-022-4/+4 * - Switch SourceForge ports to the new File Release System: categories startin...amdmi32009-08-221-2/+1 * clean upmakc2009-08-081-3/+0 * The KDE FreeBSD team is proud to announce the release of KDE 4.3.0miwi2009-08-054-27/+137 * - bump all port that indirectly depends on libjpeg and have not yet been bump...dinoex2009-07-315-0/+5 * The KDE FreeBSD team is pleased to announce KDE 4.2.4, the last bugfixmiwi2009-06-032-4/+8 * Update KDE ports to 4.2.3makc2009-05-102-3/+4 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.2miwi2009-04-022-15/+25 * Update KDE to 4.2.1.makc2009-03-092-3/+31 * - Add all manpages for kde4-l10n*miwi2009-02-091-0/+57 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.0miwi2009-02-093-92/+289 * kde@freebsd team is pleased to announce KDE 4.1.4, the last bugfix release in...makc2009-01-143-10/+502 * The KDE FreeBSD team is proud to announce the release of KDE 4.1.1miwi2008-09-032-8/+185 * The KDE FreeBSD team is proud to announce the releasemiwi2008-08-291-3/+3 * The KDE FreeBSD team is proud to announce the releasemiwi2008-08-182-7/+61 * The KDE FreeBSD team is proud to announce the release of KDE 4.1.0miwi2008-08-105-294/+747 * - unbreak after update to webalizer 2.20-01dinoex2008-08-063-34/+0 * Mark BROKEN: does not patch after the upgrade of www/webalizererwin2008-08-051-0/+2 * - Update maintainer's email addresspav2008-07-241-1/+1 * Bump portrevision due to upgrade of devel/gettext.edwin2008-06-061-0/+1 * - Remove unneeded dependency from gtk12/gtk20 [1]miwi2008-04-203-9/+10 * Update to KDE 3.5.8lofi2007-10-304-8/+8 * Update to KDE 3.5.7 / KOffice 1.6.3lofi2007-07-0412-41/+20 * Upgrade to 1.4.0-0.thierry2007-06-132-4/+4 * - Welcome X.org 7.2 \o/.flz2007-05-206-0/+6 * 2007-04-06 sysutils/tct: this port is obsolete, please use sysutils/sleuthkit...miwi2007-04-116-86/+0 * Update to KDE 3.5.6 / KOffice 1.6.2lofi2007-03-1413-21/+32 * Really normalize Aspell dictionaries ports PKGVERSION...thierry2007-02-151-1/+1 * Upgrade to 1.3.1-0.thierry2007-02-132-4/+4 * Schedule these broken ports for removal on 2007-04-10 if they are stillkris2007-02-111-0/+2 * - Switch dependencies to modern XFree86/Xorg portspav2007-02-031-1/+1 * Normalize Aspell dictionaries PKGNAMEs.thierry2007-01-141-0/+1 * BROKEN: Leaves behind config file on deinstallkris2007-01-111-0/+2 * Update to KDE 3.5.5 / KOffice 1.6.1lofi2006-12-2011-18/+21 * KDE 3.5.4 / KOffice 1.5.2lofi2006-09-1310-30/+24 * All dictionaries can be installed separately:thierry2006-07-154-7/+18 * Update to KDE 3.5.3lofi2006-06-064-16/+16 * Update to KOffice 1.5.1lofi2006-05-276-12/+12 * Update to KOffice 1.5.0lofi2006-04-299-78/+51 * Update to KDE 3.5.2lofi2006-03-314-122/+16 * Update to KDE 3.5.1.lofi2006-02-014-6/+14 * SHA256ifyedwin2006-01-245-0/+5 * Removed not needed distinfo and add empty MASTERSITES and DISTFILES for fix p...anray2006-01-172-3/+2 * Distfile moved to FILESDIR.anray2006-01-172-5/+108 * Update to KDE 3.5.0lofi2006-01-094-110/+68 * KOI8-U coding system for all emacsen.anray2005-12-165-0/+46 * Update to KDE 3.4.3 / KOffice 1.4.2lofi2005-11-052-4/+4 * Remove expired portskris2005-11-0519-3074/+0 * Do the same trick with uk-pine.language as done with ru-pine.languageedwin2005-11-043-8/+41 * Remove all the secondary port of editors/ooodict-allmaho2005-11-012-21/+0 * Fix index build by moving openoffice.org-1.1 ports.maho2005-08-291-1/+1 * Update to KDE 3.4.2 / KOffice 1.4.1lofi2005-08-0110-115/+37 * This port is scheduled for deletion on 2005-09-22 if it is still brokenkris2005-07-232-0/+4 * Update to KDE 3.4.1lofi2005-06-267-17/+6 * - Unbreak and general updatepav2005-06-061-1/+2 * Update to KDE 3.4lofi2005-03-217-66/+233 * BROKEN: Removes config file at deinstall-timekris2005-02-281-0/+2 * BROKEN: Incomplete pkg-plistkris2005-02-191-0/+2 * Add i18nized doc subdirs to kdehier and adjust i18n port plists accordingly.lofi2004-12-235-5/+3 * Tweak IGNORE string to give a better-worded error message.kris2004-12-193-3/+3 * Fix kde3-i18n ports.lofi2004-12-162-4/+4 * Update to KDE 3.3.2lofi2004-12-149-17/+119 * BROKEN on 5.x: Does not compilekris2004-11-191-0/+4 * Update to KDE 3.3.1lofi2004-11-087-12/+32 * Update to KDE 3.3lofi2004-08-3112-15/+17 * Reset maintainer:kris2004-08-161-1/+1 * Pet portlint.lofi2004-07-116-3/+9 * Update to version 3.2.3lofi2004-06-107-16/+27 * Oops. Forgot the language categories.lofi2004-05-076-3/+3 * Update to KDE 3.2.2lofi2004-04-204-32/+22 * Remove category pkg/COMMENT files in favour of a COMMENT variable in thekris2004-04-022-1/+2 * SIZEify (maintainer timeout)trevor2004-03-313-0/+3 * Add ispellkris2004-03-171-0/+1 * Whoa there, boy, that's a mighty big commit y'all have there...ade2004-03-141-3/+3 * Update to KDE 3.2.1 / QT 3.3.1lofi2004-03-109-4/+27 * Use PLIST_FILES (bento-tested, marcus-reviewed).trevor2004-02-062-1/+1 * Update to KDE 3.2.0lofi2004-02-059-54/+136 * Bump PORTREVISION on all ports that depend on gettext to aid with upgrading.marcus2004-02-041-0/+1 * Add USE_GETTEXT and bump PORTREVISION.marcus2004-02-045-10/+10 * - Fix build on 4.xpav2004-01-263-1/+14 * Now gettext 0.12.1 is gettext-old.trevor2004-01-245-5/+5 * - fix PKGORIGINeik2004-01-231-1/+1 * - Update to 5.60pav2004-01-11171-2801/+2714 * Upgrade from 0.5 to 0.7.mi2003-12-102-2/+2 * OpenOffice -> OpenOffice.orgmaho2003-11-091-1/+1 * rename openoffice* to openoffice-1.0* accodingly (repo copy).maho2003-11-081-1/+1 * Mark BROKEN (see bento logs). These ports are scheduled for removalkris2003-11-031-0/+2 * Unbreak BROKEN messageedwin2003-10-131-1/+1 * New port: Ukrainian accounting system. New port of Ukrainian accounting syste...edwin2003-10-10176-0/+3136 * Translation update: fix checksum.will2003-09-222-2/+2 * Upgrade to Qt 3.2.1 / KDE 3.1.4. See x11/kde3/Makefile rev 1.64 for details.will2003-09-182-4/+2 * o Main modificationnork2003-08-191-1/+1 * Update KDE to the latest official release, KDE 3.1.3lofi2003-07-294-6/+16 * Update to KDE 3.1.2lioux2003-05-204-10/+8 * New port: localized messages and documentation for kofficelioux2003-05-2013-0/+208 * Add missing ooodict-uk_UAmbr2003-05-141-0/+1 * Add Ukrainian ooodict.mbr2003-05-141-0/+19 * Rejoice, for the long awaited upgrade to kde 3.1.1 is here!alane2003-04-064-2/+16 * Clear moonlight beckons.ade2003-03-078-4/+4 * De-pkg-comment.knu2003-02-212-1/+1 * De-pkg-comment.knu2003-02-212-1/+1 * De-pkg-comment.knu2003-02-21