summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2005-09-26 01:01:15 +0000
committerMartin Schlemmer <azarah@gentoo.org>2005-09-26 01:01:15 +0000
commit0de8fa520a3316786549d437e581193adad0c801 (patch)
tree806ff8961e3dd7ee84144b328aa485e2d65d31b6 /net-libs/gecko-sdk/files
parentSmall cleanup. (diff)
downloadgentoo-2-0de8fa520a3316786549d437e581193adad0c801.tar.gz
gentoo-2-0de8fa520a3316786549d437e581193adad0c801.tar.bz2
gentoo-2-0de8fa520a3316786549d437e581193adad0c801.zip
New release, GLSA105396. Use libart rather than cairo, bug #106713. Update
gtk2 and xft code from upstream to fix various freetype-2.1.9 issues including printing non-latin. Same for the libart renderer code. (Portage version: 2.0.52-r1)
Diffstat (limited to 'net-libs/gecko-sdk/files')
-rw-r--r--net-libs/gecko-sdk/files/digest-gecko-sdk-1.7.127
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.12-gtk2xft-link-pangoxft.patch15
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.12-libart-freetype.patch50
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.6-gcc4.patch46
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.6-ppc64.patch113
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.8-amd64.patch71
-rw-r--r--net-libs/gecko-sdk/files/mozilla-1.7.8-objectframefix.diff21
-rw-r--r--net-libs/gecko-sdk/files/mozilla-hppa.patch232
-rw-r--r--net-libs/gecko-sdk/files/mozilla-stackgrowth.patch37
9 files changed, 592 insertions, 0 deletions
diff --git a/net-libs/gecko-sdk/files/digest-gecko-sdk-1.7.12 b/net-libs/gecko-sdk/files/digest-gecko-sdk-1.7.12
new file mode 100644
index 000000000000..93b4ddc41e35
--- /dev/null
+++ b/net-libs/gecko-sdk/files/digest-gecko-sdk-1.7.12
@@ -0,0 +1,7 @@
+MD5 f1ad6adbbc0510eb76d352c94c801fac mozilla-1.7.12-source.tar.bz2 30446836
+MD5 64ba4c6e3b52568468c4f6680ec7e679 ipc-1.1.3.tar.gz 102593
+MD5 50c369ce6d6fcb2d275cd30319a601ff enigmail-0.92.0.tar.gz 377123
+MD5 b4355a5746dde47cf0a7981df1dff998 moz_libart_lgpl-2.3.10p1.tar.bz2 103063
+MD5 7960994910bda4c14a52bc119f9ceefc mozilla-jslibmath-alpha.patch 625
+MD5 855fcb4f3e40bbcc608113ceb11e2ceb mozilla-1.7.12-gtk2xft.patch.bz2 40416
+MD5 a120cd14ade242622387f76875ca9c39 mozilla-1.7.10-nsplugins-v2.patch 1968
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.12-gtk2xft-link-pangoxft.patch b/net-libs/gecko-sdk/files/mozilla-1.7.12-gtk2xft-link-pangoxft.patch
new file mode 100644
index 000000000000..3b2b58a549cf
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.12-gtk2xft-link-pangoxft.patch
@@ -0,0 +1,15 @@
+--- mozilla/configure.in.az 2005-09-26 00:07:40.000000000 +0200
++++ mozilla/configure.in 2005-09-26 00:10:56.000000000 +0200
+@@ -3430,9 +3430,10 @@
+ if test "$MOZ_ENABLE_XFT"
+ then
+ AC_DEFINE(MOZ_ENABLE_XFT)
+- PKG_CHECK_MODULES(MOZ_XFT, xft)
+ if test "$MOZ_ENABLE_GTK2"; then
+- PKG_CHECK_MODULES(_PANGOCHK, pango >= 1.1.0)
++ PKG_CHECK_MODULES(MOZ_XFT, xft pangoxft >= 1.1.0)
++ else
++ PKG_CHECK_MODULES(MOZ_XFT, xft)
+ fi
+ fi
+
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.12-libart-freetype.patch b/net-libs/gecko-sdk/files/mozilla-1.7.12-libart-freetype.patch
new file mode 100644
index 000000000000..84392bd4acdf
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.12-libart-freetype.patch
@@ -0,0 +1,50 @@
+$NetBSD: patch-by,v 1.2 2004/07/05 14:22:42 taya Exp $
+
+diff -ru ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp
+--- ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-03-19 10:36:16.000000000 +0900
++++ ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-07-04 22:59:19.000000000 +0900
+@@ -155,15 +155,15 @@
+
+ static NS_NAMED_LITERAL_STRING(arial, "arial");
+ nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("helvetica"),
+- &arial);
++ (nsDependentString *)&arial);
+
+ static NS_NAMED_LITERAL_STRING(courier, "courier new");
+ nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("courier"),
+- &courier);
++ (nsDependentString *)&courier);
+
+ static NS_NAMED_LITERAL_STRING(times, "times new roman");
+ nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("times"),
+- &times);
++ (nsDependentString *)&times);
+ }
+
+ void NS_FreeSVGLibartGlyphMetricsFTGlobals()
+@@ -440,19 +440,19 @@
+ return;
+ }
+
+- FTC_Image_Desc imageDesc;
+- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref?
++ FTC_ImageType imageDesc;
++ imageDesc->face_id = (FTC_FaceID)font_data.font_entry.get(); // XXX do we need to addref?
+ float twipstopixel = GetTwipsToPixels();
+ float scale = GetPixelScale();
+- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale);
+- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale);
+- imageDesc.image_type |= ftc_image_grays;
++ imageDesc->width = (int)((float)(font_data.font.size)*twipstopixel/scale);
++ imageDesc->height = (int)((float)(font_data.font.size)*twipstopixel/scale);
++ imageDesc->flags = 0;
+
+ // get the face
+ nsresult rv;
+ FTC_Manager mgr;
+ nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr);
+- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull);
++ rv = nsSVGLibartFreetype::ft2->ManagerLookupFace(mgr, imageDesc->face_id, &mFace);
+ NS_ASSERTION(mFace, "failed to get face/size");
+ }
+
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.6-gcc4.patch b/net-libs/gecko-sdk/files/mozilla-1.7.6-gcc4.patch
new file mode 100644
index 000000000000..2d0a04949072
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.6-gcc4.patch
@@ -0,0 +1,46 @@
+diff -ur mozilla-orig/security/nss/lib/pki1/oiddata.h mozilla/security/nss/lib/pki1/oiddata.h
+--- mozilla-orig/security/nss/lib/pki1/oiddata.h 2005-03-13 19:12:25.000000000 -0500
++++ mozilla/security/nss/lib/pki1/oiddata.h 2005-03-13 19:15:19.000000000 -0500
+@@ -43,12 +43,6 @@
+ #include "nsspki1t.h"
+ #endif /* NSSPKI1T_H */
+
+-extern const NSSOID nss_builtin_oids[];
+-extern const PRUint32 nss_builtin_oid_count;
+-
+-/*extern const nssAttributeTypeAliasTable nss_attribute_type_aliases[];*/
+-/*extern const PRUint32 nss_attribute_type_alias_count;*/
+-
+ extern const NSSOID *NSS_OID_RFC1274_UID;
+ extern const NSSOID *NSS_OID_RFC1274_EMAIL;
+ extern const NSSOID *NSS_OID_RFC2247_DC;
+diff -ur mozilla-orig/security/nss/lib/pki1/oidgen.perl mozilla/security/nss/lib/pki1/oidgen.perl
+--- mozilla-orig/security/nss/lib/pki1/oidgen.perl 2005-03-13 19:12:25.000000000 -0500
++++ mozilla/security/nss/lib/pki1/oidgen.perl 2005-03-13 19:15:19.000000000 -0500
+@@ -233,12 +233,6 @@
+ #include "nsspki1t.h"
+ #endif /* NSSPKI1T_H */
+
+-extern const NSSOID nss_builtin_oids[];
+-extern const PRUint32 nss_builtin_oid_count;
+-
+-/*extern const nssAttributeTypeAliasTable nss_attribute_type_aliases[];*/
+-/*extern const PRUint32 nss_attribute_type_alias_count;*/
+-
+ EOD
+ ;
+
+diff -ur mozilla-orig/security/nss/lib/pki1/pki1.h mozilla/security/nss/lib/pki1/pki1.h
+--- mozilla-orig/security/nss/lib/pki1/pki1.h 2005-03-13 19:12:25.000000000 -0500
++++ mozilla/security/nss/lib/pki1/pki1.h 2005-03-13 19:15:19.000000000 -0500
+@@ -55,7 +55,9 @@
+
+ PR_BEGIN_EXTERN_C
+
+-/* fgmr 19990505 moved these here from oiddata.h */
++extern const NSSOID nss_builtin_oids[];
++extern const PRUint32 nss_builtin_oid_count;
++
+ extern const nssAttributeTypeAliasTable nss_attribute_type_aliases[];
+ extern const PRUint32 nss_attribute_type_alias_count;
+
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.6-ppc64.patch b/net-libs/gecko-sdk/files/mozilla-1.7.6-ppc64.patch
new file mode 100644
index 000000000000..a2cb2354f38e
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.6-ppc64.patch
@@ -0,0 +1,113 @@
+--- mozilla.orig/security/coreconf/Linux.mk 2004-02-10 20:33:51.000000000 -0600
++++ mozilla/security/coreconf/Linux.mk 2005-04-01 22:41:04.000000000 -0600
+@@ -54,6 +54,10 @@
+ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+ CPU_ARCH = m68k
+ else
++ifeq ($(OS_TEST),ppc64)
++ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
++ CPU_ARCH = ppc64
++else
+ ifeq ($(OS_TEST),ppc)
+ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+ CPU_ARCH = ppc
+@@ -117,6 +121,7 @@
+ endif
+ endif
+ endif
++endif
+
+
+ LIBC_TAG = _glibc
+@@ -138,7 +143,7 @@
+ OS_PTHREAD = -lpthread
+ endif
+
+-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR
++OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR
+ OS_LIBS = -L/lib $(OS_PTHREAD) -ldl -lc
+
+ ifdef USE_PTHREADS
+--- mozilla.orig/nsprpub/pr/src/io/prprf.c 2004-03-08 21:18:19.000000000 -0600
++++ mozilla/nsprpub/pr/src/io/prprf.c 2005-04-16 13:18:10.000000000 -0500
+@@ -51,7 +51,8 @@
+ ** Note: on some platforms va_list is defined as an array,
+ ** and requires array notation.
+ */
+-#if (defined(LINUX) && defined(__x86_64__))
++#if (defined(LINUX) && defined(__x86_64__)) || \
++ (defined(LINUX) && defined(__powerpc64__))
+ #define VARARGS_ASSIGN(foo, bar) __va_copy((foo), (bar))
+ #elif (defined(LINUX) && defined(__powerpc__)) || \
+ (defined(LINUX) && defined(__s390__)) || \
+diff -uNr mozilla.orig/nsprpub/pr/include/md/_linux.cfg mozilla/nsprpub/pr/include/md/_linux.cfg
+--- mozilla.orig/nsprpub/pr/include/md/_linux.cfg 2004-03-08 21:18:20.000000000 -0600
++++ mozilla/nsprpub/pr/include/md/_linux.cfg 2005-04-16 13:02:50.000000000 -0500
+@@ -45,7 +45,52 @@
+
+ #define PR_AF_INET6 10 /* same as AF_INET6 */
+
+-#ifdef __powerpc__
++#ifdef __powerpc64__
++
++#undef IS_LITTLE_ENDIAN
++#define IS_BIG_ENDIAN 1
++#define IS_64
++
++#define PR_BYTES_PER_BYTE 1
++#define PR_BYTES_PER_SHORT 2
++#define PR_BYTES_PER_INT 4
++#define PR_BYTES_PER_INT64 8
++#define PR_BYTES_PER_LONG 8
++#define PR_BYTES_PER_FLOAT 4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD 8
++#define PR_BYTES_PER_DWORD 8
++
++#define PR_BITS_PER_BYTE 8
++#define PR_BITS_PER_SHORT 16
++#define PR_BITS_PER_INT 32
++#define PR_BITS_PER_INT64 64
++#define PR_BITS_PER_LONG 64
++#define PR_BITS_PER_FLOAT 32
++#define PR_BITS_PER_DOUBLE 64
++#define PR_BITS_PER_WORD 64
++
++#define PR_BITS_PER_BYTE_LOG2 3
++#define PR_BITS_PER_SHORT_LOG2 4
++#define PR_BITS_PER_INT_LOG2 5
++#define PR_BITS_PER_INT64_LOG2 6
++#define PR_BITS_PER_LONG_LOG2 6
++#define PR_BITS_PER_FLOAT_LOG2 5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2 6
++
++#define PR_ALIGN_OF_SHORT 2
++#define PR_ALIGN_OF_INT 4
++#define PR_ALIGN_OF_LONG 8
++#define PR_ALIGN_OF_INT64 8
++#define PR_ALIGN_OF_FLOAT 4
++#define PR_ALIGN_OF_DOUBLE 8
++#define PR_ALIGN_OF_POINTER 8
++#define PR_ALIGN_OF_WORD 8
++#define PR_BYTES_PER_WORD_LOG2 3
++#define PR_BYTES_PER_DWORD_LOG2 3
++
++#elif defined(__powerpc__)
+
+ #undef IS_LITTLE_ENDIAN
+ #define IS_BIG_ENDIAN 1
+diff -uNr mozilla.orig/nsprpub/pr/include/md/_linux.h mozilla/nsprpub/pr/include/md/_linux.h
+--- mozilla.orig/nsprpub/pr/include/md/_linux.h 2004-03-08 21:18:20.000000000 -0600
++++ mozilla/nsprpub/pr/include/md/_linux.h 2005-04-16 13:03:27.000000000 -0500
+@@ -43,7 +43,9 @@
+
+ #define PR_LINKER_ARCH "linux"
+ #define _PR_SI_SYSNAME "LINUX"
+-#ifdef __powerpc__
++#ifdef __powerpc64__
++#define _PR_SI_ARCHITECTURE "ppc64"
++#elif defined(__powerpc__)
+ #define _PR_SI_ARCHITECTURE "ppc"
+ #elif defined(__alpha)
+ #define _PR_SI_ARCHITECTURE "alpha"
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.8-amd64.patch b/net-libs/gecko-sdk/files/mozilla-1.7.8-amd64.patch
new file mode 100644
index 000000000000..96215fb292d5
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.8-amd64.patch
@@ -0,0 +1,71 @@
+--- gfx/src/freetype/nsFreeType.cpp 7 Feb 2004 15:22:30 -0000 1.24
++++ mozilla/gfx/src/freetype/nsFreeType.cpp 4 Mar 2005 19:59:53 -0000
+@@ -96,7 +96,7 @@
+ // Define the FreeType2 functions we resolve at run time.
+ // see the comment near nsFreeType2::DoneFace() for more info
+ //
+-#define NS_FT2_OFFSET(f) (int)&((nsFreeType2*)0)->f
++#define NS_FT2_OFFSET(f) (NS_PTR_TO_INT32(&((nsFreeType2*)0)->f))
+ FtFuncList nsFreeType2::FtFuncs [] = {
+ {"FT_Done_Face", NS_FT2_OFFSET(nsFT_Done_Face), PR_TRUE},
+ {"FT_Done_FreeType", NS_FT2_OFFSET(nsFT_Done_FreeType), PR_TRUE},
+--- netwerk/protocol/http/src/nsHttpConnectionMgr.cpp 1 Sep 2004 23:31:03 -0000 1.7.20.1
++++ mozilla/netwerk/protocol/http/src/nsHttpConnectionMgr.cpp 4 Mar 2005 19:59:57 -0000
+@@ -834,8 +834,8 @@
+ void
+ nsHttpConnectionMgr::OnMsgUpdateParam(nsresult status, void *param)
+ {
+- PRUint16 name = (PRUint32(param) & 0xFFFF0000) >> 16;
+- PRUint16 value = PRUint32(param) & 0x0000FFFF;
++ PRUint16 name = (NS_PTR_TO_INT32(param) & 0xFFFF0000) >> 16;
++ PRUint16 value = NS_PTR_TO_INT32(param) & 0x0000FFFF;
+
+ switch (name) {
+ case MAX_CONNECTIONS:
+--- widget/src/gtk2/nsDragService.cpp 30 Oct 2003 01:48:41 -0000 1.5
++++ mozilla/widget/src/gtk2/nsDragService.cpp 4 Mar 2005 20:00:01 -0000
+@@ -838,7 +838,7 @@
+ (GtkTargetEntry *)g_malloc(sizeof(GtkTargetEntry));
+ listTarget->target = g_strdup(gMimeListType);
+ listTarget->flags = 0;
+- listTarget->info = (guint)listAtom;
++ listTarget->info = (guint)(NS_PTR_TO_INT32(listAtom));
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("automatically adding target %s with id %ld\n",
+ listTarget->target, listAtom));
+@@ -877,7 +877,7 @@
+ (GtkTargetEntry *)g_malloc(sizeof(GtkTargetEntry));
+ listTarget->target = g_strdup(gTextUriListType);
+ listTarget->flags = 0;
+- listTarget->info = (guint)listAtom;
++ listTarget->info = (guint)NS_PTR_TO_INT32(listAtom);
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("automatically adding target %s with \
+ id %ld\n", listTarget->target, listAtom));
+@@ -914,7 +914,7 @@
+ (GtkTargetEntry *)g_malloc(sizeof(GtkTargetEntry));
+ target->target = g_strdup(flavorStr);
+ target->flags = 0;
+- target->info = (guint)atom;
++ target->info = (guint)NS_PTR_TO_INT32(atom);
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("adding target %s with id %ld\n",
+ target->target, atom));
+@@ -931,7 +931,7 @@
+ (GtkTargetEntry *)g_malloc(sizeof(GtkTargetEntry));
+ plainTarget->target = g_strdup(kTextMime);
+ plainTarget->flags = 0;
+- plainTarget->info = (guint)plainAtom;
++ plainTarget->info = (guint)NS_PTR_TO_INT32(plainAtom);
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("automatically adding target %s with \
+ id %ld\n", plainTarget->target, plainAtom));
+@@ -948,7 +948,7 @@
+ (GtkTargetEntry *)g_malloc(sizeof(GtkTargetEntry));
+ urlTarget->target = g_strdup(gMozUrlType);
+ urlTarget->flags = 0;
+- urlTarget->info = (guint)urlAtom;
++ urlTarget->info = (guint)NS_PTR_TO_INT32(urlAtom);
+ PR_LOG(sDragLm, PR_LOG_DEBUG,
+ ("automatically adding target %s with \
+ id %ld\n", urlTarget->target, urlAtom));
diff --git a/net-libs/gecko-sdk/files/mozilla-1.7.8-objectframefix.diff b/net-libs/gecko-sdk/files/mozilla-1.7.8-objectframefix.diff
new file mode 100644
index 000000000000..b03b855eec47
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-1.7.8-objectframefix.diff
@@ -0,0 +1,21 @@
+--- layout/html/base/src/nsObjectFrame.cpp.orig 2005-05-15 00:40:19.000000000 +0200
++++ layout/html/base/src/nsObjectFrame.cpp 2005-05-15 00:43:44.000000000 +0200
+@@ -1720,7 +1720,7 @@
+ break;
+
+ nsHTMLContainerFrame::CreateViewForFrame(divFrame, this, PR_FALSE);
+- mFrames.AppendFrame(this, divFrame);
++ // mFrames.AppendFrame(this, divFrame);
+
+ rv = NS_NewImageFrame(shell, &imgFrame);
+ if (NS_FAILED(rv))
+@@ -1756,6 +1756,9 @@
+
+ if (textFrame)
+ textFrame->Destroy(aPresContext);
++ } else {
++ // Creation of all our anonymous content succeeded.
++ mFrames.AppendFrame(this, divFrame);
+ }
+
+ nsCOMPtr<nsISupportsArray> array;
diff --git a/net-libs/gecko-sdk/files/mozilla-hppa.patch b/net-libs/gecko-sdk/files/mozilla-hppa.patch
new file mode 100644
index 000000000000..d874ae1c4d5c
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-hppa.patch
@@ -0,0 +1,232 @@
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:37:00.503842544 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2004-12-21 13:41:49.439917584 +0000
+@@ -167,6 +167,19 @@
+ endif
+ endif
+
++#
++# Linux/HPPA/gcc
++#
++ifeq ($(OS_ARCH),Linux)
++ifneq (,$(filter parisc parisc64,$(OS_TEST)))
++#ifeq ($(CC),gcc) # Do not check for gcc since there is only this compiler on linux for hppa
++CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
++ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
++#endif
++endif
++endif
++
++
+ ######################################################################
+ # M68k
+ ######################################################################
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 2004-12-21 13:39:03.390160984 +0000
+@@ -0,0 +1,128 @@
++
++ .LEVEL 1.1
++ .text
++ .align 4
++
++framesz:
++ .equ 128
++
++; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex,
++; PRUint32 paramCount, nsXPTCVariant* params);
++
++.globl XPTC_InvokeByIndex
++ .type XPTC_InvokeByIndex, @function
++
++
++XPTC_InvokeByIndex:
++ .PROC
++ .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
++ .ENTRY
++
++ ; frame marker takes 48 bytes,
++ ; register spill area takes 8 bytes,
++ ; local stack area takes 72 bytes result in 128 bytes total
++
++ STW %rp,-20(%sp)
++ STW,MA %r3,128(%sp)
++
++ LDO -framesz(%r30),%r28
++ STW %r28,-4(%r30) ; save previous sp
++ STW %r19,-32(%r30)
++
++ STW %r26,-36-framesz(%r30) ; save argument registers in
++ STW %r25,-40-framesz(%r30) ; in PREVIOUS frame
++ STW %r24,-44-framesz(%r30) ;
++ STW %r23,-48-framesz(%r30) ;
++
++; B,L .+8,%r2
++; ADDIL L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1
++; ; LDO R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1
++;$PIC_pcrel$1
++; LDSID (%r1),%r31
++;$PIC_pcrel$2
++; MTSP %r31,%sr0
++
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
++ BL invoke_count_bytes,%r31
++ COPY %r31,%r2
++
++ CMPIB,>= 0,%r28, .+76
++ COPY %r30,%r3 ; copy stack ptr to saved stack ptr
++ ADD %r30,%r28,%r30 ; extend stack frame
++ LDW -4(%r3),%r28 ; move frame
++ STW %r28,-4(%r30)
++ LDW -8(%r3),%r28
++ STW %r28,-8(%r30)
++ LDW -12(%r3),%r28
++ STW %r28,-12(%r30)
++ LDW -16(%r3),%r28
++ STW %r28,-16(%r30)
++ LDW -20(%r3),%r28
++ STW %r28,-20(%r30)
++ LDW -24(%r3),%r28
++ STW %r28,-24(%r30)
++ LDW -28(%r3),%r28
++ STW %r28,-28(%r30)
++ LDW -32(%r3),%r28
++ STW %r28,-32(%r30)
++
++ LDO -40(%r30),%r26 ; load copy address
++ LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments
++ LDW -48-framesz(%r3),%r24 ;
++
++ LDW -32(%r30),%r19 ; shared lib call destroys r19; reload
++; B,L .+8,%r2
++; ADDIL L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1
++; LDO R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1
++;$PIC_pcrel$3
++; LDSID (%r1),%r31
++;$PIC_pcrel$4
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
++ BL invoke_copy_to_stack,%r31
++ COPY %r31,%r2
++
++ LDO -48(%r30),%r20
++ EXTRW,U,= %r28,31,1,%r22
++ FLDD 0(%r20),%fr7 ; load double arg 1
++ EXTRW,U,= %r28,30,1,%r22
++ FLDW 8(%r20),%fr5L ; load float arg 1
++ EXTRW,U,= %r28,29,1,%r22
++ FLDW 4(%r20),%fr6L ; load float arg 2
++ EXTRW,U,= %r28,28,1,%r22
++ FLDW 0(%r20),%fr7L ; load float arg 3
++
++ LDW -36-framesz(%r3),%r26 ; load ptr to 'that'
++ LDW -40(%r30),%r25 ; load the rest of dispatch argument registers
++ LDW -44(%r30),%r24
++ LDW -48(%r30),%r23
++
++ LDW -36-framesz(%r3),%r20 ; load vtable addr
++ LDW -40-framesz(%r3),%r28 ; load index
++ LDW 0(%r20),%r20 ; follow vtable
++; LDO 0(%r20),%r20 ; offset vtable by 16 bytes (g++: 8, aCC: 16)
++ SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry
++ LDW 0(%r28),%r22 ; load vtable entry
++
++; B,L .+8,%r2
++; ADDIL L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1
++; LDO R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1
++;$PIC_pcrel$5
++; LDSID (%r1),%r31
++;$PIC_pcrel$6
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
++ BL $$dyncall,%r31
++ COPY %r31,%r2
++
++ LDW -32(%r30),%r19
++ COPY %r3,%r30 ; restore saved stack ptr
++
++ LDW -148(%sp),%rp
++ LDWM -128(%sp),%r3
++ BV,N (%rp)
++ NOP
++ .EXIT
++ .PROCEND ;in=23,24,25,26;
++ .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
++
+diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 1970-01-01 00:00:00.000000000 +0000
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 2004-12-21 13:39:03.392160680 +0000
+@@ -0,0 +1,73 @@
++ .LEVEL 1.1
++ .TEXT
++ .ALIGN 4
++
++curframesz:
++ .EQU 128
++
++
++; SharedStub has stack size of 128 bytes
++
++lastframesz:
++ .EQU 64
++
++; the StubN C++ function has a small stack size of 64 bytes
++
++
++.globl SharedStub
++ .type SharedStub, @function
++
++SharedStub:
++ .PROC
++ .CALLINFO CALLER,FRAME=80,SAVE_RP
++
++ .ENTRY
++ STW %rp,-20(%sp)
++ LDO 128(%sp),%sp
++
++ STW %r19,-32(%r30)
++ STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame
++
++ LDO -80(%r30),%r28
++ FSTD,MA %fr5,8(%r28) ; save darg0
++ FSTD,MA %fr7,8(%r28) ; save darg1
++ FSTW,MA %fr4L,4(%r28) ; save farg0
++ FSTW,MA %fr5L,4(%r28) ; save farg1
++ FSTW,MA %fr6L,4(%r28) ; save farg2
++ FSTW,MA %fr7L,4(%r28) ; save farg3
++
++ ; Former value of register 26 is already properly saved by StubN,
++ ; but register 25-23 are not because of the arguments mismatch
++ STW %r25,-40-curframesz-lastframesz(%r30) ; save r25
++ STW %r24,-44-curframesz-lastframesz(%r30) ; save r24
++ STW %r23,-48-curframesz-lastframesz(%r30) ; save r23
++ COPY %r26,%r25 ; method index is arg1
++ LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
++ LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
++ LDO -80(%r30),%r23 ; floating args is arg3
++
++; BL .+8,%r2
++; ADDIL L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
++; LDO R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
++;$PIC_pcrel$0
++; LDSID (%r1),%r31
++;$PIC_pcrel$1
++; MTSP %r31,%sr0
++ .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
++ BL PrepareAndDispatch, %r31
++ COPY %r31,%r2
++
++ LDW -32(%r30),%r19
++
++ LDW -148(%sp),%rp
++ LDO -128(%sp),%sp
++
++
++ BV,N (%rp)
++ NOP
++ NOP
++
++ .EXIT
++ .PROCEND ;in=26;out=28;
++
++ .SIZE SharedStub, .-SharedStub
diff --git a/net-libs/gecko-sdk/files/mozilla-stackgrowth.patch b/net-libs/gecko-sdk/files/mozilla-stackgrowth.patch
new file mode 100644
index 000000000000..af226b28ed9c
--- /dev/null
+++ b/net-libs/gecko-sdk/files/mozilla-stackgrowth.patch
@@ -0,0 +1,37 @@
+--- js/src/jscpucfg.c 15 Nov 2003 00:10:56 -0000 3.21
++++ js/src/jscpucfg.c 22 Oct 2004 05:45:36 -0000
+@@ -153,19 +153,34 @@ static int Log2(unsigned int n)
+ */
+ static void BitsPerByte(void)
+ {
+ bpb = 8;
+ }
+
++#ifdef __GNUC__
++#if (__GNUC__ > 2)
++__attribute__((noinline))
++#endif
++static int StackGrowthDirection(int *dummy1addr)
++{
++ int *dummy2 = alloca (sizeof (int));
++
++ return (dummy2 < dummy1addr) ? -1 : 1;
++}
++
++#else /* __GNUC__ */
++
+ static int StackGrowthDirection(int *dummy1addr)
+ {
+ int dummy2;
+
+ return (&dummy2 < dummy1addr) ? -1 : 1;
+ }
+
++#endif /* __GNUC__ */
++
+ int main(int argc, char **argv)
+ {
+ int sizeof_char, sizeof_short, sizeof_int, sizeof_int64, sizeof_long,
+ sizeof_float, sizeof_double, sizeof_word, sizeof_dword;
+ int bits_per_int64_log2, align_of_short, align_of_int, align_of_long,
+ align_of_int64, align_of_float, align_of_double, align_of_pointer,