From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1IjFxc-00074E-Us for garchives@archives.gentoo.org; Sat, 20 Oct 2007 15:09:58 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.14.1/8.14.0) with SMTP id l9KExFoN027056; Sat, 20 Oct 2007 14:59:15 GMT Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by robin.gentoo.org (8.14.1/8.14.0) with ESMTP id l9KExDwh027003 for ; Sat, 20 Oct 2007 14:59:13 GMT Received: from stork.gentoo.org (stork.gentoo.org [64.127.104.133]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id ED186654B7 for ; Sat, 20 Oct 2007 14:59:12 +0000 (UTC) Received: from armin76 by stork.gentoo.org with local (Exim 4.60) (envelope-from ) id 1IjFnD-00083k-W1 for gentoo-commits@lists.gentoo.org; Sat, 20 Oct 2007 14:59:12 +0000 From: "Raul Porcel (armin76)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, armin76@gentoo.org Subject: [gentoo-commits] gentoo commit in src/patchsets/seamonkey/1.1.5: 000_flex-configure-LANG.patch 001_firefox-1.0-prdtoa.patch 002_seamonkey-disable-visibility.patch 003_firefox-arm.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.1a2-ia64.patch 007_seamonkey-1.0.1-dumpstack.patch 008_seamonkey-gentoo-pkgconfig.patch 020_firefox-0.7.3-default-plugin-less-annoying.patch 021_seamonkey-1.1-include-cairo-libs.patch 030_pango-cairo-1.patch 031_firefox-1.1-uriloader-1.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_mozilla-rpath-3.patch 064_mozilla-1.7.10-nsplugins-v2.patch 101_thunderbird-0.7.3-gnome-uriloader.patch 220_seamonkey-gentoo-homepage.patch 225_mozilla-nspr-packages.patch 301_mozilla-1.7.3-gnome-vfs-default-app.patch 303_mozilla-1.7.13-as-needed.patch 304_mozilla-1.7.5-g-application-name.patch X-VCS-Repository: gentoo X-VCS-Files: 000_flex-configure-LANG.patch 001_firefox-1.0-prdtoa.patch 002_seamonkey-disable-visibility.patch 003_firefox-arm.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.1a2-ia64.patch 007_seamonkey-1.0.1-dumpstack.patch 008_seamonkey-gentoo-pkgconfig.patch 020_firefox-0.7.3-default-plugin-less-annoying.patch 021_seamonkey-1.1-include-cairo-libs.patch 030_pango-cairo-1.patch 031_firefox-1.1-uriloader-1.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_mozilla-rpath-3.patch 064_mozilla-1.7.10-nsplugins-v2.patch 101_thunderbird-0.7.3-gnome-uriloader.patch 220_seamonkey-gentoo-homepage.patch 225_mozilla-nspr-packages.patch 301_mozilla-1.7.3-gnome-vfs-default-app.patch 303_mozilla-1.7.13-as-needed.patch 304_mozilla-1.7.5-g-application-name.patch X-VCS-Directories: src/patchsets/seamonkey/1.1.5 X-VCS-Committer: armin76 X-VCS-Committer-Name: Raul Porcel Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Message-Id: Sender: Raul Porcel Date: Sat, 20 Oct 2007 14:59:11 +0000 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@gentoo.org X-Archives-Salt: f34d4932-3571-4ddf-9a07-a9b2879dcc4c X-Archives-Hash: 9ae7e6c843819bdd6f47b9ca9f02e81c armin76 07/10/20 14:59:11 Added: 000_flex-configure-LANG.patch 001_firefox-1.0-prdtoa.patch 002_seamonkey-disable-visibility.patch 003_firefox-arm.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.1a2-ia64.patch 007_seamonkey-1.0.1-dumpstack.patch 008_seamonkey-gentoo-pkgconfig.patch 020_firefox-0.7.3-default-plugin-less-annoying.patch 021_seamonkey-1.1-include-cairo-libs.patch 030_pango-cairo-1.patch 031_firefox-1.1-uriloader-1.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_mozilla-rpath-3.patch 064_mozilla-1.7.10-nsplugins-v2.patch 101_thunderbird-0.7.3-gnome-uriloader.patch 220_seamonkey-gentoo-homepage.patch 225_mozilla-nspr-packages.patch 301_mozilla-1.7.3-gnome-vfs-default-app.patch 303_mozilla-1.7.13-as-needed.patch 304_mozilla-1.7.5-g-application-name.patch Log: Add patches for 1.1.5 Revision Changes Path 1.1 src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch?rev=1.1&content-type=text/plain Index: 000_flex-configure-LANG.patch =================================================================== The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in option parsing, it may break. http://bugs.gentoo.org/103483 --- configure +++ configure @@ -54,6 +54,16 @@ infodir='${prefix}/info' mandir='${prefix}/man' +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= @@ -452,16 +463,6 @@ esac done -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. 1.1 src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch?rev=1.1&content-type=text/plain Index: 001_firefox-1.0-prdtoa.patch =================================================================== Index: nsprpub/pr/src/misc/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v retrieving revision 1.15.2.2 diff -u -r1.15.2.2 Makefile.in --- nsprpub/pr/src/misc/Makefile.in 6 Jun 2003 03:09:17 -0000 1.15.2.2 +++ nsprpub/pr/src/misc/Makefile.in 19 Nov 2004 00:58:35 -0000 @@ -82,6 +82,15 @@ include $(topsrcdir)/config/rules.mk +ifneq (,$(filter Linuxs390 Linuxs390x,$(OS_ARCH)$(OS_TEST))) + +NONOPT_CFLAGS=$(filter-out -O%, $(CFLAGS)) + +$(OBJDIR)/prdtoa.$(OBJ_SUFFIX): prdtoa.c + @$(MAKE_OBJDIR) + $(CC) -o $@ -c $(NONOPT_CFLAGS) -ffloat-store $< +endif + # Prevent floating point errors caused by MSVC 6.0 Processor Pack # optimizations (bug 207421). This disables optimizations that # could change the precision of floating-point calculations for 1.1 src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch?rev=1.1&content-type=text/plain Index: 002_seamonkey-disable-visibility.patch =================================================================== Index: mozilla/configure.in =================================================================== RCS file: /cvsroot/mozilla/configure.in,v retrieving revision 1.1503.2.15.2.3 diff -u -r1.1503.2.15.2.3 configure.in --- mozilla/configure.in 10 Jan 2006 03:11:42 -0000 1.1503.2.15.2.3 +++ mozilla/configure.in 21 Jan 2006 09:00:24 -0000 @@ -2383,7 +2383,7 @@ dnl Check for .hidden assembler directive and visibility attribute. dnl Borrowed from glibc configure.in dnl =============================================================== -if test "$GNU_CC"; then +if /bin/false; then AC_CACHE_CHECK(for visibility(hidden) attribute, ac_cv_visibility_hidden, [cat > conftest.c < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)) +/* This tells gcc3.4+ not to optimize away symbols. + * @see http://gcc.gnu.org/gcc-3.4/changes.html + */ +#define DONT_DROP_OR_WARN __attribute__((used)) +#else +/* This tells older gccs not to warn about unused vairables. + * @see http://docs.freebsd.org/info/gcc/gcc.info.Variable_Attributes.html + */ +#define DONT_DROP_OR_WARN __attribute__((unused)) +#endif + /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */ -static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch"); +static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch") +DONT_DROP_OR_WARN; static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) { #define PARAM_BUFFER_COUNT 16 nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; nsXPTCMiniVariant* dispatchParams = NULL; 1.1 src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch?rev=1.1&content-type=text/plain Index: 004_mozilla-hppa.patch =================================================================== 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 1.1 src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch?rev=1.1&content-type=text/plain Index: 005_mozilla-firefox-1.1a2-ia64.patch =================================================================== --- mozilla.orig/extensions/transformiix/source/base/Double.cpp +++ mozilla/extensions/transformiix/source/base/Double.cpp @@ -75,14 +75,7 @@ #define CPU_IS_ARM #endif -#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2 -/** - * This version of the macros is safe for the alias optimizations - * that gcc does, but uses gcc-specific extensions. - */ - typedef union txdpun { - PRFloat64 d; struct { #if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM) PRUint32 lo, hi; @@ -90,8 +83,14 @@ PRUint32 hi, lo; #endif } s; + PRFloat64 d; } txdpun; +#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2 +/** + * This version of the macros is safe for the alias optimizations + * that gcc does, but uses gcc-specific extensions. + */ #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; })) #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; })) @@ -117,20 +116,20 @@ //-- Initialize Double related constants #ifdef IS_BIG_ENDIAN -const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, - 0xffffffff}; -const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0}; -const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}; +const txdpun nanMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, + 0xffffffff}; +const txdpun infMask = {TX_DOUBLE_HI32_EXPMASK, 0}; +const txdpun negInfMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}; #else -const PRUint32 nanMask[2] = {0xffffffff, - TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK}; -const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK}; -const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT}; +const txdpun nanMask = {0xffffffff, + TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK}; +const txdpun infMask = {0, TX_DOUBLE_HI32_EXPMASK}; +const txdpun negInfMask = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT}; #endif -const double Double::NaN = *((double*)nanMask); -const double Double::POSITIVE_INFINITY = *((double*)infMask); -const double Double::NEGATIVE_INFINITY = *((double*)negInfMask); +const double Double::NaN = nanMask.d; +const double Double::POSITIVE_INFINITY = infMask.d; +const double Double::NEGATIVE_INFINITY = negInfMask.d; /* * Determines whether the given double represents positive or negative 1.1 src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch?rev=1.1&content-type=text/plain Index: 007_seamonkey-1.0.1-dumpstack.patch =================================================================== --- mozilla/xpcom/base/nsStackFrameUnix.cpp.prestackdisable 2006-04-14 02:30:15.000000000 +0200 +++ mozilla/xpcom/base/nsStackFrameUnix.cpp 2006-04-14 02:31:02.000000000 +0200 @@ -88,6 +88,9 @@ void DumpStackToFile(FILE* aStream) { + fprintf(aStream, "Stacktrace disabled for now.\n" + "See https://bugzilla.mozilla.org/show_bug.cgi?id=323853\n"); +#if 0 // Stack walking code courtesy Kipp's "leaky". // Get the frame pointer @@ -128,6 +131,7 @@ symbol, off, info.dli_fname, foff); } } +#endif } #elif defined(__sun) && (defined(__sparc) || defined(sparc) || defined(__i386) || defined(i386)) 1.1 src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch?rev=1.1&content-type=text/plain Index: 008_seamonkey-gentoo-pkgconfig.patch =================================================================== --- mozilla/config/autoconf.mk.in 2005-08-17 19:17:17.000000000 +0200 +++ mozilla/config/autoconf.mk.in 2005-11-17 14:23:11.000000000 +0100 @@ -54,13 +54,13 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ -includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +includedir = $(mozappdir)/include libdir = @libdir@ datadir = @datadir@ mandir = @mandir@ -idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +idldir = $(mozappdir)/idl -mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +mozappdir = $(libdir)/$(MOZ_APP_NAME) mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION) mrelibdir = $(mredir)/lib --- mozilla/build/unix/Makefile.in 2005-07-07 20:24:39.000000000 +0200 +++ mozilla/build/unix/Makefile.in 2005-11-17 21:41:47.000000000 +0100 @@ -61,6 +61,19 @@ NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version) endif +# Hack to make sure that mozilla-nss.pc has the proper nss dependencies +ifdef MOZ_NATIVE_NSS +FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags) +FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs) +NSS_NAME=nss +NSS_VERSION=$(shell $(NSS_CONFIG) --version) +else +FULL_NSS_CFLAGS=-I$(includedir)/nss +FULL_NSS_LIBS=-L$(mozappdir)/nss -lnss3 -lsmime3 -lssl3 -lsoftokn3 +NSS_NAME=$(MOZ_APP_NAME)-nss +NSS_VERSION=$(MOZ_APP_VERSION) +endif + ifdef MOZ_ENABLE_GTK SUPERWIN_LIBS=-lgtksuperwin endif @@ -82,7 +82,8 @@ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \ -e "s|%DEFS%|$(_DEFS)|" \ -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \ - -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" > $@ + -e 's|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|' \ + -e 's|\(echo -L.*\)\($$\)|\1 -Wl,-R$(mozappdir)\2|' > $@ $(MOZ_APP_NAME)-%.pc : mozilla-%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk cat $< | sed \ @@ -99,7 +112,12 @@ -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \ -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \ -e "s|%NSPR_NAME%|$(NSPR_NAME)|" \ - -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@ + -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \ + -e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \ + -e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \ + -e "s|%NSS_NAME%|$(NSS_NAME)|" \ + -e "s|%NSS_VERSION%|$(NSS_VERSION)|" \ + -e "s|\(^Libs: -L.*\)|\1 -Wl,-R\$$\{libdir}|" > $@ libs:: $(MOZ_APP_NAME)-config chmod 755 $< --- mozilla/build/unix/mozilla-js.pc.in.orig 2005-07-05 23:21:52.000000000 +0000 +++ mozilla/build/unix/mozilla-js.pc.in 2006-01-15 10:03:00.000000000 +0000 @@ -6,6 +6,6 @@ Name: JavaScript Description: The Mozilla JavaScript Library Version: %MOZILLA_VERSION% -Requires: %NSPR_NAME% >= %NSPR_VERSION% +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION% Libs: -L${libdir} -lmozjs Cflags: -I${includedir}/js -DXP_UNIX --- mozilla/build/unix/mozilla-nspr.pc.in.orig 2005-07-05 23:21:52.000000000 +0000 +++ mozilla/build/unix/mozilla-nspr.pc.in 2006-01-15 10:01:16.000000000 +0000 @@ -1,12 +1,5 @@ -prefix=%prefix% -exec_prefix=%exec_prefix% -libdir=%libdir% -includedir=%includedir% - Name: NSPR Description: The Netscape Portable Runtime Version: %NSPR_VERSION% -Libs: %FULL_NSPR_LIBS% -Cflags: %FULL_NSPR_CFLAGS% - +Requires: %NSPR_NAME% >= %NSPR_VERSION% --- mozilla/build/unix/mozilla-xpcom.pc.in.orig 2005-07-05 23:21:52.000000000 +0000 +++ mozilla/build/unix/mozilla-xpcom.pc.in 2006-01-15 10:02:34.000000000 +0000 @@ -7,6 +7,6 @@ Name: XPCOM Description: The Mozilla Cross Platform Component Library Version: %MOZILLA_VERSION% -Requires: %NSPR_NAME% >= %NSPR_VERSION% +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION% Libs: -L${libdir} -lxpcom Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string --- mozilla/build/unix/mozilla-nss.pc.in.orig 2005-07-05 23:21:52.000000000 +0000 +++ mozilla/build/unix/mozilla-nss.pc.in 2006-01-15 10:26:13.000000000 +0000 @@ -1,11 +1,4 @@ -prefix=%prefix% -exec_prefix=%exec_prefix% -libdir=%libdir% -includedir=%includedir% - Name: NSS Description: Mozilla Network Security Services -Version: %MOZILLA_VERSION% -Requires: %NSPR_NAME% >= %NSPR_VERSION% -Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3 -Cflags: -I${includedir}/nss +Version: %NSS_VERSION% +Requires: %NSS_NAME% >= %NSS_VERSION% 1.1 src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch?rev=1.1&content-type=text/plain Index: 020_firefox-0.7.3-default-plugin-less-annoying.patch =================================================================== --- mozilla/modules/plugin/samples/default/unix/npshell.c.foo Tue May 7 14:18:45 2002 +++ mozilla/modules/plugin/samples/default/unix/npshell.c Tue May 7 14:49:55 2002 @@ -224,7 +224,7 @@ This->depth = ws_info->depth; This->colormap = ws_info->colormap; makePixmap(This); - makeWidget(This); + /* makeWidget(This); */ } return NPERR_NO_ERROR; } --- mozilla/modules/plugin/samples/default/unix/nullplugin.c.foo Tue May 7 14:18:45 2002 +++ mozilla/modules/plugin/samples/default/unix/nullplugin.c Tue May 7 14:48:33 2002 @@ -70,6 +70,8 @@ gtk_object_remove_data(GTK_OBJECT(button), DIALOGID); +#if 0 + if (This->pluginsFileUrl != NULL) { /* Get the JavaScript command string */ @@ -110,6 +112,7 @@ NPN_MemFree(url); } } +#endif destroyWidget(This); } @@ -265,14 +268,14 @@ GTK_DIALOG(dialogWindow)->action_area); gtk_object_set_data(GTK_OBJECT(okButton), DIALOGID, dialogWindow); - cancelButton= AddWidget(gtk_button_new_with_label (CANCEL_BUTTON), - GTK_DIALOG(dialogWindow)->action_area); + /* cancelButton= AddWidget(gtk_button_new_with_label (CANCEL_BUTTON), + GTK_DIALOG(dialogWindow)->action_area); */ gtk_signal_connect (GTK_OBJECT(okButton), "clicked", GTK_SIGNAL_FUNC(DialogOKClicked), This); - gtk_signal_connect (GTK_OBJECT(cancelButton), "clicked", - GTK_SIGNAL_FUNC(DialogCancelClicked), This); + /* gtk_signal_connect (GTK_OBJECT(cancelButton), "clicked", + GTK_SIGNAL_FUNC(DialogCancelClicked), This); */ /* hookup to when the dialog is destroyed */ gtk_signal_connect(GTK_OBJECT(dialogWindow), "destroy", --- mozilla/modules/plugin/samples/default/unix/nullplugin.h.foo Tue May 7 14:46:48 2002 +++ mozilla/modules/plugin/samples/default/unix/nullplugin.h Tue May 7 14:47:08 2002 @@ -53,9 +53,7 @@ #define JVM_MINETYPE "application/x-java-vm" #define MESSAGE "\ This page contains information of a type (%s) that can\n\ -only be viewed with the appropriate Plug-in.\n\ -\n\ -Click OK to download Plugin." +only be viewed with the appropriate Plug-in." #define GET 1 #define REFRESH 2 1.1 src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch?rev=1.1&content-type=text/plain Index: 021_seamonkey-1.1-include-cairo-libs.patch =================================================================== --- mozilla/configure.in.orig 2007-01-11 19:45:06.000000000 +0100 +++ mozilla/configure.in 2007-01-23 21:18:26.905154656 +0100 @@ -6730,7 +6730,7 @@ else PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION) MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS - MOZ_CAIRO_LIBS=$CAIRO_LIBS + MOZ_CAIRO_LIBS="$CAIRO_LIBS -lXrender $XLIBS -lfontconfig -lfreetype" fi fi 1.1 src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch?rev=1.1&content-type=text/plain Index: 030_pango-cairo-1.patch =================================================================== --- config/autoconf.mk.in.old 2007-01-20 21:19:33.000000000 +0100 +++ config/autoconf.mk.in 2007-01-20 21:20:16.000000000 +0100 @@ -479,6 +479,7 @@ MOZ_ENABLE_PANGO = @MOZ_ENABLE_PANGO@ MOZ_PANGO_CFLAGS = @MOZ_PANGO_CFLAGS@ MOZ_PANGO_LIBS = @MOZ_PANGO_LIBS@ +MOZ_PANGOCAIRO = @MOZ_PANGOCAIRO@ MOZ_EXTRA_X11CONVERTERS = @MOZ_EXTRA_X11CONVERTERS@ --- gfx/src/gtk/mozilla-decoder.cpp.old 2007-01-20 21:21:30.000000000 +0100 +++ gfx/src/gtk/mozilla-decoder.cpp 2007-01-20 21:24:19.000000000 +0100 @@ -40,6 +40,11 @@ #define PANGO_ENABLE_ENGINE #include "mozilla-decoder.h" +#ifdef MOZ_PANGOCAIRO +#include +#else +#include +#endif #include #include #include @@ -213,8 +218,11 @@ printf("unknown suffix used for mapping\n"); } } - +#ifdef MOZ_PANGOCAIRO + pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_cairo_font_map_get_default()), +#else pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(fontmap), +#endif mozilla_find_decoder, NULL, NULL); --- configure.in.old 2007-01-20 21:25:20.000000000 +0100 +++ configure.in 2007-01-20 21:32:21.000000000 +0100 @@ -3923,8 +3923,8 @@ MOZ_ENABLE_GTK2=1 MOZ_ENABLE_XREMOTE=1 MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-} - TK_CFLAGS='$(MOZ_GTK2_CFLAGS)' - TK_LIBS='$(MOZ_GTK2_LIBS)' + TK_CFLAGS='$(MOZ_GTK2_CFLAGS) $(MOZ_PANGO_CFLAGS)' + TK_LIBS='$(MOZ_GTK2_LIBS) $(MOD_PANGO_LIBS)' AC_DEFINE(MOZ_WIDGET_GTK2) ;; @@ -4581,12 +4581,14 @@ then AC_DEFINE(MOZ_ENABLE_XFT) PKG_CHECK_MODULES(MOZ_XFT, xft) - PKG_CHECK_MODULES(_PANGOCHK, pango >= 1.1.0) + PKG_CHECK_MODULES(MOZ_PANGO, pangoxft >= 1.1.0 pangox) fi AC_SUBST(MOZ_ENABLE_XFT) AC_SUBST(MOZ_XFT_CFLAGS) AC_SUBST(MOZ_XFT_LIBS) +AC_SUBST(MOZ_PANGO_CFLAGS) +AC_SUBST(MOZ_PANGO_LIBS) dnl ======================================================== dnl = pango font rendering @@ -4600,8 +4602,17 @@ then AC_DEFINE(MOZ_ENABLE_PANGO) PKG_CHECK_MODULES(MOZ_PANGO, pangoxft >= 1.6.0) + PKG_CHECK_MODULES(PANGOCAIRO_CHK, pangocairo >= 1.10.0, + [ + MOZ_PANGOCAIRO=1 + AC_DEFINE(MOZ_PANGOCAIRO) + MOZ_PANGO_CFLAGS="$PANGOCAIRO_CHK_CFLAGS $MOZ_PANGO_CFLAGS" + MOZ_PANGO_LIBS="$PANGOCAIRO_CHK_LIBS $MOZ_PANGO_LIBS" + ], + [:]) AC_SUBST(MOZ_ENABLE_PANGO) + AC_SUBST(MOZ_PANGOCAIRO) AC_SUBST(MOZ_PANGO_CFLAGS) AC_SUBST(MOZ_PANGO_LIBS) fi 1.1 src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch?rev=1.1&content-type=text/plain Index: 031_firefox-1.1-uriloader-1.patch =================================================================== Index: uriloader/exthandler/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/uriloader/exthandler/Makefile.in,v retrieving revision 1.60 diff -d -u -p -r1.60 Makefile.in --- uriloader/exthandler/Makefile.in 2 May 2005 16:30:03 -0000 1.60 +++ uriloader/exthandler/Makefile.in 21 Jul 2005 03:07:39 -0000 @@ -102,7 +102,7 @@ endif LOCAL_INCLUDES = -I$(srcdir) ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) -OSHELPER += nsGNOMERegistry.cpp +OSHELPER += nsMIMEInfoUnix.cpp nsGNOMERegistry.cpp endif ifeq ($(MOZ_WIDGET_TOOLKIT),beos) Index: uriloader/exthandler/unix/nsGNOMERegistry.cpp =================================================================== RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp,v retrieving revision 1.10 diff -d -u -p -r1.10 nsGNOMERegistry.cpp --- uriloader/exthandler/unix/nsGNOMERegistry.cpp 16 Oct 2004 13:46:17 -0000 1.10 +++ uriloader/exthandler/unix/nsGNOMERegistry.cpp 21 Jul 2005 03:07:40 -0000 @@ -42,7 +42,7 @@ #include "nsString.h" #include "nsIComponentManager.h" #include "nsILocalFile.h" -#include "nsMIMEInfoImpl.h" +#include "nsMIMEInfoUnix.h" #include "nsAutoPtr.h" #include @@ -56,12 +56,12 @@ typedef struct _GConfClient GConfClient; typedef struct _GnomeProgram GnomeProgram; typedef struct _GnomeModuleInfo GnomeModuleInfo; -typedef struct { +struct GnomeVFSMimeApplication { char *id; char *name; char *command; /* there is more here, but we don't need it */ -} GnomeVFSMimeApplication; +}; typedef GConfClient * (*_gconf_client_get_default_fn)(); typedef gchar * (*_gconf_client_get_string_fn)(GConfClient *, @@ -264,7 +264,7 @@ nsGNOMERegistry::GetAppDescForScheme(con } -/* static */ already_AddRefed +/* static */ already_AddRefed nsGNOMERegistry::GetFromExtension(const char *aFileExt) { if (!gconfLib) @@ -286,7 +286,7 @@ nsGNOMERegistry::GetFromExtension(const return GetFromType(mimeType); } -/* static */ already_AddRefed +/* static */ already_AddRefed nsGNOMERegistry::GetFromType(const char *aMIMEType) { if (!gconfLib) @@ -296,9 +296,11 @@ nsGNOMERegistry::GetFromType(const char if (!handlerApp) return nsnull; - nsRefPtr mimeInfo = new nsMIMEInfoImpl(aMIMEType); + nsRefPtr mimeInfo = new nsMIMEInfoUnix(aMIMEType); NS_ENSURE_TRUE(mimeInfo, nsnull); + mimeInfo->SetDefaultGnomeVFSMimeApplication(handlerApp); + // Get the list of extensions and append then to the mimeInfo. GList *extensions = _gnome_vfs_mime_get_extensions_list(aMIMEType); for (GList *extension = extensions; extension; extension = extension->next) @@ -320,11 +322,21 @@ nsGNOMERegistry::GetFromType(const char return nsnull; } - gchar *commandPath = g_find_program_in_path(nativeCommand); + gchar **argv; + gboolean res = g_shell_parse_argv(nativeCommand, NULL, &argv, NULL); + if (!res) { + NS_ERROR("Could not convert helper app command to filesystem encoding"); + _gnome_vfs_mime_application_free(handlerApp); + return nsnull; + } + + gchar *commandPath = g_find_program_in_path(argv[0]); g_free(nativeCommand); + g_strfreev(argv); if (!commandPath) { + NS_WARNING("could not find command in path"); _gnome_vfs_mime_application_free(handlerApp); return nsnull; } @@ -342,7 +354,7 @@ nsGNOMERegistry::GetFromType(const char _gnome_vfs_mime_application_free(handlerApp); - nsMIMEInfoBase* retval; + nsMIMEInfoUnix* retval; NS_ADDREF((retval = mimeInfo)); return retval; } Index: uriloader/exthandler/unix/nsGNOMERegistry.h =================================================================== RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.h,v retrieving revision 1.3 diff -d -u -p -r1.3 nsGNOMERegistry.h --- uriloader/exthandler/unix/nsGNOMERegistry.h 16 Oct 2004 13:46:17 -0000 1.3 +++ uriloader/exthandler/unix/nsGNOMERegistry.h 21 Jul 2005 03:07:40 -0000 @@ -35,10 +35,13 @@ * * ***** END LICENSE BLOCK ***** */ +#ifndef nsGNOMERegistry_h__ +#define nsGNOMERegistry_h__ + #include "nsIURI.h" #include "nsCOMPtr.h" -class nsMIMEInfoBase; +class nsMIMEInfoUnix; class nsGNOMERegistry { @@ -52,7 +55,9 @@ class nsGNOMERegistry static void GetAppDescForScheme(const nsACString& aScheme, nsAString& aDesc); - static already_AddRefed GetFromExtension(const char *aFileExt); + static already_AddRefed GetFromExtension(const char *aFileExt); - static already_AddRefed GetFromType(const char *aMIMEType); + static already_AddRefed GetFromType(const char *aMIMEType); }; + +#endif // nsGNOMERegistry_h__ Index: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp =================================================================== RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 21 Jul 2005 03:07:40 -0000 @@ -0,0 +1,196 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla 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/MPL/ + * + * 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 + * Red Hat, Inc. + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Christopher Aillon (Original author) + * + * + * ***** END LICENSE BLOCK ***** */ + +#include "nsMIMEInfoUnix.h" +#include "prlink.h" +#include "prmem.h" +#include +#include + +static PRLibrary *gnomeLib; +static PRLibrary *vfsLib; + +typedef struct _GnomeProgram GnomeProgram; +typedef struct _GnomeModuleInfo GnomeModuleInfo; + +typedef enum { + GNOME_VFS_OK // there's more but we don't care about them. +} GnomeVFSResult; + +typedef GnomeVFSResult (*_gnome_vfs_mime_application_launch_fn) + (GnomeVFSMimeApplication *app, + GList *uris); +typedef void (*_gnome_vfs_mime_application_free_fn)(GnomeVFSMimeApplication *); +typedef GnomeVFSMimeApplication * (*_gnome_vfs_mime_application_copy_fn)(GnomeVFSMimeApplication *); +typedef GnomeProgram * (*_gnome_program_init_fn)(const char *, const char *, + const GnomeModuleInfo *, int, + char **, const char *, ...); +typedef const char * (*_gnome_vfs_mime_application_get_name_fn)(GnomeVFSMimeApplication *); +typedef const GnomeModuleInfo * (*_libgnome_module_info_get_fn)(); +typedef GnomeProgram * (*_gnome_program_get_fn)(); +typedef char * (*_gnome_vfs_make_uri_from_input_fn)(const char *); + +#define DECL_FUNC_PTR(func) static _##func##_fn _##func + +DECL_FUNC_PTR(gnome_vfs_mime_application_launch); +DECL_FUNC_PTR(gnome_vfs_mime_application_free); +DECL_FUNC_PTR(gnome_vfs_mime_application_copy); +DECL_FUNC_PTR(gnome_vfs_mime_application_get_name); +DECL_FUNC_PTR(gnome_program_init); +DECL_FUNC_PTR(gnome_program_get); +DECL_FUNC_PTR(libgnome_module_info_get); +DECL_FUNC_PTR(gnome_vfs_make_uri_from_input); + +static PRLibrary * +LoadVersionedLibrary(const char* libName, const char* libVersion) +{ + char *platformLibName = PR_GetLibraryName(nsnull, libName); + nsCAutoString versionLibName(platformLibName); + versionLibName.Append(libVersion); + PR_Free(platformLibName); + return PR_LoadLibrary(versionLibName.get()); +} + +static void +Cleanup() +{ + // Unload all libraries + if (gnomeLib) + PR_UnloadLibrary(gnomeLib); + if (vfsLib) + PR_UnloadLibrary(vfsLib); + + gnomeLib = vfsLib = nsnull; +} + +static void +InitGnomeVFS() +{ + static PRBool initialized = PR_FALSE; + + if (initialized) + return; + + #define ENSURE_LIB(lib) \ + PR_BEGIN_MACRO \ + if (!lib) { \ + Cleanup(); \ + return; \ + } \ + PR_END_MACRO + + #define GET_LIB_FUNCTION(lib, func, failure) \ + PR_BEGIN_MACRO \ + _##func = (_##func##_fn) PR_FindFunctionSymbol(lib##Lib, #func); \ + if (!_##func) { \ + failure; \ + } \ + PR_END_MACRO + + // Attempt to open libgnome + gnomeLib = LoadVersionedLibrary("gnome-2", ".0"); + ENSURE_LIB(gnomeLib); + + GET_LIB_FUNCTION(gnome, gnome_program_init, return Cleanup()); + GET_LIB_FUNCTION(gnome, libgnome_module_info_get, return Cleanup()); + GET_LIB_FUNCTION(gnome, gnome_program_get, return Cleanup()); + + // Attempt to open libgnomevfs + vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0"); + ENSURE_LIB(vfsLib); + + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_launch, /* do nothing */); + GET_LIB_FUNCTION(vfs, gnome_vfs_make_uri_from_input, return Cleanup()); + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_get_name, return Cleanup()); + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_free, return Cleanup()); + GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_copy, return Cleanup()); + + // Initialize GNOME, if it's not already initialized. It's not + // necessary to tell GNOME about our actual command line arguments. + + if (!_gnome_program_get()) { + char *argv[1] = { "gecko" }; + _gnome_program_init("Gecko", "1.0", _libgnome_module_info_get(), + 1, argv, NULL); + } + + // Note: after GNOME has been initialized, do not ever unload these + // libraries. They register atexit handlers, so if they are unloaded, we'll + // crash on exit. +} + +void +nsMIMEInfoUnix::SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication* app) +{ + if (_gnome_vfs_mime_application_copy && _gnome_vfs_mime_application_free) { + mDefaultVFSApplication = _gnome_vfs_mime_application_copy(app); + + mPreferredAction = nsIMIMEInfo::useSystemDefault; + + const gchar * name = _gnome_vfs_mime_application_get_name(mDefaultVFSApplication); + if (name) + mDefaultAppDescription = NS_ConvertUTF8toUCS2(name); + } +} + +nsMIMEInfoUnix::~nsMIMEInfoUnix() +{ + if (mDefaultVFSApplication) + _gnome_vfs_mime_application_free(mDefaultVFSApplication); +} + +nsresult +nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile) +{ + NS_ENSURE_ARG_POINTER(aFile); + + InitGnomeVFS(); + + if (_gnome_vfs_mime_application_launch && mDefaultVFSApplication) { + nsCAutoString nativePath; + aFile->GetNativePath(nativePath); + + gchar *uri = _gnome_vfs_make_uri_from_input(nativePath.get()); + + GList *uris = NULL; + uris = g_list_append(uris, uri); + + GnomeVFSResult result = _gnome_vfs_mime_application_launch(mDefaultVFSApplication, uris); + + g_free(uri); + g_list_free(uris); + + if (result != GNOME_VFS_OK) + return NS_ERROR_FAILURE; + + return NS_OK; + } + + if (!mDefaultApplication) + return NS_ERROR_FILE_NOT_FOUND; + + return LaunchWithIProcess(mDefaultApplication, aFile); +} Index: uriloader/exthandler/unix/nsMIMEInfoUnix.h =================================================================== RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.h diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ uriloader/exthandler/unix/nsMIMEInfoUnix.h 21 Jul 2005 03:07:40 -0000 @@ -0,0 +1,50 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla 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/MPL/ + * + * 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 + * Red Hat, Inc. + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Christopher Aillon (Original author) + * + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef nsMimeInfoUnix_h__ +#define nsMimeInfoUnix_h__ + +#include "nsMIMEInfoImpl.h" + +struct GnomeVFSMimeApplication; + +class nsMIMEInfoUnix : public nsMIMEInfoImpl +{ +public: + nsMIMEInfoUnix(const char* aType = "") : nsMIMEInfoImpl(aType), mDefaultVFSApplication(nsnull) {} + nsMIMEInfoUnix(const nsACString& aMIMEType) : nsMIMEInfoImpl(aMIMEType) {}; + + virtual ~nsMIMEInfoUnix(); + + void SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication *app); + +protected: + virtual NS_HIDDEN_(nsresult) LaunchDefaultWithFile(nsIFile* aFile); + + GnomeVFSMimeApplication *mDefaultVFSApplication; +}; + +#endif // nsMimeInfoUnix_h__ Index: uriloader/exthandler/unix/nsOSHelperAppService.cpp =================================================================== RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp,v retrieving revision 1.58 diff -d -u -p -r1.58 nsOSHelperAppService.cpp --- uriloader/exthandler/unix/nsOSHelperAppService.cpp 25 Oct 2004 07:46:01 -0000 1.58 +++ uriloader/exthandler/unix/nsOSHelperAppService.cpp 21 Jul 2005 03:07:40 -0000 @@ -44,6 +44,7 @@ #include "nsOSHelperAppService.h" #ifdef MOZ_WIDGET_GTK2 #include "nsGNOMERegistry.h" +#include "nsMIMEInfoUnix.h" #endif #include "nsISupports.h" #include "nsString.h" 1.1 src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch?rev=1.1&content-type=text/plain Index: 032_firefox-2.0_ppc64-1.patch =================================================================== # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=361415 unchanged: --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-21 17:09:28.000000000 +0000 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-20 10:13:38.000000000 +0000 @@ -267,6 +267,11 @@ ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s AS := $(CC) -c -x assembler-with-cpp endif +ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64) +CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp +ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s +AS := $(CC) -c -x assembler-with-cpp +endif # # NetBSD/PPC diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-21 14:01:45.000000000 +0000 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-22 10:43:26.000000000 +0000 @@ -0,0 +1,154 @@ +// -*- Mode: Asm -*- +// +// 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 Netscape are +// Copyright (C) 1999 Netscape Communications Corporation. All +// Rights Reserved. +// +// Contributor(s): +// dwmw2@infradead.org (David Woodhouse) +// Franz.Sirl-kernel@lauterbach.com (Franz Sirl) +// beard@netscape.com (Patrick Beard) +// waterson@netscape.com (Chris Waterson) +// + +.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 +.set r30,30; .set r31,31 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 +.set f30,30; .set f31,31 + + +// +// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, +// PRUint32 paramCount, nsXPTCVariant* params) +// + + .section ".toc","aw" + .section ".text" + .align 2 + .globl XPTC_InvokeByIndex + .section ".opd","aw" + .align 3 +XPTC_InvokeByIndex: + .quad .XPTC_InvokeByIndex,.TOC.@tocbase + .previous + .type XPTC_InvokeByIndex,@function +.XPTC_InvokeByIndex: + mflr 0 + std 0,16(r1) + + std r29,-24(r1) + std r30,-16(r1) + std r31,-8(r1) + + mr r29,r3 // Save 'that' in r29 + mr r30,r4 // Save 'methodIndex' in r30 + mr r31,r1 // Save old frame + + // Allocate stack frame with space for params. Since at least the + // first 7 parameters (not including 'that') will be in registers, + // we don't actually need stack space for those. We must ensure + // that the stack remains 16-byte aligned. + // + // | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV | + // | |(params)........| regs | regs | regs | + // (r1)...........(+112)....(+128) + // (-23*8).(-16*8).(-3*8)..(r31) + + // +stack frame, -unused stack params, +regs storage, +1 for alignment + addi r7,r5,((112/8)-7+7+13+3+1) + rldicr r7,r7,3,59 // multiply by 8 and mask with ~15 + neg r7,r7 + stdux r1,r1,r7 + + + // Call invoke_copy_to_stack(PRUint64* gpregs, double* fpregs, + // PRUint32 paramCount, nsXPTCVariant* s, + // PRUint64* d)) + + // r5, r6 are passed through intact (paramCount, params) + // r7 (d) has to be r1+112 -- where parameters are passed on the stack. + // r3, r4 are above that, easier to address from r31 than from r1 + + subi r3,r31,(23*8) // r3 --> GPRS + subi r4,r31,(16*8) // r4 --> FPRS + addi r7,r1,112 // r7 --> params + bl invoke_copy_to_stack + nop + + // Set up to invoke function + + ld r9,0(r29) // vtable (r29 is 'that') + mr r3,r29 // self is first arg, obviously + + sldi r30,r30,3 // Find function descriptor + add r9,r9,r30 + ld r9,0(r9) + + ld r0,0(r9) // Actual address from fd. + std r2,40(r1) // Save r2 (TOC pointer) + + mtctr 0 + ld r11,16(r9) // Environment pointer from fd. + ld r2,8(r9) // TOC pointer from fd. + + // Load FP and GP registers as required + ld r4, -(23*8)(r31) + ld r5, -(22*8)(r31) + ld r6, -(21*8)(r31) + ld r7, -(20*8)(r31) + ld r8, -(19*8)(r31) + ld r9, -(18*8)(r31) + ld r10, -(17*8)(r31) + + lfd f1, -(16*8)(r31) + lfd f2, -(15*8)(r31) + lfd f3, -(14*8)(r31) + lfd f4, -(13*8)(r31) + lfd f5, -(12*8)(r31) + lfd f6, -(11*8)(r31) + lfd f7, -(10*8)(r31) + lfd f8, -(9*8)(r31) + lfd f9, -(8*8)(r31) + lfd f10, -(7*8)(r31) + lfd f11, -(6*8)(r31) + lfd f12, -(5*8)(r31) + lfd f13, -(4*8)(r31) + + bctrl // Do it + + ld r2,40(r1) // Load our own TOC pointer + ld r1,0(r1) // Revert stack frame + ld 0,16(r1) // Reload lr + ld 29,-24(r1) // Restore NVGPRS + ld 30,-16(r1) + ld 31,-8(r1) + mtlr 0 + blr + + .size XPTC_InvokeByIndex,.-.XPTC_InvokeByIndex + + /* Magic indicating no need for an executable stack */ + .section .note.GNU-stack, "", @progbits ; .previous --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 2006-11-21 17:00:06.000000000 +0000 @@ -0,0 +1,127 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla 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/MPL/ + * + * 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): + * dwmw2@infradead.org (David Woodhouse) + * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) + * beard@netscape.com (Patrick Beard) + * waterson@netscape.com (Chris Waterson) + * + * Alternatively, the contents of this file may be used under the terms of + * either of 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 MPL, 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 MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +// Platform specific code to invoke XPCOM methods on native objects + +// The purpose of XPTC_InvokeByIndex() is to map a platform +// independent call to the platform ABI. To do that, +// XPTC_InvokeByIndex() has to determine the method to call via vtable +// access. The parameters for the method are read from the +// nsXPTCVariant* and prepared for the native ABI. + +#include +#include "xptcprivate.h" + +// 8 integral parameters are passed in registers, not including 'that' +#define GPR_COUNT 7 + +// 8 floating point parameters are passed in registers, floats are +// promoted to doubles when passed in registers +#define FPR_COUNT 13 + +extern "C" PRUint32 +invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s) +{ + return PRUint32(((paramCount * 2) + 3) & ~3); +} + +extern "C" void +invoke_copy_to_stack(PRUint64* gpregs, + double* fpregs, + PRUint32 paramCount, + nsXPTCVariant* s, + PRUint64* d) +{ + PRUint64 tempu64; + + for(uint32 i = 0; i < paramCount; i++, s++) { + if(s->IsPtrData()) + tempu64 = (PRUint64) s->ptr; + else { + switch(s->type) { + case nsXPTType::T_FLOAT: break; + case nsXPTType::T_DOUBLE: break; + case nsXPTType::T_I8: tempu64 = s->val.i8; break; + case nsXPTType::T_I16: tempu64 = s->val.i16; break; + case nsXPTType::T_I32: tempu64 = s->val.i32; break; + case nsXPTType::T_I64: tempu64 = s->val.i64; break; + case nsXPTType::T_U8: tempu64 = s->val.u8; break; + case nsXPTType::T_U16: tempu64 = s->val.u16; break; + case nsXPTType::T_U32: tempu64 = s->val.u32; break; + case nsXPTType::T_U64: tempu64 = s->val.u64; break; + case nsXPTType::T_BOOL: tempu64 = s->val.b; break; + case nsXPTType::T_CHAR: tempu64 = s->val.c; break; + case nsXPTType::T_WCHAR: tempu64 = s->val.wc; break; + default: tempu64 = (PRUint64) s->val.p; break; + } + } + + if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { + if (i < FPR_COUNT) + fpregs[i] = s->val.d; + else + *(double *)d = s->val.d; + } + else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { + if (i < FPR_COUNT) { + fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles + } else { + float *p = (float *)d; + p++; + *p = s->val.f; + } + } + else { + if (i < GPR_COUNT) + gpregs[i] = tempu64; + else + *d = tempu64; + } + if (i >= 7) + d++; + } +} + +extern "C" +XPTC_PUBLIC_API(nsresult) +XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params); + diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-21 16:38:52.000000000 +0000 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-22 10:51:14.000000000 +0000 @@ -0,0 +1,102 @@ +// -*- Mode: Asm -*- +// +// 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 Netscape are +// Copyright (C) 1999 Netscape Communications Corporation. All +// Rights Reserved. +// +// Contributor(s): +// dwmw2@infradead.org (David Woodhouse) +// Franz.Sirl-kernel@lauterbach.com (Franz Sirl) +// beard@netscape.com (Patrick Beard) +// waterson@netscape.com (Chris Waterson) +// + +.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 +.set r30,30; .set r31,31 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 +.set f30,30; .set f31,31 + + .section ".text" + .align 2 + .globl SharedStub + .section ".opd","aw" + .align 3 + +SharedStub: + .quad .SharedStub,.TOC.@tocbase + .previous + .type SharedStub,@function + +.SharedStub: + mflr r0 + + std r4, -56(r1) // Save all GPRS + std r5, -48(r1) + std r6, -40(r1) + std r7, -32(r1) + std r8, -24(r1) + std r9, -16(r1) + std r10, -8(r1) + + stfd f13, -64(r1) // ... and FPRS + stfd f12, -72(r1) + stfd f11, -80(r1) + stfd f10, -88(r1) + stfd f9, -96(r1) + stfd f8, -104(r1) + stfd f7, -112(r1) + stfd f6, -120(r1) + stfd f5, -128(r1) + stfd f4, -136(r1) + stfd f3, -144(r1) + stfd f2, -152(r1) + stfd f1, -160(r1) + + subi r6,r1,56 // r6 --> gprData + subi r7,r1,160 // r7 --> fprData + addi r5,r1,112 // r5 --> extra stack args + + std r0, 16(r1) + + stdu r1,-288(r1) + // r3 has the 'self' pointer already + + mr r4,r11 // r4 is methodIndex selector, passed + // via r11 in the nsXPTCStubBase::StubXX() call + + bl PrepareAndDispatch + nop + + ld 1,0(r1) // restore stack + ld r0,16(r1) // restore LR + mtlr r0 + blr + + .size SharedStub,.-.SharedStub + + +/* Magic indicating no need for an executable stack */ +.section .note.GNU-stack, "", @progbits ; .previous unchanged: --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 2006-11-21 16:59:46.000000000 +0000 @@ -0,0 +1,247 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla 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/MPL/ + * + * 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): + * dwmw2@infradead.org (David Woodhouse) + * Franz.Sirl-kernel@lauterbach.com (Franz Sirl) + * beard@netscape.com (Patrick Beard) + * waterson@netscape.com (Chris Waterson) + * + * Alternatively, the contents of this file may be used under the terms of + * either of 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 MPL, 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 MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +// Implement shared vtbl methods. + +#include "xptcprivate.h" + +// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral +// parameters and the first 13 floating point parameters in registers +// (r3-r10 and f1-f13), no stack space is allocated for these by the +// caller. The rest of the parameters are passed in the callers stack +// area. The stack pointer has to retain 16-byte alignment, longlongs +// and doubles are aligned on 8-byte boundaries. + +#define PARAM_BUFFER_COUNT 16 +#define GPR_COUNT 7 +#define FPR_COUNT 13 + +// PrepareAndDispatch() is called by SharedStub() and calls the actual method. +// +// - 'args[]' contains the arguments passed on stack +// - 'gprData[]' contains the arguments passed in integer registers +// - 'fprData[]' contains the arguments passed in floating point registers +// +// The parameters are mapped into an array of type 'nsXPTCMiniVariant' +// and then the method gets called. +#include +extern "C" nsresult +PrepareAndDispatch(nsXPTCStubBase* self, + PRUint64 methodIndex, + PRUint64* args, + PRUint64 *gprData, + double *fprData) +{ + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = NULL; + nsIInterfaceInfo* iface_info = NULL; + const nsXPTMethodInfo* info; + PRUint32 paramCount; + PRUint32 i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + + self->GetInterfaceInfo(&iface_info); + NS_ASSERTION(iface_info,"no interface info"); + if (! iface_info) + return NS_ERROR_UNEXPECTED; + + iface_info->GetMethodInfo(PRUint16(methodIndex), &info); + NS_ASSERTION(info,"no method info"); + if (! info) + return NS_ERROR_UNEXPECTED; + + 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"); + if (! dispatchParams) + return NS_ERROR_OUT_OF_MEMORY; + + PRUint64* ap = args; + PRUint64 tempu64; + + for(i = 0; i < paramCount; i++) { + const nsXPTParamInfo& param = info->GetParam(i); + const nsXPTType& type = param.GetType(); + nsXPTCMiniVariant* dp = &dispatchParams[i]; + + if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { + if (i < FPR_COUNT) + dp->val.d = fprData[i]; + else + dp->val.d = *(double*) ap; + } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) { + if (i < FPR_COUNT) + dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles + else { + float *p = (float *)ap; + p++; + dp->val.f = *p; + } + } else { /* integer type or pointer */ + if (i < GPR_COUNT) + tempu64 = gprData[i]; + else + tempu64 = *ap; + + if (param.IsOut() || !type.IsArithmetic()) + dp->val.p = (void*) tempu64; + else if (type ==nsXPTType::T_I8) + dp->val.i8 = (PRInt8) tempu64; + else if (type ==nsXPTType::T_I16) + dp->val.i16 = (PRInt16) tempu64; + else if (type ==nsXPTType::T_I32) + dp->val.i32 = (PRInt32) tempu64; + else if (type ==nsXPTType::T_I64) + dp->val.i64 = (PRInt64) tempu64; + else if (type ==nsXPTType::T_U8) + dp->val.u8 = (PRUint8) tempu64; + else if (type ==nsXPTType::T_U16) + dp->val.u16 = (PRUint16) tempu64; + else if (type ==nsXPTType::T_U32) + dp->val.u32 = (PRUint32) tempu64; + else if (type ==nsXPTType::T_U64) + dp->val.u64 = (PRUint64) tempu64; + else if (type ==nsXPTType::T_BOOL) + dp->val.b = (PRBool) tempu64; + else if (type ==nsXPTType::T_CHAR) + dp->val.c = (char) tempu64; + else if (type ==nsXPTType::T_WCHAR) + dp->val.wc = (wchar_t) tempu64; + else + NS_ASSERTION(0, "bad type"); + } + + if (i >= 7) + ap++; + } + + result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams); + + NS_RELEASE(iface_info); + + if (dispatchParams != paramBuffer) + delete [] dispatchParams; + + return result; +} + +// Load r11 with the constant 'n' and branch to SharedStub(). +// +// XXX Yes, it's ugly that we're relying on gcc's name-mangling here; +// however, it's quick, dirty, and'll break when the ABI changes on +// us, which is what we want ;-). + +#if __GXX_ABI_VERSION < 100 +#error Prehistoric GCC not supported here +#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__ ( \ + ".section \".toc\",\"aw\" \n\t" \ + ".section \".text\" \n\t" \ + ".align 2 \n\t" \ + ".if "#n" < 10 \n\t" \ + ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ + ".section \".opd\",\"aw\" \n\t" \ + ".align 3 \n\t" \ +"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ + ".quad ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC.@tocbase \n\t" \ + ".previous \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" \ + ".section \".opd\",\"aw\" \n\t" \ + ".align 3 \n\t" \ +"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ + ".quad ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC.@tocbase \n\t" \ + ".previous \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" \ + ".section \".opd\",\"aw\" \n\t" \ + ".align 3 \n\t" \ +"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ + ".quad ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC.@tocbase \n\t" \ + ".previous \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 \n" \ +); +#endif + +#define SENTINEL_ENTRY(n) \ +nsresult nsXPTCStubBase::Sentinel##n() \ +{ \ + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ + return NS_ERROR_NOT_IMPLEMENTED; \ +} + +#include "xptcstubsdef.inc" 1.1 src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&content-type=text/plain Index: 033_firefox-2.0_ppc_powerpc.patch =================================================================== --- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2007-03-05 13:46:38.000000000 +0100 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2007-03-05 13:47:30.000000000 +0100 @@ -288,12 +288,12 @@ # # Linux/PPC # -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc) +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc) CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s AS := $(CC) -c -x assembler-with-cpp endif -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64) +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc64) CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s AS := $(CC) -c -x assembler-with-cpp 1.1 src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch?rev=1.1&content-type=text/plain Index: 050_respect-host-variable.patch =================================================================== # https://bugs.gentoo.org/show_bug.cgi?id=168893 --- mozilla/configure.in.old 2007-03-02 23:28:27.000000000 +0200 +++ mozilla/configure.in 2007-03-02 23:29:23.000000000 +0200 @@ -825,7 +825,6 @@ OS_TARGET="${target_os}" OS_ARCH=`echo $target_os | sed -e 's|/|_|g'` OS_RELEASE= - OS_TEST="${target_cpu}" case "${target_os}" in linux*) OS_ARCH=Linux ;; solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; @@ -837,8 +836,10 @@ OS_TARGET=`uname -s` OS_ARCH=`uname -s | sed -e 's|/|_|g'` OS_RELEASE=`uname -r` - OS_TEST=`uname -m` fi + +OS_TEST="${target_cpu}" + _COMPILER_PREFIX= HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'` 1.1 src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&content-type=text/plain Index: 055_firefox-2.0_gfbsd-pthreads.patch =================================================================== # https://bugs.gentoo.org/show_bug.cgi?id=169825 --- mozilla/config/rules.mk.orig Thu Sep 14 14:07:03 2006 +++ mozilla/config/rules.mk Wed Oct 18 11:00:09 2006 @@ -442,9 +442,7 @@ endif ifeq ($(OS_ARCH),FreeBSD) -ifdef IS_COMPONENT -EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -endif +EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc endif ifeq ($(OS_ARCH),NetBSD) --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300 +++ mozilla/configure.in 2007-03-07 15:35:41 -0300 @@ -2667,7 +2667,7 @@ *-hpux11.*) ;; *) - AC_CHECK_LIB(c_r, gethostbyname_r) + AC_SEARCH_LIBS([gethostbyname_r], [c_r]) ;; esac AC_CHECK_LIB(m, atan) --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300 +++ mozilla/configure.in 2007-03-07 13:59:53 -0300 @@ -2839,11 +2839,12 @@ *-*-freebsd*) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) - dnl -pthread links in -lc_r, so don't specify it explicitly. - if test "$ac_cv_have_dash_pthread" = "yes"; then - _PTHREAD_LDFLAGS="-pthread" + dnl use the environment PTHREAD_LIBS + if test -n "$PTHREAD_LIBS"; then + _PTHREAD_LDFLAGS="$PTHREAD_LIBS" else - _PTHREAD_LDFLAGS="-lc_r" + _PTHREAD_LDFLAGS="-lpthread" fi + LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}" ;; 1.1 src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch?rev=1.1&content-type=text/plain Index: 063_mozilla-rpath-3.patch =================================================================== --- config/rules.mk.orig 2005-07-28 01:45:18.000000000 +0000 +++ config/rules.mk 2005-07-28 01:45:21.000000000 +0000 @@ -507,5 +507,10 @@ # ifeq ($(OS_ARCH),Linux) ifdef IS_COMPONENT +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..' +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..' EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic +else +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN' +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN' endif 1.1 src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch?rev=1.1&content-type=text/plain Index: 064_mozilla-1.7.10-nsplugins-v2.patch =================================================================== This is the second revision of the nsplugins patch. The first revision did not work. This one does. This patch adds /usr/$(get_libdir)/nsplugins and /usr/$(get_libdir)/nsbrowser/plugins to the search path for plugins. The point of this patch is to provide a place to install netscape-compatible plugins which can be used by any of mozilla/firefox/thunderbird/seamonkey, for example the acroread plugin. This obviates the code in nsplugins.eclass except for inst_plugin Note that mozilla/firefox/thunderbird/seamonkey handle dup plugins like this: First by mtime order (more recent takes precedence), second by alpha order. 01 Aug 2005 agriffis --- mozilla/xpcom/io/nsAppFileLocationProvider.cpp.agriffis 2005-08-01 15:53:34.000000000 -0400 +++ mozilla/xpcom/io/nsAppFileLocationProvider.cpp 2005-08-01 22:18:21.766663456 -0400 @@ -196,6 +196,14 @@ if (NS_SUCCEEDED(rv)) rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME); } + else if (nsCRT::strcmp(prop, GENTOO_NSPLUGINS_DIR) == 0) + { + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSPLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile)); + } + else if (nsCRT::strcmp(prop, GENTOO_NSBROWSER_PLUGINS_DIR) == 0) + { + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSBROWSER_PLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile)); + } #if defined(XP_MAC) || defined(XP_MACOSX) else if (nsCRT::strcmp(prop, NS_MACOSX_USER_PLUGIN_DIR) == 0) { @@ -579,7 +587,7 @@ *_retval = new nsAppDirectoryEnumerator(this, keys); #else - static const char* keys[] = { nsnull, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull }; + static const char* keys[] = { nsnull, GENTOO_NSPLUGINS_DIR, GENTOO_NSBROWSER_PLUGINS_DIR, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull }; if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_PLUGIN_PATH"))) { static const char nullstr = 0; keys[0] = &nullstr; 1.1 src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch?rev=1.1&content-type=text/plain Index: 101_thunderbird-0.7.3-gnome-uriloader.patch =================================================================== --- mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp.foo 2004-01-05 18:38:48.000000000 -0500 +++ mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp 2004-01-05 19:14:51.000000000 -0500 @@ -39,6 +39,7 @@ #include "nsGNOMERegistry.h" #include "prlink.h" #include "prmem.h" +#include "prenv.h" #include "nsString.h" #include "nsIComponentManager.h" #include "nsILocalFile.h" @@ -137,6 +138,10 @@ } \ PR_END_MACRO + // Don't even use this code if an env var is set + if (PR_GetEnv("MOZ_DISABLE_GNOME")) + return; + // Attempt to open libgconf gconfLib = LoadVersionedLibrary("gconf-2", ".4"); ENSURE_LIB(gconfLib); 1.1 src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch?rev=1.1&content-type=text/plain Index: 220_seamonkey-gentoo-homepage.patch =================================================================== --- xpfe/browser/resources/locale/en-US/region.properties.old 2007-01-20 21:11:14.000000000 +0100 +++ xpfe/browser/resources/locale/en-US/region.properties 2007-01-20 21:12:31.000000000 +0100 @@ -1,5 +1,5 @@ # navigator.properties -homePageDefault=http://www.mozilla.org/ +homePageDefault=http://www.gentoo.org/ keywordList=http://home.netscape.com/escapes/keywords webmailKeyword=http://webmail.netscape.com fallbackDefaultSearchURL=http://www.google.com/search?q= @@ -7,7 +7,7 @@ # # all.js # -browser.startup.homepage=http://www.mozilla.org/projects/seamonkey/start/ +browser.startup.homepage=http://www.gentoo.org browser.throbber.url=http://www.mozilla.org/projects/seamonkey/ browser.search.defaulturl=http://www.google.com/search?q= general.useragent.contentlocale=US @@ -17,4 +17,4 @@ #config.js # -startup.homepage_override_url=http://www.mozilla.org/projects/seamonkey/start/ +startup.homepage_override_url=http://www.gentoo.org 1.1 src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch?rev=1.1&content-type=text/plain Index: 225_mozilla-nspr-packages.patch =================================================================== --- xpinstall/packager/packages-unix.old 2007-01-20 21:14:14.000000000 +0100 +++ xpinstall/packager/packages-unix 2007-01-20 21:17:57.000000000 +0100 @@ -45,9 +45,6 @@ [xpcom] bin/libmozjs.so -bin/libnspr4.so -bin/libplc4.so -bin/libplds4.so bin/cpu/sparcv8plus/libnspr_flt4.so bin/libxpcom.so bin/libxpcom_core.so @@ -469,17 +466,13 @@ bin/components/talkback/* [psm] -bin/libnssckbi.so bin/components/libpipboot.so bin/components/pipboot.xpt bin/components/libpipnss.so bin/components/pipnss.xpt bin/components/libpippki.so bin/components/pippki.xpt -bin/libnss3.so -bin/libsmime3.so bin/libsoftokn3.chk -bin/libsoftokn3.so bin/libfreebl3.chk bin/libfreebl3.so bin/libfreebl_32fpu_3.chk @@ -492,7 +485,6 @@ bin/libfreebl_64fpu_3.so bin/libfreebl_64int_3.chk bin/libfreebl_64int_3.so -bin/libssl3.so bin/chrome/pipnss.jar bin/chrome/pippki.jar @@ -510,5 +502,17 @@ bin/components/spellchecker.xpt bin/dictionaries/* +[nspr] +bin/libnspr4.so +bin/libplc4.so +bin/libplds4.so + +[nss] +bin/libnssckbi.so +bin/libnss3.so +bin/libsmime3.so +bin/libsoftokn3.so +bin/libssl3.so + [reporter] bin/chrome/reporter.jar 1.1 src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch?rev=1.1&content-type=text/plain Index: 301_mozilla-1.7.3-gnome-vfs-default-app.patch =================================================================== --- mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp.foo 2004-03-06 09:41:00.000000000 -0500 +++ mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp 2004-10-18 18:55:55.000000000 -0400 @@ -283,6 +283,11 @@ gchar *nativeCommand = g_filename_from_utf8(handlerApp->command, -1, NULL, NULL, NULL); + + // Some versions of the mime stuff will add whitespace to the end or + // beginning of the command + nativeCommand = g_strstrip(nativeCommand); + if (!nativeCommand) { NS_ERROR("Could not convert helper app command to filesystem encoding"); _gnome_vfs_mime_application_free(handlerApp); 1.1 src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch?rev=1.1&content-type=text/plain Index: 303_mozilla-1.7.13-as-needed.patch =================================================================== --- embedding/browser/gtk/tests/Makefile.in.orig 2006-04-29 22:56:46.000000000 -0500 +++ embedding/browser/gtk/tests/Makefile.in 2006-04-29 22:57:17.000000000 -0500 @@ -58,6 +58,8 @@ endif endif +OS_LDFLAGS += -Wl,-rpath-link,'$(DEPTH)/dist/bin' + ifdef MOZ_ENABLE_GTK LIBS += \ -lgtkembedmoz \ 1.1 src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch?rev=1.1&content-type=text/plain Index: 304_mozilla-1.7.5-g-application-name.patch =================================================================== Index: xpfe/bootstrap/nsAppRunner.cpp =================================================================== RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsAppRunner.cpp,v retrieving revision 1.428 diff -d -u -p -r1.428 nsAppRunner.cpp --- xpfe/bootstrap/nsAppRunner.cpp 20 Dec 2004 21:53:33 -0000 1.428 +++ xpfe/bootstrap/nsAppRunner.cpp 5 Mar 2005 08:39:12 -0000 @@ -1612,6 +1612,11 @@ static PRBool GetWantSplashScreen(int ar return dosplash; } +#ifdef MOZ_WIDGET_GTK2 +#include "prlink.h" +typedef void (*_g_set_application_name_fn)(const gchar *application_name); +#endif + int main(int argc, char* argv[]) { NS_TIMELINE_MARK("enter main"); @@ -1712,6 +1717,19 @@ int main(int argc, char* argv[]) #endif gtk_init(&argc, &argv); +#if defined(MOZ_WIDGET_GTK2) + // g_set_application_name () is only defined in glib2.2 and higher. + PRLibrary *glib2; + _g_set_application_name_fn _g_set_application_name = + (_g_set_application_name_fn)PR_FindFunctionSymbolAndLibrary("g_set_application_name", &glib2); + if (_g_set_application_name) { + _g_set_application_name("seamonkey"); /* MOZ_APP_NAME */ + } + if (glib2) { + PR_UnloadLibrary(glib2); + } +#endif + gtk_widget_set_default_visual(gdk_rgb_get_visual()); gtk_widget_set_default_colormap(gdk_rgb_get_cmap()); #endif /* MOZ_WIDGET_GTK || MOZ_WIDGET_GTK2 */ -- gentoo-commits@gentoo.org mailing list