summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2012-06-06 19:24:41 +0200
committerRemi Collet <fedora@famillecollet.com>2012-06-06 19:24:41 +0200
commit922f247fc19dbbe1eb361dbe21439c5f4c536945 (patch)
treed0e098489ce311d8d54c526a869ad1b42a650699
parent07b0d8807bee3b8033cd75101ed0c59c6e5302e5 (diff)
Xulrunner 13.0, Firefox 13.0
-rw-r--r--mozilla-691898.patch303
-rw-r--r--mozilla-724615.patch24
-rw-r--r--mozilla-746112.patch35
-rw-r--r--mozilla-file.patch26
-rw-r--r--mozilla-nspr-build.patch12
-rw-r--r--xulrunner-10.0-gcc47.patch12
-rw-r--r--xulrunner-12.0-jemalloc-ppc.patch14
-rw-r--r--xulrunner-8.0-fix-maemo-checks-in-npapi.patch21
-rw-r--r--xulrunner-mozconfig2
-rw-r--r--xulrunner.spec88
10 files changed, 265 insertions, 272 deletions
diff --git a/mozilla-691898.patch b/mozilla-691898.patch
index dab2016..441862d 100644
--- a/mozilla-691898.patch
+++ b/mozilla-691898.patch
@@ -1,103 +1,132 @@
-From: Mike Hommey <mh@glandium.org>
-Date: Sat, 24 Dec 2011 09:56:58 +0100
-Subject: Bug 691898 - Use YARR interpreter instead of PCRE on platforms where
- YARR JIT is not supported
-
----
- js/src/Makefile.in | 21 +++++++++++++--------
- js/src/vm/RegExpObject-inl.h | 28 ++++++----------------------
- js/src/vm/RegExpObject.cpp | 36 ------------------------------------
- js/src/vm/RegExpObject.h | 27 ++++++---------------------
- js/src/yarr/wtfbridge.h | 2 --
- 5 files changed, 25 insertions(+), 89 deletions(-)
-
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
-index fc48cbd..49f0bdc 100644
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -416,15 +416,20 @@ CPPSRCS += checks.cc \
+diff -up xulrunner-13.0/mozilla-release/js/src/assembler/jit/ExecutableAllocator.h.691898 xulrunner-13.0/mozilla-release/js/src/assembler/jit/ExecutableAllocator.h
+--- xulrunner-13.0/mozilla-release/js/src/assembler/jit/ExecutableAllocator.h.691898 2012-06-01 14:04:02.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/assembler/jit/ExecutableAllocator.h 2012-06-04 10:43:23.694175924 +0200
+@@ -467,8 +467,6 @@ public:
+ {
+ sync_instruction_memory((caddr_t)code, size);
+ }
+-#else
+- #error "The cacheFlush support is missing on this platform."
+ #endif
+
+ private:
+diff -up xulrunner-13.0/mozilla-release/js/src/Makefile.in.691898 xulrunner-13.0/mozilla-release/js/src/Makefile.in
+--- xulrunner-13.0/mozilla-release/js/src/Makefile.in.691898 2012-06-01 14:04:02.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/Makefile.in 2012-06-04 10:45:57.023808537 +0200
+@@ -337,20 +337,23 @@ CPPSRCS += checks.cc \
+ # END enclude sources for V8 dtoa
+ #############################################
- ifeq (,$(filter arm% sparc %86 x86_64,$(TARGET_CPU)))
+-# For architectures without YARR JIT, PCRE is faster than the YARR
+-# interpreter (bug 684559).
+-
+ ifeq (,$(filter arm% sparc %86 x86_64 mips%,$(TARGET_CPU)))
-VPATH += $(srcdir)/yarr/pcre \
-+VPATH += $(srcdir)/assembler \
-+ $(srcdir)/assembler/wtf \
-+ $(srcdir)/yarr \
++VPATH += $(srcdir)/assembler \
++ $(srcdir)/assembler/wtf \
++ $(srcdir)/assembler/jit \
++ $(srcdir)/yarr \
$(NULL)
- CPPSRCS += \
+-CPPSRCS += \
- pcre_compile.cpp \
- pcre_exec.cpp \
- pcre_tables.cpp \
- pcre_xclass.cpp \
- pcre_ucp_searchfuncs.cpp \
-+ Assertions.cpp \
-+ OSAllocatorOS2.cpp \
-+ OSAllocatorPosix.cpp \
-+ OSAllocatorWin.cpp \
-+ PageBlock.cpp \
-+ YarrInterpreter.cpp \
-+ YarrPattern.cpp \
-+ YarrSyntaxChecker.cpp \
++CPPSRCS += ExecutableAllocator.cpp \
++ ExecutableAllocatorPosix.cpp \
++ OSAllocatorOS2.cpp \
++ OSAllocatorPosix.cpp \
++ OSAllocatorWin.cpp \
++ PageBlock.cpp \
++ YarrInterpreter.cpp \
++ YarrPattern.cpp \
++ YarrSyntaxChecker.cpp \
$(NULL)
else
-@@ -1015,10 +1020,10 @@ endif
- # Needed to "configure" it correctly. Unfortunately these
- # flags wind up being applied to all code in js/src, not just
- # the code in js/src/assembler.
--CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1
-+CXXFLAGS += -DUSE_SYSTEM_MALLOC=1
-
- ifneq (,$(ENABLE_YARR_JIT)$(ENABLE_TRACEJIT)$(ENABLE_METHODJIT))
--CXXFLAGS += -DENABLE_JIT=1
-+CXXFLAGS += -DENABLE_JIT=1 -DENABLE_ASSEMBLER=1
- endif
+@@ -918,4 +921,3 @@ endif
+ #
+ # END kludges for the Nitro assembler
+ ###############################################
+-
+diff -up xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.cpp.691898 xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.cpp
+--- xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.cpp.691898 2012-06-01 14:04:05.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.cpp 2012-06-04 10:43:23.695175928 +0200
+@@ -167,7 +167,6 @@ MatchPairs::checkAgainst(size_t inputLen
- INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
-diff --git a/js/src/vm/RegExpObject-inl.h b/js/src/vm/RegExpObject-inl.h
-index 5f7817d..91108a7 100644
---- a/js/src/vm/RegExpObject-inl.h
-+++ b/js/src/vm/RegExpObject-inl.h
-@@ -327,6 +327,7 @@ RegExpPrivate::create(JSContext *cx, JSString *source, RegExpFlag flags, TokenSt
- return RetType(self);
- }
+ /* detail::RegExpCode */
-+#if ENABLE_YARR_JIT
- /* This function should be deleted once bad Android platforms phase out. See bug 604774. */
- inline bool
- RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx)
-@@ -337,12 +338,12 @@ RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx)
- return true;
- #endif
+-#if ENABLE_YARR_JIT
+ void
+ RegExpCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode error)
+ {
+@@ -199,46 +198,9 @@ RegExpCode::reportYarrError(JSContext *c
+ }
}
-+#endif
- inline bool
- RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts,
- uintN *parenCount, RegExpFlag flags)
+-#else /* !ENABLE_YARR_JIT */
+-
+-void
+-RegExpCode::reportPCREError(JSContext *cx, int error)
+-{
+-#define REPORT(msg_) \
+- JS_ReportErrorFlagsAndNumberUC(cx, JSREPORT_ERROR, js_GetErrorMessage, NULL, msg_); \
+- return
+- switch (error) {
+- case -2: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 0: JS_NOT_REACHED("Precondition violation: an error must have occurred.");
+- case 1: REPORT(JSMSG_TRAILING_SLASH);
+- case 2: REPORT(JSMSG_TRAILING_SLASH);
+- case 3: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 4: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 5: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 6: REPORT(JSMSG_BAD_CLASS_RANGE);
+- case 7: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 8: REPORT(JSMSG_BAD_CLASS_RANGE);
+- case 9: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 10: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
+- case 11: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 12: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
+- case 13: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 14: REPORT(JSMSG_MISSING_PAREN);
+- case 15: REPORT(JSMSG_BAD_BACKREF);
+- case 16: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 17: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- default:
+- JS_NOT_REACHED("Precondition violation: unknown PCRE error code.");
+- }
+-#undef REPORT
+-}
+-
+-#endif /* ENABLE_YARR_JIT */
+-
+ bool
+ RegExpCode::compile(JSContext *cx, JSLinearString &pattern, unsigned *parenCount, RegExpFlag flags)
{
-#if ENABLE_YARR_JIT
/* Parse the pattern. */
ErrorCode yarrError;
YarrPattern yarrPattern(pattern, bool(flags & IgnoreCaseFlag), bool(flags & MultilineFlag),
-@@ -359,7 +360,7 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *
+@@ -255,7 +217,7 @@ RegExpCode::compile(JSContext *cx, JSLin
* case we have to bytecode compile it.
*/
-#ifdef JS_METHODJIT
+#if ENABLE_YARR_JIT && defined(JS_METHODJIT)
if (isJITRuntimeEnabled(cx) && !yarrPattern.m_containsBackreferences) {
- if (!cx->compartment->ensureJaegerCompartmentExists(cx))
- return false;
-@@ -371,21 +372,11 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *
+ JSC::ExecutableAllocator *execAlloc = cx->runtime->getExecutableAllocator(cx);
+ if (!execAlloc) {
+@@ -276,21 +238,11 @@ RegExpCode::compile(JSContext *cx, JSLin
+ return false;
}
- #endif
+#if ENABLE_YARR_JIT
codeBlock.setFallBack(true);
+#endif
- byteCode = byteCompile(yarrPattern, cx->compartment->regExpAllocator).get();
+ byteCode = byteCompile(yarrPattern, bumpAlloc).get();
return true;
-#else /* !defined(ENABLE_YARR_JIT) */
- int error = 0;
@@ -113,8 +142,8 @@ index 5f7817d..91108a7 100644
-#endif
}
- inline bool
-@@ -431,19 +422,12 @@ RegExpPrivateCode::execute(JSContext *cx, const jschar *chars, size_t start, siz
+ RegExpRunStatus
+@@ -305,19 +257,12 @@ RegExpCode::execute(JSContext *cx, const
else
result = JSC::Yarr::execute(codeBlock, chars, start, length, output);
#else
@@ -123,88 +152,36 @@ index 5f7817d..91108a7 100644
#endif
if (result == -1)
- return Success_NotFound;
+ return RegExpRunStatus_Success_NotFound;
-#if !ENABLE_YARR_JIT
- if (result < 0) {
- reportPCREError(cx, result);
-- return Error;
+- return RegExpRunStatus_Error;
- }
-#endif
-
JS_ASSERT(result >= 0);
- return Success;
+ return RegExpRunStatus_Success;
}
-diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp
-index f75c6a5..7631dd5 100644
---- a/js/src/vm/RegExpObject.cpp
-+++ b/js/src/vm/RegExpObject.cpp
-@@ -251,7 +251,6 @@ Class js::RegExpClass = {
- NULL /* trace */
- };
-
--#if ENABLE_YARR_JIT
- void
- RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode error)
- {
-@@ -283,41 +282,6 @@ RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode err
- }
- }
-
--#else /* !ENABLE_YARR_JIT */
--
--void
--RegExpPrivateCode::reportPCREError(JSContext *cx, int error)
--{
--#define REPORT(msg_) \
-- JS_ReportErrorFlagsAndNumberUC(cx, JSREPORT_ERROR, js_GetErrorMessage, NULL, msg_); \
-- return
-- switch (error) {
-- case -2: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 0: JS_NOT_REACHED("Precondition violation: an error must have occurred.");
-- case 1: REPORT(JSMSG_TRAILING_SLASH);
-- case 2: REPORT(JSMSG_TRAILING_SLASH);
-- case 3: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 4: REPORT(JSMSG_BAD_QUANTIFIER);
-- case 5: REPORT(JSMSG_BAD_QUANTIFIER);
-- case 6: REPORT(JSMSG_BAD_CLASS_RANGE);
-- case 7: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 8: REPORT(JSMSG_BAD_CLASS_RANGE);
-- case 9: REPORT(JSMSG_BAD_QUANTIFIER);
-- case 10: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
-- case 11: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 12: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
-- case 13: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 14: REPORT(JSMSG_MISSING_PAREN);
-- case 15: REPORT(JSMSG_BAD_BACKREF);
-- case 16: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- case 17: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
-- default:
-- JS_NOT_REACHED("Precondition violation: unknown PCRE error code.");
-- }
--#undef REPORT
--}
--#endif /* ENABLE_YARR_JIT */
--
- bool
- js::ParseRegExpFlags(JSContext *cx, JSString *flagStr, RegExpFlag *flagsOut)
- {
-diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h
-index 1449d56..279f3c0 100644
---- a/js/src/vm/RegExpObject.h
-+++ b/js/src/vm/RegExpObject.h
-@@ -49,8 +49,6 @@
+diff -up xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.h.691898 xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.h
+--- xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.h.691898 2012-06-01 14:04:05.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject.h 2012-06-04 10:47:03.609081248 +0200
+@@ -51,10 +51,8 @@
#include "yarr/Yarr.h"
#if ENABLE_YARR_JIT
#include "yarr/YarrJIT.h"
+-#include "yarr/YarrSyntaxChecker.h"
-#else
-#include "yarr/pcre/pcre.h"
#endif
++#include "yarr/YarrSyntaxChecker.h"
- namespace js {
-@@ -153,48 +151,39 @@ ResetRegExpObject(JSContext *cx, AlreadyIncRefed<RegExpPrivate> rep);
- /* Abstracts away the gross |RegExpPrivate| backend details. */
- class RegExpPrivateCode
+ /*
+ * JavaScript Regular Expressions
+@@ -112,68 +110,51 @@ namespace detail {
+
+ class RegExpCode
{
-#if ENABLE_YARR_JIT
typedef JSC::Yarr::BytecodePattern BytecodePattern;
@@ -224,7 +201,7 @@ index 1449d56..279f3c0 100644
+ BytecodePattern *byteCode;
public:
- RegExpPrivateCode()
+ RegExpCode()
:
#if ENABLE_YARR_JIT
codeBlock(),
@@ -235,7 +212,7 @@ index 1449d56..279f3c0 100644
+ byteCode(NULL)
{ }
- ~RegExpPrivateCode() {
+ ~RegExpCode() {
#if ENABLE_YARR_JIT
codeBlock.release();
+#endif
@@ -247,18 +224,26 @@ index 1449d56..279f3c0 100644
-#endif
}
+ static bool checkSyntax(JSContext *cx, TokenStream *tokenStream, JSLinearString *source) {
+-#if ENABLE_YARR_JIT
+ ErrorCode error = JSC::Yarr::checkSyntax(*source);
+ if (error == JSC::Yarr::NoError)
+ return true;
+
+ reportYarrError(cx, tokenStream, error);
+ return false;
+-#else
+-# error "Syntax checking not implemented for !ENABLE_YARR_JIT"
+-#endif
+ }
+
#if ENABLE_YARR_JIT
static inline bool isJITRuntimeEnabled(JSContext *cx);
-- void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
+- static void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
-#else
-- void reportPCREError(JSContext *cx, int error);
+- static void reportPCREError(JSContext *cx, int error);
#endif
-+ void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
-
- inline bool compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts, uintN *parenCount,
- RegExpFlag flags);
-@@ -205,11 +194,7 @@ class RegExpPrivateCode
- int *output, size_t outputCount);
++ static void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
static size_t getOutputSize(size_t pairCount) {
-#if ENABLE_YARR_JIT
@@ -267,12 +252,30 @@ index 1449d56..279f3c0 100644
- return pairCount * 3; /* Should be x2, but PCRE has... needs. */
-#endif
}
- };
-diff --git a/js/src/yarr/wtfbridge.h b/js/src/yarr/wtfbridge.h
-index ac41d08..fb8eb86 100644
---- a/js/src/yarr/wtfbridge.h
-+++ b/js/src/yarr/wtfbridge.h
+ bool compile(JSContext *cx, JSLinearString &pattern, unsigned *parenCount, RegExpFlag flags);
+diff -up xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject-inl.h.691898 xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject-inl.h
+--- xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject-inl.h.691898 2012-06-01 14:04:05.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/vm/RegExpObject-inl.h 2012-06-04 10:43:23.695175928 +0200
+@@ -137,6 +137,7 @@ RegExpObject::setSticky(bool enabled)
+ setSlot(STICKY_FLAG_SLOT, BooleanValue(enabled));
+ }
+
++#if ENABLE_YARR_JIT
+ /* This function should be deleted once bad Android platforms phase out. See bug 604774. */
+ inline bool
+ detail::RegExpCode::isJITRuntimeEnabled(JSContext *cx)
+@@ -147,6 +148,7 @@ detail::RegExpCode::isJITRuntimeEnabled(
+ return true;
+ #endif
+ }
++#endif
+
+ inline bool
+ RegExpToShared(JSContext *cx, JSObject &obj, RegExpGuard *g)
+diff -up xulrunner-13.0/mozilla-release/js/src/yarr/wtfbridge.h.691898 xulrunner-13.0/mozilla-release/js/src/yarr/wtfbridge.h
+--- xulrunner-13.0/mozilla-release/js/src/yarr/wtfbridge.h.691898 2012-06-01 14:04:05.000000000 +0200
++++ xulrunner-13.0/mozilla-release/js/src/yarr/wtfbridge.h 2012-06-04 10:43:23.696175932 +0200
@@ -49,9 +49,7 @@
#include "jsprvtd.h"
#include "vm/String.h"
diff --git a/mozilla-724615.patch b/mozilla-724615.patch
deleted file mode 100644
index cc78c1b..0000000
--- a/mozilla-724615.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-# HG changeset patch
-# Parent 6292e55419d1730a2e88a56fd30b2440ce0b393a
-# User Raúl Porcel <armin76@gentoo.org>
-Bug XXXXXX - Fix TARGET_CPU usage on ARM
-
-
-diff --git a/xpcom/glue/objs.mk b/xpcom/glue/objs.mk
---- a/xpcom/glue/objs.mk
-+++ b/xpcom/glue/objs.mk
-@@ -71,13 +71,13 @@ XPCOM_GLUENS_SRC_LCPPSRCS = \
- SSE.cpp \
- unused.cpp \
- nsProxyRelease.cpp \
- nsTextFormatter.cpp \
- GenericFactory.cpp \
- FileUtils.cpp \
- $(NULL)
-
--ifeq (arm,$(TARGET_CPU))
-+ifneq (,$(filter arm%,$(TARGET_CPU)))
- XPCOM_GLUENS_SRC_LCPPSRCS += arm.cpp
- endif
-
- XPCOM_GLUENS_SRC_CPPSRCS = $(addprefix $(topsrcdir)/xpcom/glue/,$(XPCOM_GLUENS_SRC_LCPPSRCS))
diff --git a/mozilla-746112.patch b/mozilla-746112.patch
new file mode 100644
index 0000000..765f993
--- /dev/null
+++ b/mozilla-746112.patch
@@ -0,0 +1,35 @@
+Index: xulrunner-10.0.1/mozilla-release/js/src/yarr/YarrInterpreter.h
+===================================================================
+--- xulrunner-10.0.1.orig/mozilla-release/js/src/yarr/YarrInterpreter.h
++++ xulrunner-10.0.1/mozilla-release/js/src/yarr/YarrInterpreter.h
+@@ -167,7 +167,7 @@ struct ByteTerm {
+ inputPosition = inputPos;
+ }
+
+- ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos)
++ ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos) __attribute__((noinline))
+ : type(type)
+ , m_capture(capture)
+ , m_invert(false)
+@@ -188,7 +188,7 @@ struct ByteTerm {
+ atom.quantityCount = 1;
+ }
+
+- ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos)
++ ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos) __attribute__((noinline))
+ : type(type)
+ , m_capture(capture)
+ , m_invert(invert)
+Index: xulrunner-10.0.1/mozilla-release/js/src/yarr/YarrPattern.h
+===================================================================
+--- xulrunner-10.0.1.orig/mozilla-release/js/src/yarr/YarrPattern.h
++++ xulrunner-10.0.1/mozilla-release/js/src/yarr/YarrPattern.h
+@@ -171,7 +171,7 @@ struct PatternTerm {
+ quantityCount = 1;
+ }
+
+- PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* disjunction, bool capture = false, bool invert = false)
++ PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* disjunction, bool capture = false, bool invert = false) __attribute__((noinline))
+ : type(type)
+ , m_capture(capture)
+ , m_invert(invert)
diff --git a/mozilla-file.patch b/mozilla-file.patch
deleted file mode 100644
index 14b0182..0000000
--- a/mozilla-file.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up mozilla-beta/ipc/chromium/src/base/file_util_linux.cc.file mozilla-beta/ipc/chromium/src/base/file_util_linux.cc
---- mozilla-beta/ipc/chromium/src/base/file_util_linux.cc.file 2012-01-24 09:00:00.000000000 +0100
-+++ mozilla-beta/ipc/chromium/src/base/file_util_linux.cc 2012-01-25 15:30:43.707796295 +0100
-@@ -5,6 +5,9 @@
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-diff -up mozilla-beta/ipc/chromium/src/base/message_pump_libevent.cc.file mozilla-beta/ipc/chromium/src/base/message_pump_libevent.cc
---- mozilla-beta/ipc/chromium/src/base/message_pump_libevent.cc.file 2012-01-24 09:00:00.000000000 +0100
-+++ mozilla-beta/ipc/chromium/src/base/message_pump_libevent.cc 2012-01-25 15:13:11.947771212 +0100
-@@ -6,6 +6,9 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
diff --git a/mozilla-nspr-build.patch b/mozilla-nspr-build.patch
new file mode 100644
index 0000000..c3f285a
--- /dev/null
+++ b/mozilla-nspr-build.patch
@@ -0,0 +1,12 @@
+diff -up mozilla-release/hal/sandbox/PHal.ipdl.old mozilla-release/hal/sandbox/PHal.ipdl
+--- mozilla-release/hal/sandbox/PHal.ipdl.old 2012-06-01 14:04:00.000000000 +0200
++++ mozilla-release/hal/sandbox/PHal.ipdl 2012-06-05 09:15:02.524408100 +0200
+@@ -39,7 +39,7 @@
+
+ include protocol PContent;
+ include protocol PBrowser;
+-include "nspr/prtime.h";
++include "prtime.h";
+ include "mozilla/HalSensor.h";
+ include "mozilla/HalTypes.h";
+
diff --git a/xulrunner-10.0-gcc47.patch b/xulrunner-10.0-gcc47.patch
index 91a948a..093357b 100644
--- a/xulrunner-10.0-gcc47.patch
+++ b/xulrunner-10.0-gcc47.patch
@@ -1,15 +1,3 @@
-diff -up mozilla-beta/ipc/chromium/src/base/time_posix.cc.gcc47 mozilla-beta/ipc/chromium/src/base/time_posix.cc
---- mozilla-beta/ipc/chromium/src/base/time_posix.cc.gcc47 2012-01-24 03:00:00.000000000 -0500
-+++ mozilla-beta/ipc/chromium/src/base/time_posix.cc 2012-01-30 14:12:49.198472212 -0500
-@@ -14,6 +14,8 @@
- #include <time.h>
- #endif
-
-+#include <unistd.h>
-+
- #include <limits>
-
- #include "base/basictypes.h"
diff -up mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 mozilla-beta/toolkit/crashreporter/client/Makefile.in
--- mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 2012-01-30 14:41:14.475441039 -0500
+++ mozilla-beta/toolkit/crashreporter/client/Makefile.in 2012-01-30 14:43:03.587646656 -0500
diff --git a/xulrunner-12.0-jemalloc-ppc.patch b/xulrunner-12.0-jemalloc-ppc.patch
new file mode 100644
index 0000000..036f560
--- /dev/null
+++ b/xulrunner-12.0-jemalloc-ppc.patch
@@ -0,0 +1,14 @@
+Index: xulrunner-11.0/mozilla-release/memory/jemalloc/jemalloc.c
+===================================================================
+--- xulrunner-11.0.orig/mozilla-release/memory/jemalloc/jemalloc.c
++++ xulrunner-11.0/mozilla-release/memory/jemalloc/jemalloc.c
+@@ -1089,7 +1089,9 @@ static unsigned ncpus;
+ * controlling the malloc behavior are defined as compile-time constants
+ * for best performance and cannot be altered at runtime.
+ */
++#if !(defined(__powerpc__))
+ #define MALLOC_STATIC_SIZES 1
++#endif
+
+ #ifdef MALLOC_STATIC_SIZES
+
diff --git a/xulrunner-8.0-fix-maemo-checks-in-npapi.patch b/xulrunner-8.0-fix-maemo-checks-in-npapi.patch
deleted file mode 100644
index 99c9b7f..0000000
--- a/xulrunner-8.0-fix-maemo-checks-in-npapi.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up mozilla-release/dom/plugins/base/npapi.h.BAD mozilla-release/dom/plugins/base/npapi.h
---- mozilla-release/dom/plugins/base/npapi.h.BAD 2011-12-06 13:31:16.364405916 -0500
-+++ mozilla-release/dom/plugins/base/npapi.h 2011-12-06 13:31:47.131109006 -0500
-@@ -379,7 +379,7 @@ typedef enum {
- , NPPVpluginCoreAnimationLayer = 1003
- #endif
-
--#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)
-+#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6))
- , NPPVpluginWindowlessLocalBool = 2002
- #endif
- } NPPVariable;
-@@ -432,7 +432,7 @@ typedef enum {
- , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports
- CA model compositing */
- #endif
--#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)
-+#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6))
- , NPNVSupportsWindowlessLocal = 2002
- #endif
- } NPNVariable;
diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig
index bed6ee5..7852dd4 100644
--- a/xulrunner-mozconfig
+++ b/xulrunner-mozconfig
@@ -40,4 +40,4 @@ export MOZ_UA_BUILDID=20100101
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
diff --git a/xulrunner.spec b/xulrunner.spec
index 64bdd30..90ecd0f 100644
--- a/xulrunner.spec
+++ b/xulrunner.spec
@@ -44,7 +44,7 @@
# alpha_version should be set to the alpha number if using an alpha, 0 otherwise
# beta_version should be set to the beta number if using a beta, 0 otherwise
# rc_version should be set to the RC number if using an RC, 0 otherwise
-%global gecko_dir_ver 12
+%global gecko_dir_ver 13
%global alpha_version 0
%global beta_version 0
%global rc_version 0
@@ -52,12 +52,8 @@
%global mozappdir %{_libdir}/%{shortname}-%{gecko_dir_ver}
%global tarballdir mozilla-release
-# crash reporter work only on x86/x86_64
-#%ifarch %{ix86} x86_64
-#%global enable_mozilla_crashreporter 1
-#%else
+# no crash reporter for remi repo
%global enable_mozilla_crashreporter 0
-#%endif
%if %{alpha_version} > 0
%global pre_version a%{alpha_version}
@@ -81,7 +77,7 @@
Summary: XUL Runtime for Gecko Applications
Name: %{shortname}%{gecko_dir_ver}
-Version: 12.0
+Version: 13.0
Release: 1%{?dist}
URL: http://developer.mozilla.org/En/XULRunner
License: MPLv1.1 or GPLv2+ or LGPLv2+
@@ -99,6 +95,9 @@ Patch0: xulrunner-version.patch
Patch1: mozilla-build.patch
Patch14: xulrunner-2.0-chromium-types.patch
Patch17: xulrunner-10.0-gcc47.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3
+Patch18: xulrunner-12.0-jemalloc-ppc.patch
+Patch19: mozilla-nspr-build.patch
# Fedora specific patches
@@ -106,11 +105,8 @@ Patch20: mozilla-193-pkgconfig.patch
Patch24: crashreporter-remove-static.patch
# Upstream patches
-# https://bugzilla.mozilla.org/show_bug.cgi?id=707993
-Patch39: xulrunner-8.0-fix-maemo-checks-in-npapi.patch
-Patch43: mozilla-file.patch
-Patch46: mozilla-724615.patch
Patch47: mozilla-691898.patch
+Patch49: mozilla-746112.patch
# ---------------------------------------------------
@@ -118,6 +114,7 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%if %{?system_nss}
BuildRequires: nspr-devel >= %{nspr_version}
BuildRequires: nss-devel >= %{nss_version}
+BuildRequires: nss-static >= %{nss_version}
%endif
%if %{?system_cairo}
BuildRequires: cairo-devel >= %{cairo_version}
@@ -156,10 +153,10 @@ Requires: nss >= %{nss_version}
%endif
Provides: gecko-libs = %{gecko_verrel}
Provides: gecko-libs%{?_isa} = %{gecko_verrel}
-Obsoletes: xulrunner8
Obsoletes: xulrunner9
Obsoletes: xulrunner10
Obsoletes: xulrunner11
+Obsoletes: xulrunner12
%if %{?system_sqlite}
BuildRequires: sqlite-devel >= %{sqlite_version}
@@ -179,10 +176,10 @@ Group: Development/Libraries
Obsoletes: mozilla-devel < 1.9
Obsoletes: firefox-devel < 2.1
Obsoletes: xulrunner-devel-unstable
-Obsoletes: xulrunner8-devel
Obsoletes: xulrunner9-devel
Obsoletes: xulrunner10-devel
Obsoletes: xulrunner11-devel
+Obsoletes: xulrunner12-devel
Provides: gecko-devel = %{gecko_verrel}
Provides: gecko-devel%{?_isa} = %{gecko_verrel}
Provides: gecko-devel-unstable = %{gecko_verrel}
@@ -224,11 +221,6 @@ Requires: yasm
%ifarch %{ix86} x86_64
Requires: wireless-tools-devel
%endif
-Obsoletes: xulrunner6-devel
-Obsoletes: xulrunner7-devel
-Obsoletes: xulrunner8-devel
-Obsoletes: xulrunner9-devel
-Obsoletes: xulrunner10-devel
%description devel
This package contains the libraries amd header files that are needed
@@ -267,14 +259,16 @@ sed -e 's/__RPM_VERSION_INTERNAL__/%{gecko_dir_ver}/' %{P:%%PATCH0} \
%patch1 -p1 -b .build
%patch14 -p1 -b .chromium-types
%patch17 -p1 -b .gcc47
+%patch18 -p2 -b .jemalloc-ppc
+%patch19 -p1 -b .nspr
%patch20 -p2 -b .pk
%patch24 -p1 -b .static
-%patch39 -p1 -b .707993
-%patch43 -p1 -b .file
-%patch46 -p1 -b .724615
-#%patch47 -p1 -b .691898
+%patch47 -p2 -b .691898
+%ifarch ppc ppc64
+%patch49 -p2 -b .746112
+%endif
%{__rm} -f .mozconfig
%{__cat} %{SOURCE10} \
@@ -401,19 +395,18 @@ make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SE
# create debuginfo for crash-stats.mozilla.com
%if %{enable_mozilla_crashreporter}
#cd %{moz_objdir}
-make buildsymbols
+make -C objdir buildsymbols
%endif
#---------------------------------------------------------------------
%install
cd %{tarballdir}
-%{__rm} -rf $RPM_BUILD_ROOT
# set up our prefs before install, so it gets pulled in to omni.jar
-%{__cp} -p %{SOURCE12} dist/bin/defaults/pref/all-redhat.js
+%{__cp} -p %{SOURCE12} objdir/dist/bin/defaults/pref/all-redhat.js
-DESTDIR=$RPM_BUILD_ROOT make install
+DESTDIR=$RPM_BUILD_ROOT make -C objdir install
# Start script install
%{__rm} -rf $RPM_BUILD_ROOT%{_bindir}/%{shortname}
@@ -460,7 +453,7 @@ popd
%if ! %{system_nss}
%{__install} -D -p -m 755 \
- dist/sdk/bin/nspr-config \
+ objdir/dist/sdk/bin/nspr-config \
$RPM_BUILD_ROOT%{_libdir}/%{shortname}-devel-%{gecko_dir_ver}/sdk/bin/nspr-config
%endif
@@ -490,18 +483,9 @@ touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat
# Add debuginfo for crash-stats.mozilla.com
%if %{enable_mozilla_crashreporter}
%{__mkdir_p} $RPM_BUILD_ROOT/%{moz_debug_dir}
-%{__cp} dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir}
+%{__cp} objdir/dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir}
%endif
-# Remi : this appears when using bundled lib (nss, nspr, ...)
-%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/*.chk
-
-
-#---------------------------------------------------------------------
-
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
#---------------------------------------------------------------------
%post -p /sbin/ldconfig
@@ -544,7 +528,9 @@ fi
%{_sysconfdir}/ld.so.conf.d/xulrunner*.conf
%endif
%{mozappdir}/plugin-container
-
+%if !%{?system_nss}
+%{mozappdir}/*.chk
+%endif
%if %{enable_mozilla_crashreporter}
%{mozappdir}/crashreporter
%{mozappdir}/crashreporter.ini
@@ -563,6 +549,32 @@ fi
#---------------------------------------------------------------------
%changelog
+* Wed Jun 06 2012 Remi Collet <RPMS@FamilleCollet.com> - 13.0-1
+- Sync with rawhide, update to 13.0
+
+* Wed Jun 5 2012 Martin Stransky <stransky@redhat.com> - 13.0-2
+- src.rpm should include all patches
+
+* Mon Jun 4 2012 Martin Stransky <stransky@redhat.com> - 13.0-1
+- Update to 13.0
+
+* Mon May 28 2012 Martin Stransky <stransky@redhat.com> - 12.0-7
+- More ppc(64) fixes - mozbz#746112
+
+* Mon May 28 2012 Martin Stransky <stransky@redhat.com> - 12.0-6
+- Added workaround for ppc(64) - mozbz#746112
+
+* Mon May 7 2012 Dan Horák <dan[at]danny.cz> - 12.0-5
+- Used backported upstream patch from mozb#734335 for fixing the sps profiler build
+- Fixed build of jemalloc on ppc (patch by Gustavo Luiz Duarte/IBM)
+
+* Fri May 4 2012 Dan Horák <dan[at]danny.cz> - 12.0-4
+- Added new patch for 691898 - backport from trunk
+- Added build fix for secondary arches
+
+* Fri May 4 2012 Martin Stransky <stransky@redhat.com> - 12.0-3
+- Added requires for nss-static (rhbz#717247)
+
* Mon Apr 30 2012 Martin Stransky <stransky@redhat.com> - 12.0-2
- Enable ppc(64) paralell builds (rhbz#816612)