* [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
@ 2007-10-20 14:59 Raul Porcel (armin76)
0 siblings, 0 replies; only message in thread
From: Raul Porcel (armin76) @ 2007-10-20 14:59 UTC (permalink / raw
To: gentoo-commits
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 <<EOF
1.1 src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch?rev=1.1&content-type=text/plain
Index: 003_firefox-arm.patch
===================================================================
# Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=336183
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-05-17 02:02:51.000000000 -0400
+++ mozilla-16052006/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-05-17 01:17:16.000000000 -0400
@@ -39,18 +39,31 @@
/* Implement shared vtbl methods. */
#include "xptcprivate.h"
#if !defined(LINUX) || !defined(__arm__)
#error "This code is for Linux ARM only. Please check if it works for you, too.\nDepends strongly on gcc behaviour."
#endif
+#if (__GNUC__ > 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 <pango/pangocairo.h>
+#else
+#include <pango/pangoxft.h>
+#endif
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
#include <gdk/gdkpango.h>
@@ -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 <glib.h>
@@ -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<nsMIMEInfoBase>
+/* static */ already_AddRefed<nsMIMEInfoUnix>
nsGNOMERegistry::GetFromExtension(const char *aFileExt)
{
if (!gconfLib)
@@ -286,7 +286,7 @@ nsGNOMERegistry::GetFromExtension(const
return GetFromType(mimeType);
}
-/* static */ already_AddRefed<nsMIMEInfoBase>
+/* static */ already_AddRefed<nsMIMEInfoUnix>
nsGNOMERegistry::GetFromType(const char *aMIMEType)
{
if (!gconfLib)
@@ -296,9 +296,11 @@ nsGNOMERegistry::GetFromType(const char
if (!handlerApp)
return nsnull;
- nsRefPtr<nsMIMEInfoImpl> mimeInfo = new nsMIMEInfoImpl(aMIMEType);
+ nsRefPtr<nsMIMEInfoUnix> 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<nsMIMEInfoBase> GetFromExtension(const char *aFileExt);
+ static already_AddRefed<nsMIMEInfoUnix> GetFromExtension(const char *aFileExt);
- static already_AddRefed<nsMIMEInfoBase> GetFromType(const char *aMIMEType);
+ static already_AddRefed<nsMIMEInfoUnix> 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 <caillon@redhat.com> (Original author)
+ *
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsMIMEInfoUnix.h"
+#include "prlink.h"
+#include "prmem.h"
+#include <glib.h>
+#include <glib-object.h>
+
+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 <caillon@redhat.com> (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 <stdio.h>
+#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 <stdio.h>
+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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-10-20 15:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-20 14:59 [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 Raul Porcel (armin76)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox