summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2010-10-28 13:53:46 +0000
committerLars Wendler <polynomial-c@gentoo.org>2010-10-28 13:53:46 +0000
commitd4a9a90444a29a4c180dea3506ae81ad749659b0 (patch)
treee4e84a1f499aa7085d94d618362fa31a03d7c7c4 /net-libs
parentKeyworded for amd64. Bug 342757 (diff)
downloadgentoo-2-d4a9a90444a29a4c180dea3506ae81ad749659b0.tar.gz
gentoo-2-d4a9a90444a29a4c180dea3506ae81ad749659b0.tar.bz2
gentoo-2-d4a9a90444a29a4c180dea3506ae81ad749659b0.zip
Security bump (bug #342847).
(Portage version: 2.2.0_alpha2/cvs/Linux x86_64)
Diffstat (limited to 'net-libs')
-rw-r--r--net-libs/xulrunner/ChangeLog19
-rw-r--r--net-libs/xulrunner/files/000_flex-configure-LANG.patch41
-rw-r--r--net-libs/xulrunner/files/066-fix-includedir-mozilla-js.patch24
-rw-r--r--net-libs/xulrunner/files/1000_fix_alignment.patch33
-rw-r--r--net-libs/xulrunner/files/1002_fix-system-hunspell-dict-detections.patch112
-rw-r--r--net-libs/xulrunner/files/1009-armv4t-nanojit-v2.patch320
-rw-r--r--net-libs/xulrunner/files/301-xulrunner-xpctools.diff25
-rw-r--r--net-libs/xulrunner/files/801-enable-x86_64-tracemonkey.patch25
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9-no_sunstudio.patch14
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9-solaris64.patch493
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9.1.5-solaris-undef-regs.patch19
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9.2-arm-fixes.patch35
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9.2-fix-pkgconfig-file.patch9
-rw-r--r--net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch23
-rw-r--r--net-libs/xulrunner/xulrunner-1.9.2.12.ebuild (renamed from net-libs/xulrunner/xulrunner-1.9.2.8.ebuild)28
15 files changed, 59 insertions, 1161 deletions
diff --git a/net-libs/xulrunner/ChangeLog b/net-libs/xulrunner/ChangeLog
index 2bad433dca6a..69bb54a182a5 100644
--- a/net-libs/xulrunner/ChangeLog
+++ b/net-libs/xulrunner/ChangeLog
@@ -1,6 +1,23 @@
# ChangeLog for net-libs/xulrunner
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/xulrunner/ChangeLog,v 1.369 2010/10/25 00:31:24 fauli Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/xulrunner/ChangeLog,v 1.370 2010/10/28 13:53:46 polynomial-c Exp $
+
+*xulrunner-1.9.2.12 (28 Oct 2010)
+
+ 28 Oct 2010; Lars Wendler <polynomial-c@gentoo.org>
+ -files/000_flex-configure-LANG.patch,
+ -files/xulrunner-1.9-solaris64.patch,
+ -files/066-fix-includedir-mozilla-js.patch,
+ -files/xulrunner-1.9.1.5-solaris-undef-regs.patch,
+ -files/1000_fix_alignment.patch, -files/xulrunner-1.9.2-arm-fixes.patch,
+ -files/1002_fix-system-hunspell-dict-detections.patch,
+ -files/xulrunner-1.9.2-fix-pkgconfig-file.patch,
+ -files/1009-armv4t-nanojit-v2.patch,
+ +files/xulrunner-1.9.2-gtk+-2.21.patch,
+ -files/301-xulrunner-xpctools.diff, -xulrunner-1.9.2.8.ebuild,
+ -files/801-enable-x86_64-tracemonkey.patch, +xulrunner-1.9.2.12.ebuild,
+ -files/xulrunner-1.9-no_sunstudio.patch:
+ Security bump (bug #342847).
25 Oct 2010; Christian Faulhammer <fauli@gentoo.org>
xulrunner-1.9.2.11.ebuild:
diff --git a/net-libs/xulrunner/files/000_flex-configure-LANG.patch b/net-libs/xulrunner/files/000_flex-configure-LANG.patch
deleted file mode 100644
index 6d32a8537508..000000000000
--- a/net-libs/xulrunner/files/000_flex-configure-LANG.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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~ 2009-07-31 20:07:25.087663220 -0500
-+++ configure 2009-07-31 20:07:37.987684452 -0500
-@@ -468,6 +468,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=
-@@ -856,16 +866,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.
diff --git a/net-libs/xulrunner/files/066-fix-includedir-mozilla-js.patch b/net-libs/xulrunner/files/066-fix-includedir-mozilla-js.patch
deleted file mode 100644
index 490042730cd9..000000000000
--- a/net-libs/xulrunner/files/066-fix-includedir-mozilla-js.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-mozjs stuff is actually in /unstable not in /stable
-
-Causes bugs like http://bugs.gentoo.org/275318
-
-Upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=500645
-
-Will likely be fixed in 1.9.2
-
----
---- xulrunner/installer/mozilla-js.pc.in 2009-06-26 08:37:34.458635913 -0500
-+++ xulrunner/installer/mozilla-js.pc.in 2009-06-26 08:38:13.623656097 -0500
-@@ -1,10 +1,11 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
- includedir=%includedir%
-+includetypes=unstable
-
- Name: JavaScript
- Description: The Mozilla JavaScript Library
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib -lmozjs
--Cflags: -I${includedir}/stable -DXP_UNIX -DJS_THREADSAFE
-+Cflags: -I${includedir}/${includetypes} -DXP_UNIX -DJS_THREADSAFE
diff --git a/net-libs/xulrunner/files/1000_fix_alignment.patch b/net-libs/xulrunner/files/1000_fix_alignment.patch
deleted file mode 100644
index 2ef47c3d4787..000000000000
--- a/net-libs/xulrunner/files/1000_fix_alignment.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: David Mandelin <dmandelin@mozilla.com>
-
-diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
---- a/memory/jemalloc/jemalloc.c
-+++ b/memory/jemalloc/jemalloc.c
-@@ -5792,24 +5792,24 @@ __attribute__((noinline))
- #else
- inline
- #endif
- void *
- memalign(size_t alignment, size_t size)
- {
- void *ret;
-
-- assert(((alignment - 1) & alignment) == 0 && alignment >=
-- sizeof(void *));
-+ assert(((alignment - 1) & alignment) == 0);
-
- if (malloc_init()) {
- ret = NULL;
- goto RETURN;
- }
-
-+ alignment = alignment < sizeof(void*) ? sizeof(void*) : alignment;
- ret = ipalloc(alignment, size);
-
- RETURN:
- #ifdef MALLOC_XMALLOC
- if (opt_xmalloc && ret == NULL) {
- _malloc_message(_getprogname(),
- ": (malloc) Error in memalign(): out of memory\n", "", "");
- abort();
-
diff --git a/net-libs/xulrunner/files/1002_fix-system-hunspell-dict-detections.patch b/net-libs/xulrunner/files/1002_fix-system-hunspell-dict-detections.patch
deleted file mode 100644
index 0e2986ee0326..000000000000
--- a/net-libs/xulrunner/files/1002_fix-system-hunspell-dict-detections.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-diff -r e06632956519 extensions/spellcheck/Makefile.in
---- a/extensions/spellcheck/Makefile.in Sun Apr 04 07:02:14 2010 +0300
-+++ b/extensions/spellcheck/Makefile.in Tue Apr 06 23:07:03 2010 -0500
-@@ -42,13 +42,19 @@
- include $(DEPTH)/config/autoconf.mk
-
- MODULE = spellchecker
-+ifndef MOZ_NATIVE_HUNSPELL
- DIRS = idl locales
-+else
-+DIRS = idl
-+endif
-
- ifeq (camino,$(MOZ_BUILD_APP))
- DIRS += osxspell
- else
-+ifndef MOZ_NATIVE_HUNSPELL
- DIRS += hunspell
- endif
-+endif
-
- DIRS += src
-
-diff -r e06632956519 extensions/spellcheck/hunspell/src/mozHunspell.cpp
---- a/extensions/spellcheck/hunspell/src/mozHunspell.cpp Sun Apr 04 07:02:14 2010 +0300
-+++ b/extensions/spellcheck/hunspell/src/mozHunspell.cpp Tue Apr 06 23:07:03 2010 -0500
-@@ -63,6 +63,9 @@
- #include "nsISimpleEnumerator.h"
- #include "nsIDirectoryEnumerator.h"
- #include "nsIFile.h"
-+#ifdef MOZ_NATIVE_HUNSPELL
-+#include "nsILocalFile.h"
-+#endif
- #include "nsDirectoryServiceUtils.h"
- #include "nsDirectoryServiceDefs.h"
- #include "mozISpellI18NManager.h"
-@@ -307,7 +310,16 @@
- return;
-
- nsCOMPtr<nsIFile> dictDir;
-- rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
-+ #ifdef MOZ_NATIVE_HUNSPELL
-+ nsCOMPtr<nsILocalFile> localFile;
-+ rv = NS_NewNativeLocalFile(nsDependentCString("/usr/share/myspell"),PR_TRUE, getter_AddRefs(localFile));
-+ if (localFile && NS_SUCCEEDED(rv)) {
-+ localFile->QueryInterface(NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
-+ LoadDictionariesFromDir(dictDir);
-+ }
-+ else {
-+ #endif
-+ rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
- NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
- if (NS_SUCCEEDED(rv)) {
- LoadDictionariesFromDir(dictDir);
-@@ -332,6 +344,9 @@
- LoadDictionariesFromDir(appDir);
- }
- }
-+#ifdef MOZ_NATIVE_HUNSPELL
-+ }
-+#endif
-
- nsCOMPtr<nsISimpleEnumerator> dictDirs;
- rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,
-diff -r e06632956519 extensions/spellcheck/src/Makefile.in
---- a/extensions/spellcheck/src/Makefile.in Sun Apr 04 07:02:14 2010 +0300
-+++ b/extensions/spellcheck/src/Makefile.in Tue Apr 06 23:07:03 2010 -0500
-@@ -63,9 +63,15 @@
- txtsvc \
- uconv \
- unicharutil \
-+ xulapp \
- $(NULL)
-
--CPPSRCS = \
-+ifdef MOZ_NATIVE_HUNSPELL
-+CPPSRCS += mozHunspell.cpp \
-+ mozHunspellDirProvider.cpp
-+endif
-+
-+CPPSRCS += \
- mozSpellCheckerFactory.cpp \
- mozSpellChecker.cpp \
- mozPersonalDictionary.cpp \
-@@ -80,8 +86,15 @@
- SHARED_LIBRARY_LIBS += ../osxspell/src/$(LIB_PREFIX)osxspell_s.$(LIB_SUFFIX)
- LOCAL_INCLUDES += -I$(srcdir)/../osxspell/src
- else
-+ifndef MOZ_NATIVE_HUNSPELL
- SHARED_LIBRARY_LIBS += ../hunspell/src/$(LIB_PREFIX)hunspell_s.$(LIB_SUFFIX)
- LOCAL_INCLUDES += -I$(srcdir)/../hunspell/src
-+else
-+LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS) \
-+ -I$(srcdir)/../hunspell/src \
-+ -DMOZ_NATIVE_HUNSPELL \
-+ $(NULL)
-+endif
- endif
-
- EXTRA_DSO_LDOPTS = \
-@@ -96,3 +109,11 @@
- LOCAL_INCLUDES += \
- -I$(topsrcdir)/xpcom/io \
- $(NULL)
-+
-+ifdef MOZ_NATIVE_HUNSPELL
-+export:: $(srcdir)/../hunspell/src/mozHunspell.cpp $(srcdir)/../hunspell/src/mozHunspellDirProvider.cpp
-+ $(INSTALL) $(srcdir)/../hunspell/src/mozHunspell.* $(srcdir)/../hunspell/src/mozHunspellDirProvider.* .
-+GARBAGE += mozHunspell.$(OBJ_SUFFIX) mozHunspell.cpp mozHunspellDirProvider.$(OBJ_SUFFIX) mozHunspellDirProvider.cpp
-+clean::
-+ rm -f mozHunspell.* mozHunspellDirProvider.*
-+endif
diff --git a/net-libs/xulrunner/files/1009-armv4t-nanojit-v2.patch b/net-libs/xulrunner/files/1009-armv4t-nanojit-v2.patch
deleted file mode 100644
index 2d57c95067a9..000000000000
--- a/net-libs/xulrunner/files/1009-armv4t-nanojit-v2.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From: Mike Hommey <glandium@debian.org>
-Date: Fri, 30 Apr 2010 14:32:41 +0200
-Subject: Add nanojit support for ARMv4T
-
-Thanks Albin Tonnerre for the initial patch.
-https://bugzilla.mozilla.org/show_bug.cgi?id=552624
----
- js/src/nanojit/NativeARM.cpp | 105 ++++++++++++++++++++++------------------
- js/src/nanojit/avmplus.h | 2 +
- js/src/nanojit/njcpudetect.h | 111 ++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 170 insertions(+), 48 deletions(-)
- create mode 100644 js/src/nanojit/njcpudetect.h
-
-diff --git a/js/src/nanojit/NativeARM.cpp b/js/src/nanojit/NativeARM.cpp
-index 9387191..a50898c 100644
---- a/js/src/nanojit/NativeARM.cpp
-+++ b/js/src/nanojit/NativeARM.cpp
-@@ -61,6 +61,8 @@ extern "C" void __clear_cache(void *BEG, void *END);
-
- #ifdef FEATURE_NANOJIT
-
-+#define ARM_ARCH_AT_LEAST(wanted) ((NJ_COMPILER_ARM_ARCH >= wanted) || (ARM_ARCH >= wanted))
-+
- namespace nanojit
- {
-
-@@ -114,49 +116,50 @@ Assembler::CountLeadingZeroes(uint32_t data)
- {
- uint32_t leading_zeroes;
-
-- // We can't do CLZ on anything earlier than ARMv5. Architectures as early
-- // as that aren't supported, but assert that we aren't running on one
-- // anyway.
-- // If ARMv4 support is required in the future for some reason, we can do a
-- // run-time check on config.arch and fall back to the C routine, but for
-- // now we can avoid the cost of the check as we don't intend to support
-- // ARMv4 anyway.
-- NanoAssert(ARM_ARCH >= 5);
--
- #if defined(__ARMCC__)
- // ARMCC can do this with an intrinsic.
- leading_zeroes = __clz(data);
-
--// current Android GCC compiler incorrectly refuses to compile 'clz' for armv5
--// (even though this is a legal instruction there). Since we currently only compile for ARMv5
--// for emulation, we don't care too much (but we DO care for ARMv6+ since those are "real"
--// devices).
--#elif defined(__GNUC__) && !(defined(ANDROID) && __ARM_ARCH__ <= 5)
-+ if (0) // We don't need the fallback
-+#elif defined(__GNUC__)
- // GCC can use inline assembler to insert a CLZ instruction.
-- __asm (
-- " clz %0, %1 \n"
-- : "=r" (leading_zeroes)
-- : "r" (data)
-- );
-+ // Targetting armv5t allows a toolchain with armv4t default target to
-+ // still build with clz. On Android gcc compiler, clz is not supported
-+ // with a target smaller than armv7.
-+ if (ARM_ARCH_AT_LEAST(5))
-+ __asm (
-+#if defined(ANDROID) && NJ_COMPILER_ARM_ARCH <= 5
-+ ".arch armv7\n"
-+#elif (NJ_COMPILER_ARM_ARCH < 5)
-+ ".arch armv5t\n"
-+#endif
-+ " clz %0, %1 \n"
-+ : "=r" (leading_zeroes)
-+ : "r" (data)
-+ );
-+ else
- #elif defined(WINCE)
- // WinCE can do this with an intrinsic.
- leading_zeroes = _CountLeadingZeros(data);
--#else
-- // Other platforms must fall back to a C routine. This won't be as
-- // efficient as the CLZ instruction, but it is functional.
-- uint32_t try_shift;
--
-- leading_zeroes = 0;
--
-- // This loop does a bisection search rather than the obvious rotation loop.
-- // This should be faster, though it will still be no match for CLZ.
-- for (try_shift = 16; try_shift != 0; try_shift /= 2) {
-- uint32_t shift = leading_zeroes + try_shift;
-- if (((data << shift) >> shift) == data) {
-- leading_zeroes = shift;
-+
-+ if (0) // We don't need the fallback
-+#endif
-+ {
-+ // Other platforms must fall back to a C routine. This won't be as
-+ // efficient as the CLZ instruction, but it is functional.
-+ uint32_t try_shift;
-+
-+ leading_zeroes = 0;
-+
-+ // This loop does a bisection search rather than the obvious rotation loop.
-+ // This should be faster, though it will still be no match for CLZ.
-+ for (try_shift = 16; try_shift != 0; try_shift /= 2) {
-+ uint32_t shift = leading_zeroes + try_shift;
-+ if (((data << shift) >> shift) == data) {
-+ leading_zeroes = shift;
-+ }
- }
- }
--#endif
-
- // Assert that the operation worked!
- NanoAssert(((0xffffffff >> leading_zeroes) & data) == data);
-@@ -555,13 +558,18 @@ NIns*
- Assembler::genEpilogue()
- {
- // On ARMv5+, loading directly to PC correctly handles interworking.
-- // Note that we don't support anything older than ARMv5.
-- NanoAssert(ARM_ARCH >= 5);
--
-- RegisterMask savingMask = rmask(FP) | rmask(PC);
-+ // On ARMv4T, interworking is not handled properly, therefore, we pop
-+ // lr into ip and use bx ip to avoid that.
-+ if (ARM_ARCH_AT_LEAST(5)) {
-+ RegisterMask savingMask = rmask(FP) | rmask(PC);
-
-- POP_mask(savingMask); // regs
-+ POP_mask(savingMask); // regs
-+ } else {
-+ RegisterMask savingMask = rmask(FP) | rmask(IP);
-
-+ BX(IP);
-+ POP_mask(savingMask); // regs
-+ }
- return _nIns;
- }
-
-@@ -1502,7 +1510,7 @@ Assembler::BranchWithLink(NIns* addr)
-
- // ARMv5 and above can use BLX <imm> for branches within ±32MB of the
- // PC and BLX Rm for long branches.
-- if (isS24(offs>>2)) {
-+ if (isS24(offs>>2) && (ARM_ARCH_AT_LEAST(5))) {
- // the value we need to stick in the instruction; masked,
- // because it will be sign-extended back to 32 bits.
- intptr_t offs2 = (offs>>2) & 0xffffff;
-@@ -1519,7 +1527,6 @@ Assembler::BranchWithLink(NIns* addr)
- // We need to emit an ARMv5+ instruction, so assert that we have a
- // suitable processor. Note that we don't support ARMv4(T), but
- // this serves as a useful sanity check.
-- NanoAssert(ARM_ARCH >= 5);
-
- // The (pre-shifted) value of the "H" bit in the BLX encoding.
- uint32_t H = (offs & 0x2) << 23;
-@@ -1543,11 +1550,6 @@ Assembler::BranchWithLink(NIns* addr)
- inline void
- Assembler::BLX(Register addr, bool chk /* = true */)
- {
-- // We need to emit an ARMv5+ instruction, so assert that we have a suitable
-- // processor. Note that we don't support ARMv4(T), but this serves as a
-- // useful sanity check.
-- NanoAssert(ARM_ARCH >= 5);
--
- NanoAssert(IsGpReg(addr));
- // There is a bug in the WinCE device emulator which stops "BLX LR" from
- // working as expected. Assert that we never do that!
-@@ -1558,8 +1560,15 @@ Assembler::BLX(Register addr, bool chk /* = true */)
- }
-
- // BLX IP
-- *(--_nIns) = (NIns)( (COND_AL) | (0x12<<20) | (0xFFF<<8) | (0x3<<4) | (addr) );
-- asm_output("blx ip");
-+ if (ARM_ARCH_AT_LEAST(5)) {
-+ *(--_nIns) = (NIns)( (COND_AL) | (0x12<<20) | (0xFFF<<8) | (0x3<<4) | (addr) );
-+ asm_output("blx %s", gpn(addr));
-+ } else {
-+ *(--_nIns) = (NIns)( (COND_AL) | (0x12fff1 << 4) | (addr) );
-+ asm_output("bx %s", gpn(addr));
-+ *(--_nIns) = (NIns)( (COND_AL) | (0x1A0 << 16) | (0xE << 12) | 0xF );
-+ asm_output("mov lr, pc");
-+ }
- }
-
- // Emit the code required to load a memory address into a register as follows:
-@@ -2177,7 +2186,7 @@ Assembler::asm_arith(LInsp ins)
- // common for (rr == ra) and is thus likely to be the most
- // efficient case; if ra is no longer used after this LIR
- // instruction, it is re-used for the result register (rr).
-- if ((ARM_ARCH > 5) || (rr != rb)) {
-+ if ((ARM_ARCH_AT_LEAST(6)) || (rr != rb)) {
- // Newer cores place no restrictions on the registers used in a
- // MUL instruction (compared to other arithmetic instructions).
- MUL(rr, rb, ra);
-diff --git a/js/src/nanojit/avmplus.h b/js/src/nanojit/avmplus.h
-index ffc0873..e86f22e 100644
---- a/js/src/nanojit/avmplus.h
-+++ b/js/src/nanojit/avmplus.h
-@@ -50,6 +50,8 @@
- #include "jstypes.h"
- #include "jsstdint.h"
-
-+#include "njcpudetect.h"
-+
- #ifdef AVMPLUS_ARM
- #define ARM_ARCH config.arch
- #define ARM_VFP config.vfp
-diff --git a/js/src/nanojit/njcpudetect.h b/js/src/nanojit/njcpudetect.h
-new file mode 100644
-index 0000000..79ea90b
---- /dev/null
-+++ b/js/src/nanojit/njcpudetect.h
-@@ -0,0 +1,111 @@
-+/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
-+/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
-+/* ***** 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 [Open Source Virtual Machine].
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Adobe System Incorporated.
-+ * Portions created by the Initial Developer are Copyright (C) 2004-2007
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Adobe AS3 Team
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either 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 ***** */
-+
-+#ifndef __njcpudetect__
-+#define __njcpudetect__
-+
-+/***
-+ * Note: this file should not include *any* other files, nor should it wrap
-+ * itself in ifdef FEATURE_NANOJIT, nor should it do anything other than
-+ * define preprocessor symbols.
-+ */
-+
-+/***
-+ * NJ_COMPILER_ARM_ARCH attempts to specify the minimum ARM architecture
-+ * that the C++ compiler has specified. Note that although Config::arm_arch
-+ * is initialized to this value by default, there is no requirement that they
-+ * be in sync.
-+ *
-+ * Note, this is done via #define so that downstream preprocessor usage can
-+ * examine it, but please don't attempt to redefine it.
-+ *
-+ * Note, this is deliberately not encased in "ifdef NANOJIT_ARM", as this file
-+ * may be included before that is defined. On non-ARM platforms we will hit the
-+ * "Unable to determine" case.
-+ */
-+
-+// GCC and RealView usually define __ARM_ARCH__
-+#if defined(__ARM_ARCH__)
-+
-+ #define NJ_COMPILER_ARM_ARCH __ARM_ARCH__
-+
-+// ok, try well-known GCC flags ( see http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html )
-+#elif defined(__ARM_ARCH_7__) || \
-+ defined(__ARM_ARCH_7A__) || \
-+ defined(__ARM_ARCH_7M__) || \
-+ defined(__ARM_ARCH_7R__) || \
-+ defined(_ARM_ARCH_7)
-+
-+ #define NJ_COMPILER_ARM_ARCH 7
-+
-+#elif defined(__ARM_ARCH_6__) || \
-+ defined(__ARM_ARCH_6J__) || \
-+ defined(__ARM_ARCH_6T2__) || \
-+ defined(__ARM_ARCH_6Z__) || \
-+ defined(__ARM_ARCH_6ZK__) || \
-+ defined(__ARM_ARCH_6M__) || \
-+ defined(_ARM_ARCH_6)
-+
-+ #define NJ_COMPILER_ARM_ARCH 6
-+
-+#elif defined(__ARM_ARCH_5__) || \
-+ defined(__ARM_ARCH_5T__) || \
-+ defined(__ARM_ARCH_5E__) || \
-+ defined(__ARM_ARCH_5TE__)
-+
-+ #define NJ_COMPILER_ARM_ARCH 5
-+
-+#elif defined(__ARM_ARCH_4__) || \
-+ defined(__ARM_ARCH_4T__)
-+
-+ #define NJ_COMPILER_ARM_ARCH 4
-+
-+// Visual C has its own mojo
-+#elif defined(_MSC_VER) && defined(_M_ARM)
-+
-+ #define NJ_COMPILER_ARM_ARCH _M_ARM
-+
-+#else
-+
-+ // non-numeric value
-+ #define NJ_COMPILER_ARM_ARCH "Unable to determine valid NJ_COMPILER_ARM_ARCH (nanojit only supports ARMv5 or later)"
-+
-+#endif
-+
-+#endif // __njcpudetect__
diff --git a/net-libs/xulrunner/files/301-xulrunner-xpctools.diff b/net-libs/xulrunner/files/301-xulrunner-xpctools.diff
deleted file mode 100644
index 2ff82a5803bf..000000000000
--- a/net-libs/xulrunner/files/301-xulrunner-xpctools.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- js/src/xpconnect/src/Makefile.in~ 2009-09-20 13:13:15.508713367 -0500
-+++ js/src/xpconnect/src/Makefile.in 2009-09-20 13:14:30.994713367 -0500
-@@ -77,6 +77,10 @@
- widget \
- $(NULL)
-
-+ifdef MOZ_XPCTOOLS
-+DEFINES += -DXPC_TOOLS_SUPPORT
-+REQUIRES += xpctools
-+endif
-
- CPPSRCS = \
- nsScriptError.cpp \
-@@ -174,11 +178,6 @@
-
- endif # ENABLE_JIT
-
--ifdef MOZ_XPCTOOLS
--DEFINES += -DXPC_TOOLS_SUPPORT
--REQUIRES += xpctools
--endif
--
- ifdef XPC_IDISPATCH_SUPPORT
- DEFINES += -DXPC_IDISPATCH_SUPPORT
- ifdef XPC_COMOBJECT
diff --git a/net-libs/xulrunner/files/801-enable-x86_64-tracemonkey.patch b/net-libs/xulrunner/files/801-enable-x86_64-tracemonkey.patch
deleted file mode 100644
index b72ad76b450e..000000000000
--- a/net-libs/xulrunner/files/801-enable-x86_64-tracemonkey.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- js/src/configure.in.old 2009-11-08 19:50:54.299642792 -0500
-+++ js/src/configure.in 2009-11-08 19:57:49.235621814 -0500
-@@ -2465,6 +2465,10 @@
- ENABLE_JIT=1
- NANOJIT_ARCH=i386
- ;;
-+x86_64*-*)
-+ ENABLE_JIT=1
-+ NANOJIT_ARCH=X64
-+ ;;
- arm*-*)
- ENABLE_JIT=1
- NANOJIT_ARCH=ARM
-@@ -2488,7 +2492,10 @@
- i?86-*)
- AC_DEFINE(AVMPLUS_IA32)
- ;;
--
-+x86_64*-*)
-+ AC_DEFINE(AVMPLUS_AMD64)
-+ AC_DEFINE(AVMPLUS_64BIT)
-+ ;;
- arm*-*)
- AC_DEFINE(AVMPLUS_ARM)
- ;;
diff --git a/net-libs/xulrunner/files/xulrunner-1.9-no_sunstudio.patch b/net-libs/xulrunner/files/xulrunner-1.9-no_sunstudio.patch
deleted file mode 100644
index 7bfb5f181d9c..000000000000
--- a/net-libs/xulrunner/files/xulrunner-1.9-no_sunstudio.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-http://bugs.gentoo.org/show_bug.cgi?id=228717
-
-diff -ur a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
---- a/toolkit/library/Makefile.in 2008-05-08 11:20:45.000000000 +0200
-+++ b/toolkit/library/Makefile.in 2008-06-21 12:18:33.373338400 +0200
-@@ -227,7 +227,7 @@
- endif
-
- ifeq ($(OS_ARCH),SunOS)
--EXTRA_DSO_LDOPTS += -lelf -ldemangle -lCstd
-+EXTRA_DSO_LDOPTS += -lelf
- endif
-
- ifeq ($(OS_ARCH),WINNT)
diff --git a/net-libs/xulrunner/files/xulrunner-1.9-solaris64.patch b/net-libs/xulrunner/files/xulrunner-1.9-solaris64.patch
deleted file mode 100644
index 0f2c5acccc8f..000000000000
--- a/net-libs/xulrunner/files/xulrunner-1.9-solaris64.patch
+++ /dev/null
@@ -1,493 +0,0 @@
-Don't use -G, it results in a relocation error against _DYNAMIC on
-amd64, use -shared instead per the manpage, and as it works as well.
-
-Add assemblyish files for x86_64 solaris
-
---- configure.in
-+++ configure.in
-@@ -2481,7 +2481,7 @@
- AC_LANG_RESTORE
- else
- ASFLAGS="$ASFLAGS -fPIC"
-- DSO_LDOPTS='-G'
-+ DSO_LDOPTS='-shared'
- _WARNINGS_CFLAGS=''
- _WARNINGS_CXXFLAGS=''
- if test "$OS_RELEASE" = "5.3"; then
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -2339,7 +2339,7 @@
- AC_LANG_RESTORE
- else
- ASFLAGS="$ASFLAGS -fPIC"
-- DSO_LDOPTS='-G'
-+ DSO_LDOPTS='-shared'
- _WARNINGS_CFLAGS=''
- _WARNINGS_CXXFLAGS=''
- if test "$OS_RELEASE" = "5.3"; then
---- xpcom/reflect/xptcall/src/md/unix/Makefile.in
-+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in
-@@ -130,7 +130,11 @@
- #
- ifeq ($(OS_ARCH),SunOS)
- ifeq (86,$(findstring 86,$(OS_TEST)))
-+ifdef HAVE_64BIT_OS
-+CPPSRCS := xptcinvoke_x86_64_solaris.cpp xptcstubs_x86_64_solaris.cpp
-+else
- CPPSRCS := xptcinvoke_x86_solaris.cpp xptcstubs_x86_solaris.cpp
-+endif
- # 28817: if Solaris Intel OS, and native compiler, always build optimised.
- ifndef GNU_CC
- ASFILES := xptcinvoke_asm_x86_solaris_SUNW.s xptcstubs_asm_x86_solaris_SUNW.s
---- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_solaris.cpp
-+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_solaris.cpp
-@@ -0,0 +1,210 @@
-+/* -*- 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):
-+ *
-+ * 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
-+
-+#include "xptcprivate.h"
-+
-+// 6 integral parameters are passed in registers
-+const PRUint32 GPR_COUNT = 6;
-+
-+// 8 floating point parameters are passed in SSE registers
-+const PRUint32 FPR_COUNT = 8;
-+
-+// Remember that these 'words' are 64-bit long
-+static inline void
-+invoke_count_words(PRUint32 paramCount, nsXPTCVariant * s,
-+ PRUint32 & nr_gpr, PRUint32 & nr_fpr, PRUint32 & nr_stack)
-+{
-+ nr_gpr = 1; // skip one GP register for 'that'
-+ nr_fpr = 0;
-+ nr_stack = 0;
-+
-+ /* Compute number of eightbytes of class MEMORY. */
-+ for (uint32 i = 0; i < paramCount; i++, s++) {
-+ if (!s->IsPtrData()
-+ && (s->type == nsXPTType::T_FLOAT || s->type == nsXPTType::T_DOUBLE)) {
-+ if (nr_fpr < FPR_COUNT)
-+ nr_fpr++;
-+ else
-+ nr_stack++;
-+ }
-+ else {
-+ if (nr_gpr < GPR_COUNT)
-+ nr_gpr++;
-+ else
-+ nr_stack++;
-+ }
-+ }
-+}
-+
-+static void
-+invoke_copy_to_stack(PRUint64 * d, PRUint32 paramCount, nsXPTCVariant * s,
-+ PRUint64 * gpregs, double * fpregs)
-+{
-+ PRUint32 nr_gpr = 1; // skip one GP register for 'that'
-+ PRUint32 nr_fpr = 0;
-+ PRUint64 value;
-+
-+ for (uint32 i = 0; i < paramCount; i++, s++) {
-+ if (s->IsPtrData())
-+ value = (PRUint64) s->ptr;
-+ else {
-+ switch (s->type) {
-+ case nsXPTType::T_FLOAT: break;
-+ case nsXPTType::T_DOUBLE: break;
-+ case nsXPTType::T_I8: value = s->val.i8; break;
-+ case nsXPTType::T_I16: value = s->val.i16; break;
-+ case nsXPTType::T_I32: value = s->val.i32; break;
-+ case nsXPTType::T_I64: value = s->val.i64; break;
-+ case nsXPTType::T_U8: value = s->val.u8; break;
-+ case nsXPTType::T_U16: value = s->val.u16; break;
-+ case nsXPTType::T_U32: value = s->val.u32; break;
-+ case nsXPTType::T_U64: value = s->val.u64; break;
-+ case nsXPTType::T_BOOL: value = s->val.b; break;
-+ case nsXPTType::T_CHAR: value = s->val.c; break;
-+ case nsXPTType::T_WCHAR: value = s->val.wc; break;
-+ default: value = (PRUint64) s->val.p; break;
-+ }
-+ }
-+
-+ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
-+ if (nr_fpr < FPR_COUNT)
-+ fpregs[nr_fpr++] = s->val.d;
-+ else {
-+ *((double *)d) = s->val.d;
-+ d++;
-+ }
-+ }
-+ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
-+ if (nr_fpr < FPR_COUNT)
-+ // The value in %xmm register is already prepared to
-+ // be retrieved as a float. Therefore, we pass the
-+ // value verbatim, as a double without conversion.
-+ fpregs[nr_fpr++] = s->val.d;
-+ else {
-+ *((float *)d) = s->val.f;
-+ d++;
-+ }
-+ }
-+ else {
-+ if (nr_gpr < GPR_COUNT)
-+ gpregs[nr_gpr++] = value;
-+ else
-+ *d++ = value;
-+ }
-+ }
-+}
-+
-+EXPORT_XPCOM_API(nsresult)
-+NS_InvokeByIndex_P(nsISupports * that, PRUint32 methodIndex,
-+ PRUint32 paramCount, nsXPTCVariant * params)
-+{
-+ PRUint32 nr_gpr, nr_fpr, nr_stack;
-+ invoke_count_words(paramCount, params, nr_gpr, nr_fpr, nr_stack);
-+
-+ // Stack, if used, must be 16-bytes aligned
-+ if (nr_stack)
-+ nr_stack = (nr_stack + 1) & ~1;
-+
-+ // Load parameters to stack, if necessary
-+ PRUint64 *stack = (PRUint64 *) __builtin_alloca(nr_stack * 8);
-+ PRUint64 gpregs[GPR_COUNT];
-+ double fpregs[FPR_COUNT];
-+ invoke_copy_to_stack(stack, paramCount, params, gpregs, fpregs);
-+
-+ // Load FPR registers from fpregs[]
-+ register double d0 asm("xmm0");
-+ register double d1 asm("xmm1");
-+ register double d2 asm("xmm2");
-+ register double d3 asm("xmm3");
-+ register double d4 asm("xmm4");
-+ register double d5 asm("xmm5");
-+ register double d6 asm("xmm6");
-+ register double d7 asm("xmm7");
-+
-+ switch (nr_fpr) {
-+#define ARG_FPR(N) \
-+ case N+1: d##N = fpregs[N];
-+ ARG_FPR(7);
-+ ARG_FPR(6);
-+ ARG_FPR(5);
-+ ARG_FPR(4);
-+ ARG_FPR(3);
-+ ARG_FPR(2);
-+ ARG_FPR(1);
-+ ARG_FPR(0);
-+ case 0:;
-+#undef ARG_FPR
-+ }
-+
-+ // Load GPR registers from gpregs[]
-+ register PRUint64 a0 asm("rdi");
-+ register PRUint64 a1 asm("rsi");
-+ register PRUint64 a2 asm("rdx");
-+ register PRUint64 a3 asm("rcx");
-+ register PRUint64 a4 asm("r8");
-+ register PRUint64 a5 asm("r9");
-+
-+ switch (nr_gpr) {
-+#define ARG_GPR(N) \
-+ case N+1: a##N = gpregs[N];
-+ ARG_GPR(5);
-+ ARG_GPR(4);
-+ ARG_GPR(3);
-+ ARG_GPR(2);
-+ ARG_GPR(1);
-+ case 1: a0 = (PRUint64) that;
-+ case 0:;
-+#undef ARG_GPR
-+ }
-+
-+ // Ensure that assignments to SSE registers won't be optimized away
-+ asm("" ::
-+ "x" (d0), "x" (d1), "x" (d2), "x" (d3),
-+ "x" (d4), "x" (d5), "x" (d6), "x" (d7));
-+
-+ // Get pointer to method
-+ PRUint64 methodAddress = *((PRUint64 *)that);
-+ methodAddress += 8 * methodIndex;
-+ methodAddress = *((PRUint64 *)methodAddress);
-+
-+ typedef PRUint32 (*Method)(PRUint64, PRUint64, PRUint64, PRUint64, PRUint64, PRUint64);
-+ PRUint32 result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5);
-+ return result;
-+}
---- xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_solaris.cpp
-+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_solaris.cpp
-@@ -0,0 +1,236 @@
-+/* -*- 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):
-+ *
-+ * 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"
-+#include "xptiprivate.h"
-+
-+
-+const PRUint32 PARAM_BUFFER_COUNT = 16;
-+const PRUint32 GPR_COUNT = 6;
-+const PRUint32 FPR_COUNT = 8;
-+
-+// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
-+//
-+// - 'args[]' contains the arguments passed on stack
-+// - 'gpregs[]' contains the arguments passed in integer registers
-+// - 'fpregs[]' contains the arguments passed in floating point registers
-+//
-+// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
-+// and then the method gets called.
-+
-+extern "C" nsresult
-+PrepareAndDispatch(nsXPTCStubBase * self, PRUint32 methodIndex,
-+ PRUint64 * args, PRUint64 * gpregs, double *fpregs)
-+{
-+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
-+ nsXPTCMiniVariant* dispatchParams = NULL;
-+ const nsXPTMethodInfo* info;
-+ PRUint32 paramCount;
-+ PRUint32 i;
-+ nsresult result = NS_ERROR_FAILURE;
-+
-+ NS_ASSERTION(self,"no self");
-+
-+ self->mEntry->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;
-+ PRUint32 nr_gpr = 1; // skip one GPR register for 'that'
-+ PRUint32 nr_fpr = 0;
-+ PRUint64 value;
-+
-+ 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 (nr_fpr < FPR_COUNT)
-+ dp->val.d = fpregs[nr_fpr++];
-+ else
-+ dp->val.d = *(double*) ap++;
-+ continue;
-+ }
-+ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
-+ if (nr_fpr < FPR_COUNT)
-+ // The value in %xmm register is already prepared to
-+ // be retrieved as a float. Therefore, we pass the
-+ // value verbatim, as a double without conversion.
-+ dp->val.d = *(double*) ap++;
-+ else
-+ dp->val.f = *(float*) ap++;
-+ continue;
-+ }
-+ else {
-+ if (nr_gpr < GPR_COUNT)
-+ value = gpregs[nr_gpr++];
-+ else
-+ value = *ap++;
-+ }
-+
-+ if (param.IsOut() || !type.IsArithmetic()) {
-+ dp->val.p = (void*) value;
-+ continue;
-+ }
-+
-+ switch (type) {
-+ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) value; break;
-+ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) value; break;
-+ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) value; break;
-+ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) value; break;
-+ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) value; break;
-+ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) value; break;
-+ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) value; break;
-+ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) value; break;
-+ case nsXPTType::T_BOOL: dp->val.b = (PRBool) value; break;
-+ case nsXPTType::T_CHAR: dp->val.c = (char) value; break;
-+ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) value; break;
-+
-+ default:
-+ NS_ASSERTION(0, "bad type");
-+ break;
-+ }
-+ }
-+
-+ result = self->mOuter->CallMethod((PRUint16) methodIndex, info, dispatchParams);
-+
-+ if (dispatchParams != paramBuffer)
-+ delete [] dispatchParams;
-+
-+ return result;
-+}
-+
-+#ifdef __GNUC__ /* Gnu Compiler. */
-+#define STUB_ENTRY(n) \
-+asm(".section \".text\"\n\t" \
-+ ".align 2\n\t" \
-+ ".if " #n " < 10\n\t" \
-+ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
-+ ".hidden _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
-+ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n" \
-+ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \
-+ ".elseif " #n " < 100\n\t" \
-+ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
-+ ".hidden _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
-+ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n" \
-+ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \
-+ ".elseif " #n " < 1000\n\t" \
-+ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
-+ ".hidden _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
-+ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n" \
-+ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \
-+ ".else\n\t" \
-+ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \
-+ ".endif\n\t" \
-+ "movl $" #n ", %eax\n\t" \
-+ "jmp SharedStub\n\t" \
-+ ".if " #n " < 10\n\t" \
-+ ".size _ZN14nsXPTCStubBase5Stub" #n "Ev,.-_ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
-+ ".elseif " #n " < 100\n\t" \
-+ ".size _ZN14nsXPTCStubBase6Stub" #n "Ev,.-_ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
-+ ".else\n\t" \
-+ ".size _ZN14nsXPTCStubBase7Stub" #n "Ev,.-_ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
-+ ".endif");
-+
-+// static nsresult SharedStub(PRUint32 methodIndex)
-+asm(".section \".text\"\n\t"
-+ ".align 2\n\t"
-+ ".type SharedStub,@function\n\t"
-+ "SharedStub:\n\t"
-+ // make room for gpregs (48), fpregs (64)
-+ "pushq %rbp\n\t"
-+ "movq %rsp,%rbp\n\t"
-+ "subq $112,%rsp\n\t"
-+ // save GP registers
-+ "movq %rdi,-112(%rbp)\n\t"
-+ "movq %rsi,-104(%rbp)\n\t"
-+ "movq %rdx, -96(%rbp)\n\t"
-+ "movq %rcx, -88(%rbp)\n\t"
-+ "movq %r8 , -80(%rbp)\n\t"
-+ "movq %r9 , -72(%rbp)\n\t"
-+ "leaq -112(%rbp),%rcx\n\t"
-+ // save FP registers
-+ "movsd %xmm0,-64(%rbp)\n\t"
-+ "movsd %xmm1,-56(%rbp)\n\t"
-+ "movsd %xmm2,-48(%rbp)\n\t"
-+ "movsd %xmm3,-40(%rbp)\n\t"
-+ "movsd %xmm4,-32(%rbp)\n\t"
-+ "movsd %xmm5,-24(%rbp)\n\t"
-+ "movsd %xmm6,-16(%rbp)\n\t"
-+ "movsd %xmm7, -8(%rbp)\n\t"
-+ "leaq -64(%rbp),%r8\n\t"
-+ // rdi has the 'self' pointer already
-+ "movl %eax,%esi\n\t"
-+ "leaq 16(%rbp),%rdx\n\t"
-+ "call PrepareAndDispatch@plt\n\t"
-+ "leave\n\t"
-+ "ret\n\t"
-+ ".size SharedStub,.-SharedStub");
-+
-+#elif defined(__SUNPRO_CC) /* Sun Workshop Compiler. */
-+
-+#define STUB_ENTRY(n)
-+
-+#else
-+#error "can't find a compiler to use"
-+#endif /* __GNUC__ */
-+
-+#define SENTINEL_ENTRY(n) \
-+nsresult nsXPTCStubBase::Sentinel##n() \
-+{ \
-+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
-+ return NS_ERROR_NOT_IMPLEMENTED; \
-+}
-+
-+#include "xptcstubsdef.inc"
diff --git a/net-libs/xulrunner/files/xulrunner-1.9.1.5-solaris-undef-regs.patch b/net-libs/xulrunner/files/xulrunner-1.9.1.5-solaris-undef-regs.patch
deleted file mode 100644
index 2ed620ebcbd5..000000000000
--- a/net-libs/xulrunner/files/xulrunner-1.9.1.5-solaris-undef-regs.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-http://marc.info/?l=opensolaris-desktop-discuss&m=124625949400704&w=2
-
---- firefox/js/src/nanojit/Nativei386.h.orig 2008-12-19 16:11:09.743712966 +0800
-+++ firefox/js/src/nanojit/Nativei386.h 2008-12-19 16:12:32.156744648 +0800
-@@ -40,6 +40,14 @@
- #ifndef __nanojit_Nativei386__
- #define __nanojit_Nativei386__
-
-+#undef EAX
-+#undef EBX
-+#undef ECX
-+#undef EDX
-+#undef ESP
-+#undef EBP
-+#undef ESI
-+#undef EDI
-
- namespace nanojit
- {
diff --git a/net-libs/xulrunner/files/xulrunner-1.9.2-arm-fixes.patch b/net-libs/xulrunner/files/xulrunner-1.9.2-arm-fixes.patch
deleted file mode 100644
index a726209e6373..000000000000
--- a/net-libs/xulrunner/files/xulrunner-1.9.2-arm-fixes.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Fix arm OS detection
-
-https://bugs.gentoo.org/327783
-https://bugzilla.mozilla.org/show_bug.cgi?id=577319
----
---- configure.in
-+++ configure.in
-@@ -1424,9 +1424,11 @@
- CPU_ARCH="$OS_TEST"
- ;;
-
--arm)
-+arm*)
- if test "$OS_TARGET" = "WINCE"; then
- CPU_ARCH="$OS_TEST"
-+ else
-+ CPU_ARCH="arm"
- fi
- ;;
- esac
---- js/src/configure.in
-+++ js/src/configure.in
-@@ -1162,9 +1162,11 @@
- CPU_ARCH="$OS_TEST"
- ;;
-
--arm)
-+arm*)
- if test "$OS_TARGET" = "WINCE"; then
- CPU_ARCH="$OS_TEST"
-+ else
-+ CPU_ARCH="arm"
- fi
- ;;
- esac
diff --git a/net-libs/xulrunner/files/xulrunner-1.9.2-fix-pkgconfig-file.patch b/net-libs/xulrunner/files/xulrunner-1.9.2-fix-pkgconfig-file.patch
deleted file mode 100644
index 540f9d0e01fd..000000000000
--- a/net-libs/xulrunner/files/xulrunner-1.9.2-fix-pkgconfig-file.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- mozilla-1.9.2/xulrunner/installer/mozilla-plugin.pc.in-orig 2010-01-18 22:07:22.609207920 -0600
-+++ mozilla-1.9.2/xulrunner/installer/mozilla-plugin.pc.in 2010-01-18 22:07:31.665185152 -0600
-@@ -5,5 +5,5 @@
- Name: Mozilla Plug-In API
- Description: Mozilla Plug-In API
- Version: %MOZILLA_VERSION%
--Cflags: -I${includedir}/stable -DXP_UNIX %ojidef%
-+Cflags: -I${includedir} -DXP_UNIX %ojidef%
-
diff --git a/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch b/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch
new file mode 100644
index 000000000000..8a1e83134bb0
--- /dev/null
+++ b/net-libs/xulrunner/files/xulrunner-1.9.2-gtk+-2.21.patch
@@ -0,0 +1,23 @@
+# HG changeset patch
+# User Jonathan Callen <abcd@gentoo.org>
+# Parent 2599ed882191d88a8e8f0cb68492a156163c5ca7
+pass MOZ_GTK_CFLAGS to ensure proper includes are avaliable.
+
+diff --git a/toolkit/system/gnome/Makefile.in b/toolkit/system/gnome/Makefile.in
+--- a/toolkit/system/gnome/Makefile.in
++++ b/toolkit/system/gnome/Makefile.in
+@@ -84,13 +84,14 @@ EXTRA_DSO_LDOPTS += \
+ $(MOZ_LIBNOTIFY_LIBS) \
+ $(NULL)
+
+ LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/components/build/
+
+ include $(topsrcdir)/config/rules.mk
+
+ CXXFLAGS += \
++ $(MOZ_GTK2_CFLAGS) \
+ $(MOZ_GCONF_CFLAGS) \
+ $(MOZ_GNOMEVFS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(MOZ_LIBNOTIFY_CFLAGS) \
+ $(NULL)
diff --git a/net-libs/xulrunner/xulrunner-1.9.2.8.ebuild b/net-libs/xulrunner/xulrunner-1.9.2.12.ebuild
index ca7bc69ebe8f..95152b241adb 100644
--- a/net-libs/xulrunner/xulrunner-1.9.2.8.ebuild
+++ b/net-libs/xulrunner/xulrunner-1.9.2.12.ebuild
@@ -1,38 +1,39 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/xulrunner/xulrunner-1.9.2.8.ebuild,v 1.10 2010/08/13 19:38:39 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/xulrunner/xulrunner-1.9.2.12.ebuild,v 1.1 2010/10/28 13:53:46 polynomial-c Exp $
EAPI="3"
WANT_AUTOCONF="2.1"
-inherit flag-o-matic toolchain-funcs eutils mozconfig-3 makeedit multilib java-pkg-opt-2 autotools python prefix
+inherit flag-o-matic toolchain-funcs eutils mozconfig-3 makeedit multilib java-pkg-opt-2 autotools python prefix pax-utils
MY_PV="${PV/_rc/rc}" # Handle beta
MY_PV="${MY_PV/1.9.2/3.6}"
MAJ_PV="1.9.2" # from mozilla-* branch name
-PATCH="${PN}-1.9.2-patches-0.6"
+PATCH="${PN}-1.9.2-patches-0.7"
DESCRIPTION="Mozilla runtime package that can be used to bootstrap XUL+XPCOM applications"
HOMEPAGE="http://developer.mozilla.org/en/docs/XULRunner"
SRC_URI="http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${MY_PV}/source/firefox-${MY_PV}.source.tar.bz2
http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.bz2"
-KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
SLOT="1.9"
LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )"
IUSE="+alsa debug +ipc libnotify system-sqlite wifi"
-RDEPEND="java? ( >=virtual/jre-1.4 )
+RDEPEND="
>=sys-devel/binutils-2.16.1
- >=dev-libs/nss-3.12.6
- >=dev-libs/nspr-4.8
- system-sqlite? ( >=dev-db/sqlite-3.6.22-r2[fts3,secure-delete] )
+ >=dev-libs/nss-3.12.8
+ >=dev-libs/nspr-4.8.6
+ system-sqlite? ( >=dev-db/sqlite-3.7.1[fts3,secure-delete] )
alsa? ( media-libs/alsa-lib )
>=app-text/hunspell-1.2
>=x11-libs/cairo-1.8.8[X]
x11-libs/pango[X]
x11-libs/libXt
x11-libs/pixman
+ >=dev-libs/libevent-1.4.7
wifi? ( net-wireless/wireless-tools )
libnotify? ( >=x11-libs/libnotify-0.4 )"
@@ -41,6 +42,9 @@ DEPEND="java? ( >=virtual/jdk-1.4 )
=dev-lang/python-2*[threads]
dev-util/pkgconfig"
+# virtual/jre should not be in DEPEND. bug 325981
+RDEPEND="java? ( >=virtual/jre-1.4 ) ${RDEPEND}"
+
S="${WORKDIR}/mozilla-${MAJ_PV}"
pkg_setup() {
@@ -57,12 +61,13 @@ pkg_setup() {
src_prepare() {
# Apply our patches
- EPATCH_EXCLUDE="1009-armv4t-nanojit.patch" \
+ EPATCH_EXCLUDE="2001_mozilla_ps_pdf_simplify_operators.patch" \
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"
- epatch "${FILESDIR}"/1009-armv4t-nanojit-v2.patch
+ epatch "${FILESDIR}/bug-606109.patch"
+ epatch "${FILESDIR}/${PN}-1.9.2-gtk+-2.21.patch"
eprefixify \
extensions/java/xpcom/interfaces/org/mozilla/xpcom/Mozilla.java \
@@ -144,6 +149,7 @@ src_configure() {
mozconfig_annotate '' --with-system-nss --with-nss-prefix="${EPREFIX}"/usr
mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include --x-libraries="${EPREFIX}"/usr/$(get_libdir)
mozconfig_annotate '' --with-system-bz2
+ mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
mozconfig_use_enable ipc # +ipc, upstream default
mozconfig_use_enable libnotify
@@ -215,6 +221,8 @@ src_install() {
"${ED}/${MOZLIBDIR}/defaults/pref/all-gentoo.js" || \
die "failed to cp xulrunner-default-prefs.js"
+ pax-mark m "${D}"/${MOZLIBDIR}/plugin-container
+
if use java ; then
java-pkg_regjar "${ED}/${MOZLIBDIR}/javaxpcom.jar"
java-pkg_regso "${ED}/${MOZLIBDIR}/libjavaxpcomglue.so"