Index: Makefile =================================================================== RCS file: /home/pcvs/ports/www/libxul/Makefile,v retrieving revision 1.13 diff -u -r1.13 Makefile --- Makefile 2 Nov 2009 11:02:56 -0000 1.13 +++ Makefile 21 Nov 2009 20:05:36 -0000 @@ -49,10 +49,6 @@ .include -.if ${ARCH} == "sparc64" -BROKEN= Does not compile on sparc64 -.endif - post-patch: ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ ${WRKSRC}/storage/build/Makefile.in \ Index: files/patch-security_coreconf_FreeBSD.mk =================================================================== RCS file: /home/pcvs/ports/www/libxul/files/patch-security_coreconf_FreeBSD.mk,v retrieving revision 1.1 diff -u -r1.1 patch-security_coreconf_FreeBSD.mk --- files/patch-security_coreconf_FreeBSD.mk 10 Apr 2009 05:56:28 -0000 1.1 +++ files/patch-security_coreconf_FreeBSD.mk 21 Nov 2009 20:04:34 -0000 @@ -1,6 +1,6 @@ ---- security/coreconf/FreeBSD.mk.orig Wed Mar 26 20:17:25 2003 -+++ security/coreconf/FreeBSD.mk Thu Jul 8 12:56:24 2004 -@@ -35,16 +35,18 @@ +--- security/coreconf/FreeBSD.mk.orig 2009-08-24 17:52:57.000000000 +0200 ++++ security/coreconf/FreeBSD.mk 2009-10-01 07:13:15.000000000 +0200 +@@ -37,16 +37,26 @@ include $(CORE_DEPTH)/coreconf/UNIX.mk @@ -16,13 +16,21 @@ +ifeq ($(OS_TEST),amd64) +CPU_ARCH = amd64 +else ++ifeq ($(OS_TEST),powerpc) ++CPU_ARCH = powerpc ++else ++ifeq ($(OS_TEST),sparc64) ++CPU_ARCH = sparc64 ++else CPU_ARCH = x86 endif +endif ++endif ++endif - OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK + OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK -@@ -71,7 +73,11 @@ +@@ -73,7 +83,11 @@ DLL_SUFFIX = so.1.0 endif @@ -33,5 +41,11 @@ +MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) -o $@ +endif ifdef MAPFILE - # Add LD options to restrict exported symbols to those in the map file + MKSHLIB += -Wl,--version-script,$(MAPFILE) endif +@@ -82,4 +96,4 @@ + + G++INCLUDES = -I/usr/include/g++ + +-INCLUDES += -I/usr/X11R6/include ++INCLUDES += -I/usr/local/include Index: files/patch-xptcall-sparc64 =================================================================== RCS file: /home/pcvs/ports/www/libxul/files/patch-xptcall-sparc64,v retrieving revision 1.1 diff -u -r1.1 patch-xptcall-sparc64 --- files/patch-xptcall-sparc64 10 Apr 2009 05:56:28 -0000 1.1 +++ files/patch-xptcall-sparc64 21 Nov 2009 20:04:35 -0000 @@ -1,6 +1,6 @@ ---- /dev/null Mon May 26 13:22:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp Mon May 26 04:12:55 2003 -@@ -0,0 +1,123 @@ +--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp 2009-09-30 23:09:48.000000000 +0200 +@@ -0,0 +1,125 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Mozilla Public @@ -27,6 +27,7 @@ +/* Implement shared vtbl methods. */ + +#include "xptcprivate.h" ++#include "xptiprivate.h" + +#if defined(sparc) || defined(__sparc__) + @@ -38,7 +39,6 @@ + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = NULL; -+ nsIInterfaceInfo* iface_info = NULL; + const nsXPTMethodInfo* info; + PRUint8 paramCount; + PRUint8 i; @@ -46,11 +46,10 @@ + + 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"); ++ self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (! info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + @@ -59,8 +58,12 @@ + dispatchParams = new nsXPTCMiniVariant[paramCount]; + else + dispatchParams = paramBuffer; ++ + NS_ASSERTION(dispatchParams,"no place for params"); + ++ if (! dispatchParams) ++ return NS_ERROR_OUT_OF_MEMORY; ++ + PRUint64* ap = args; + for(i = 0; i < paramCount; i++, ap++) + { @@ -95,10 +98,9 @@ + } + } + -+ result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams); -+ -+ NS_RELEASE(iface_info); -+ ++ result = self->mOuter->CallMethod((PRUint16)methodIndex, info, ++ dispatchParams); ++ + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + @@ -124,8 +126,8 @@ +#include "xptcstubsdef.inc" + +#endif /* sparc || __sparc__ */ ---- /dev/null Mon May 26 13:22:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s Mon May 26 04:06:09 2003 +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s 2009-09-30 22:48:25.000000000 +0200 @@ -0,0 +1,104 @@ +/* -*- Mode: asm; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * @@ -161,15 +163,15 @@ + The SCD is available from http://www.sparc.com/. +*/ + -+ .global XPTC_InvokeByIndex -+ .type XPTC_InvokeByIndex, #function ++ .global NS_InvokeByIndex_P ++ .type NS_InvokeByIndex_P, #function + +/* -+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, ++ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params); + +*/ -+XPTC_InvokeByIndex: ++NS_InvokeByIndex_P: + save %sp,-(128 + 64),%sp ! room for the register window and + ! struct pointer, rounded up to 0 % 64 + sll %i2,4,%l0 ! assume the worst case @@ -230,9 +232,9 @@ + ret + restore + -+ .size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex ---- /dev/null Mon May 26 14:00:00 2003 -+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp Mon May 26 14:00:49 2003 ++ .size NS_InvokeByIndex_P, .-NS_InvokeByIndex_P +--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp.orig 2009-09-30 22:48:25.000000000 +0200 ++++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp 2009-09-30 22:48:25.000000000 +0200 @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + *