diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2005-09-26 01:01:15 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2005-09-26 01:01:15 +0000 |
commit | 0de8fa520a3316786549d437e581193adad0c801 (patch) | |
tree | 806ff8961e3dd7ee84144b328aa485e2d65d31b6 /net-libs/gecko-sdk/files | |
parent | Small cleanup. (diff) | |
download | gentoo-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')
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"), +- ×); ++ (nsDependentString *)×); + } + + 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, |