summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/bug618485-jsuword-payload.patch15
-rw-r--r--patches/bug648721-openbsd-SO_VERSION.patch21
-rw-r--r--patches/bug809430-add-symbol-versions.patch60
-rw-r--r--patches/bug812265-bump-JS_VERSION.patch55
-rw-r--r--patches/bug812265-setup-versioning_3.patch220
-rw-r--r--patches/bug812265-versioned-MOZ_JS_LIBS_2.patch70
-rw-r--r--patches/bug812265-versioned-js-config.patch103
-rw-r--r--patches/bug835551-required-defines.patch60
-rw-r--r--patches/bug842889-fix-version.patch27
-rw-r--r--patches/bug852789-clear-selfhosting-global.patch30
-rw-r--r--patches/openbsd-dll-suffix.patch16
-rw-r--r--patches/quell-c++0x-warnings-clang.patch17
-rw-r--r--patches/quell-clang-warnings.patch140
-rw-r--r--patches/quell-common-warnings.patch32
-rw-r--r--patches/quell-jsversion-warning.patch13
-rw-r--r--patches/series22
16 files changed, 901 insertions, 0 deletions
diff --git a/patches/bug618485-jsuword-payload.patch b/patches/bug618485-jsuword-payload.patch
new file mode 100644
index 0000000..be4e02d
--- /dev/null
+++ b/patches/bug618485-jsuword-payload.patch
@@ -0,0 +1,15 @@
+# HG changeset patch
+# Parent 53149fbcae9d5e52a59dcc1354e3cdab5018d51a
+Bug 618485 - Add missing 64-bit big-endian jsval_layout field (r=luke)
+
+diff --git a/js/src/jsval.h b/js/src/jsval.h
+--- a/js/src/jsval.h
++++ b/js/src/jsval.h
+@@ -304,6 +304,7 @@ typedef union jsval_layout
+ int32_t i32;
+ uint32_t u32;
+ JSWhyMagic why;
++ jsuword word;
+ } payload;
+ } s;
+ double asDouble;
diff --git a/patches/bug648721-openbsd-SO_VERSION.patch b/patches/bug648721-openbsd-SO_VERSION.patch
new file mode 100644
index 0000000..46eab83
--- /dev/null
+++ b/patches/bug648721-openbsd-SO_VERSION.patch
@@ -0,0 +1,21 @@
+
+# HG changeset patch
+# User Landry Breuil <landry@openbsd.org>
+# Date 1303121737 -7200
+# Node ID ea5232835539eecdac1ea82c96b8dfcaca047666
+# Parent ed6416b9eb04ce3d78a2181eb13ce59a92888baa
+Bug 648721 - Fix linking of xpcshell and plugin-container on OpenBSD. r=glandium
+
+diff --git a/js/src/configure.in b/js/src/configure.in
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -1949,7 +1949,8 @@ ia64*-hpux*)
+ ;;
+
+ *-openbsd*)
+- DLL_SUFFIX=".so.1.0"
++ DLL_SUFFIX='.so.$(if $(SO_VERSION),$(SO_VERSION),1.0)'
++ MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib -Wl,-rpath-link,$(if $(X11BASE),$(X11BASE),/usr/X11R6)/lib'
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
+ DSO_LDOPTS='-shared -fPIC'
diff --git a/patches/bug809430-add-symbol-versions.patch b/patches/bug809430-add-symbol-versions.patch
new file mode 100644
index 0000000..ec253cc
--- /dev/null
+++ b/patches/bug809430-add-symbol-versions.patch
@@ -0,0 +1,60 @@
+--- a/toolkit/library/symverscript.in 2012-11-07 11:08:34.000000000 -0500
++++ b/toolkit/library/symverscript.in 2012-11-07 11:08:15.000000000 -0500
+@@ -0,0 +1,5 @@
++#filter substitution
++@VERSION@ {
++ global: *;
++};
++
+--- a/toolkit/library/Makefile.in 2012-11-07 11:08:34.000000000 -0500
++++ b/toolkit/library/Makefile.in 2012-11-07 11:08:15.000000000 -0500
+@@ -120,6 +120,14 @@
+ ifeq (Linux,$(OS_ARCH))
+ ifneq (Android,$(OS_TARGET))
+ OS_LIBS += -lrt
++EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript
++
++symverscript: symverscript.in
++ $(PYTHON) $(topsrcdir)/config/Preprocessor.py \
++ -DVERSION="$(LIBRARY_NAME)$(MOZILLA_VERSION)" $< > $@
++
++EXTRA_DEPS += symverscript
++
+ endif
+ endif
+
+--- a/js/src/symverscript.in 2012-11-07 09:36:16.000000000 -0500
++++ b/js/src/symverscript.in 2012-11-07 09:37:05.000000000 -0500
+@@ -0,0 +1,5 @@
++#filter substitution
++@VERSION@ {
++ global: *;
++};
++
+--- a/js/src/Makefile.in 2012-11-07 09:36:16.000000000 -0500
++++ b/js/src/Makefile.in 2012-11-07 09:37:09.000000000 -0500
+@@ -437,6 +437,12 @@
+ DEFINES += -DIMPL_MFBT
+ endif
+
++# ensure symbol versions of shared library on linux do not conflict with those in libxul
++ifeq (Linux,$(OS_TARGET))
++EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript
++EXTRA_DEPS += symverscript
++endif
++
+ EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
+
+ ifndef BUILD_OPT
+--- a/js/src/Makefile.in 2012-11-07 09:36:16.000000000 -0500
++++ b/js/src/Makefile.in 2012-11-07 09:37:09.000000000 -0500
+@@ -914,4 +914,9 @@
+ #
+ # END kludges for the Nitro assembler
+ ###############################################
++
++# build target for symverscript, needs to be here otherwise it overrides 'all' as default
++symverscript: symverscript.in
++ $(PYTHON) $(topsrcdir)/config/Preprocessor.py \
++ -DVERSION="$(subst -,_,$(LIBRARY_NAME))" $< > $@
+
diff --git a/patches/bug812265-bump-JS_VERSION.patch b/patches/bug812265-bump-JS_VERSION.patch
new file mode 100644
index 0000000..1b4d081
--- /dev/null
+++ b/patches/bug812265-bump-JS_VERSION.patch
@@ -0,0 +1,55 @@
+From b2031fd4151cc70d5b74dcebba396be4e69d556f Mon Sep 17 00:00:00 2001
+From: Ian Stakenvicius <axs@gentoo.org>
+Date: Tue, 20 Nov 2012 07:35:00 -0800
+Subject: [PATCH 07/24] immediate patch for 17ESR (minimal change, JS_VERSION
+ bump)
+
+FIXME: need commit message.
+(Please also double check the author and subject.)
+
+https://bugzilla.mozilla.org/show_bug.cgi?id=812265
+---
+ js/src/jsversion.h | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/js/src/jsversion.h b/js/src/jsversion.h
+index 70e31a3..fbd2e3e 100644
+--- a/js/src/jsversion.h
++++ b/js/src/jsversion.h
+@@ -8,7 +8,7 @@
+ * JS configuration macros.
+ */
+ #ifndef JS_VERSION
+-#define JS_VERSION 185
++#define JS_VERSION 186
+ #endif
+
+ /*
+@@ -136,6 +136,24 @@
+ #define JS_HAS_GENERATOR_EXPRS 1 /* has (expr for (lhs in iterable)) */
+ #define JS_HAS_EXPR_CLOSURES 1 /* has function (formals) listexpr */
+
++#elif JS_VERSION == 186
++
++#warning JS_VERSION is deprecated, please use MOZJS_MAJOR_VERSION et. al.
++#define JS_HAS_STR_HTML_HELPERS 1 /* has str.anchor, str.bold, etc. */
++#define JS_HAS_OBJ_PROTO_PROP 1 /* has o.__proto__ etc. */
++#define JS_HAS_OBJ_WATCHPOINT 1 /* has o.watch and o.unwatch */
++#define JS_HAS_TOSOURCE 1 /* has Object/Array toSource method */
++#define JS_HAS_CATCH_GUARD 1 /* has exception handling catch guard */
++#define JS_HAS_UNEVAL 1 /* has uneval() top-level function */
++#define JS_HAS_CONST 1 /* has JS2 const as alternative var */
++#define JS_HAS_FUN_EXPR_STMT 1 /* has function expression statement */
++#define JS_HAS_NO_SUCH_METHOD 1 /* has o.__noSuchMethod__ handler */
++#define JS_HAS_GENERATORS 1 /* has yield in generator function */
++#define JS_HAS_BLOCK_SCOPE 1 /* has block scope via let/arraycomp */
++#define JS_HAS_DESTRUCTURING 2 /* has [a,b] = ... or {p:a,q:b} = ... */
++#define JS_HAS_GENERATOR_EXPRS 1 /* has (expr for (lhs in iterable)) */
++#define JS_HAS_EXPR_CLOSURES 1 /* has function (formals) listexpr */
++
+ #else
+
+ #error "unknown JS_VERSION"
+--
+1.8.1.2
+
diff --git a/patches/bug812265-setup-versioning_3.patch b/patches/bug812265-setup-versioning_3.patch
new file mode 100644
index 0000000..acf3450
--- /dev/null
+++ b/patches/bug812265-setup-versioning_3.patch
@@ -0,0 +1,220 @@
+From a7daae161a9ca790fb15b7be5aba3e9f4ac4a821 Mon Sep 17 00:00:00 2001
+From: Tim Lunn <tim@feathertop.org>
+Date: Tue, 19 Feb 2013 08:41:12 +1100
+Subject: [PATCH] setup versioning and pkg-config support in build system
+
+---
+ js/src/Makefile.in | 54 +++++++++++++++++++++++++++++++++++++----------------
+ js/src/configure.in | 39 ++++++++++++++++++++++++++++++++++++--
+ js/src/js-config.in | 4 +++-
+ js/src/js.pc.in | 11 +++++++++++
+ 4 files changed, 89 insertions(+), 19 deletions(-)
+ create mode 100644 js/src/js.pc.in
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+index 962a5b2..b0fe887 100644
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -33,8 +33,13 @@ endif
+
+ TEST_DIRS += tests gdb
+
+-MODULE = js
++ifdef JS_STANDALONE
++MODULE = js-@MOZJS_MAJOR_VERSION@.@MOZJS_MINOR_VERSION@@MOZJS_ALPHA@
++LIBRARY_NAME = mozjs-@MOZJS_MAJOR_VERSION@.@MOZJS_MINOR_VERSION@@MOZJS_ALPHA@
++else
+ LIBRARY_NAME = mozjs
++MODULE = js
++endif
+ STATIC_LIBRARY_NAME = js_static
+ GRE_MODULE = 1
+
+@@ -824,24 +829,40 @@ JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
+ # avoid trying to re-compute all that in the configure script, we just
+ # have the configure script generate this Makefile, and then invoke
+ # this rule.
+-at=@
++
++# set the various definitions that will be substituted for js-config
++# and for the pkg-config .pc file
++JS_CONFIG_SUBSTITUTIONS=\
++ -Dprefix="$(prefix)" \
++ -Dexec_prefix="$(exec_prefix)" \
++ -Dincludedir="$(includedir)" \
++ -Dlibdir="$(libdir)" \
++ -DMODULE="$(MODULE)" \
++ -DMOZILLA_VERSION="$(MOZILLA_VERSION)" \
++ -DLIBRARY_NAME="$(LIBRARY_NAME)" \
++ -DJS_CONFIG_LIBS="$(JS_CONFIG_LIBS)" \
++ -DMOZ_JS_LIBS="$(MOZ_JS_LIBS)" \
++ -DMOZJS_MAJOR_VERSION="$(MOZJS_MAJOR_VERSION)" \
++ -DMOZJS_MINOR_VERSION="$(MOZJS_MINOR_VERSION)" \
++ -DMOZJS_PATCH_VERSION="$(MOZJS_PATCH_VERSION)" \
++ -DMOZJS_ALPHA="$(MOZJS_ALPHA)" \
++ -DNSPR_CFLAGS="$(NSPR_CFLAGS)" \
++ -DNSPR_PKGCONF_CHECK="$(NSPR_PKGCONF_CHECK)"
++
+ js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
+- $(RM) js-config.tmp
+- sed < $< > js-config.tmp \
+- -e 's|$(at)prefix$(at)|$(prefix)|' \
+- -e 's|$(at)exec_prefix$(at)|$(exec_prefix)|' \
+- -e 's|$(at)includedir$(at)|$(includedir)|' \
+- -e 's|$(at)libdir$(at)|$(libdir)|' \
+- -e 's|$(at)MOZILLA_VERSION$(at)|$(MOZILLA_VERSION)|' \
+- -e 's|$(at)LIBRARY_NAME$(at)|$(LIBRARY_NAME)|' \
+- -e 's|$(at)NSPR_CFLAGS$(at)|$(NSPR_CFLAGS)|' \
+- -e 's|$(at)JS_CONFIG_LIBS$(at)|$(JS_CONFIG_LIBS)|' \
+- -e 's|$(at)MOZ_JS_LIBS$(at)|$(MOZ_JS_LIBS)|' \
++ $(RM) $@.tmp
++ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@.tmp \
+ && mv js-config.tmp $@ && chmod +x $@
+
+ SCRIPTS = js-config
+ SDK_BINARY = js-config
+
++$(LIBRARY_NAME).pc: js.pc.in
++ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
++
++install:: $(LIBRARY_NAME).pc
++ $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
++
+ ######################################################
+ # BEGIN SpiderMonkey header installation
+ #
+@@ -909,9 +930,10 @@ install:: $(EXPORTS_mozilla)
+ install:: $(SCRIPTS)
+ $(SYSINSTALL) $^ $(DESTDIR)$(bindir)
+
+-install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+-ifneq (,$(LIBRARY))
+- $(SYSINSTALL) $(LIBRARY) $(DESTDIR)$(libdir)
++install:: $(REAL_LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
++ifneq (,$(REAL_LIBRARY))
++ $(SYSINSTALL) $(REAL_LIBRARY) $(DESTDIR)$(libdir)
++ mv -f $(DESTDIR)$(libdir)/$(REAL_LIBRARY) $(subst $(STATIC_LIBRARY_NAME),$(LIBRARY_NAME),$(DESTDIR)$(libdir)/$(REAL_LIBRARY))
+ endif
+ ifneq (,$(SHARED_LIBRARY))
+ $(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
+diff --git a/js/src/configure.in b/js/src/configure.in
+index 2cb27e9..52328a9 100644
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -51,6 +51,7 @@ _SUBDIR_CONFIG_ARGS="$ac_configure_args"
+ dnl Set the version number of the libs included with mozilla
+ dnl ========================================================
+ NSPR_VERSION=4
++NSPR_MINVER=4.9.2
+
+ dnl Set the minimum version of toolkit libs used by mozilla
+ dnl ========================================================
+@@ -216,6 +217,36 @@ else
+ MOZ_ANDROID_NDK
+ fi
+
++dnl ==============================================================
++dnl Get mozilla version from central milestone file
++dnl ==============================================================
++MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
++MOZILLA_UAVERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir -uaversion`
++
++AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
++AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
++AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION")
++
++# Separate version into components for use in shared object naming etc
++changequote(,)
++MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"`
++MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
++MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
++IS_ALPHA=`echo $MOZILLA_VERSION | grep [ab]`
++changequote([,])
++if test -n "$IS_ALPHA"; then
++ changequote(,)
++ MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"`
++ changequote([,])
++fi
++AC_DEFINE_UNQUOTED(MOZJS_MAJOR_VERSION,"$MOZJS_MAJOR_VERSION")
++AC_DEFINE_UNQUOTED(MOZJS_MINOR_VERSION,"$MOZJS_MINOR_VERSION")
++AC_SUBST(MOZJS_MAJOR_VERSION)
++AC_SUBST(MOZJS_MINOR_VERSION)
++AC_SUBST(MOZJS_PATCH_VERSION)
++AC_SUBST(MOZJS_ALPHA)
++
++
+ dnl ========================================================
+ dnl Checks for compilers.
+ dnl ========================================================
+@@ -3127,13 +3158,16 @@ if test "$_USE_SYSTEM_NSPR" && (test "$NSPR_CFLAGS" -o "$NSPR_LIBS"); then
+ See 'configure --help'.])
+ fi
+
+-dnl Top-level Mozilla switched to requiring NSPR 4.8.6 (bug 560582), but we don't need it in JS.
+ if test -n "$_USE_SYSTEM_NSPR"; then
+ MOZ_NATIVE_NSPR=
+- AM_PATH_NSPR(4.9.2, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
++ AM_PATH_NSPR($NSPR_MINVER, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
+ fi
+
++NSPR_PKGCONF_CHECK="nspr"
+ if test -n "$MOZ_NATIVE_NSPR"; then
++ # piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc
++ NSPR_PKGCONF_CHECK="nspr >= $NSPR_MINVER"
++
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $NSPR_CFLAGS"
+ AC_TRY_COMPILE([#include "prlog.h"],
+@@ -3144,6 +3178,7 @@ if test -n "$MOZ_NATIVE_NSPR"; then
+ AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
+ CFLAGS=$_SAVE_CFLAGS
+ fi
++AC_SUBST(NSPR_PKGCONF_CHECK)
+
+ dnl ========================================================
+ dnl system zlib Support
+diff --git a/js/src/js-config.in b/js/src/js-config.in
+index 419a773..7a71c59 100644
+--- a/js/src/js-config.in
++++ b/js/src/js-config.in
+@@ -2,9 +2,11 @@
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
++#filter substitution
+
+ prefix='@prefix@'
+ mozilla_version='@MOZILLA_VERSION@'
++MODULE='@MODULE@'
+ LIBRARY_NAME='@LIBRARY_NAME@'
+ NSPR_CFLAGS='@NSPR_CFLAGS@'
+ JS_CONFIG_LIBS='@JS_CONFIG_LIBS@'
+@@ -106,7 +108,7 @@ if test "$echo_libdir" = "yes"; then
+ fi
+
+ if test "$echo_cflags" = "yes"; then
+- echo "-I$includedir/js $NSPR_CFLAGS"
++ echo "-include $includedir/$MODULE/js/RequiredDefines.h -I$includedir/$MODULE $NSPR_CFLAGS"
+ fi
+
+ if test "$echo_libs" = "yes"; then
+diff --git a/js/src/js.pc.in b/js/src/js.pc.in
+new file mode 100644
+index 0000000..13d761d
+--- /dev/null
++++ b/js/src/js.pc.in
+@@ -0,0 +1,11 @@
++#filter substitution
++prefix=@prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: SpiderMonkey @MOZILLA_VERSION@
++Description: The Mozilla library for JavaScript
++Version: @MOZILLA_VERSION@
++Requires.private: @NSPR_PKGCONF_CHECK@
++Libs: -L${libdir} -l@LIBRARY_NAME@
++Cflags: -include ${includedir}/@MODULE@/js/RequiredDefines.h -I${includedir}/@MODULE@
+--
+1.8.1.2
+
diff --git a/patches/bug812265-versioned-MOZ_JS_LIBS_2.patch b/patches/bug812265-versioned-MOZ_JS_LIBS_2.patch
new file mode 100644
index 0000000..81db462
--- /dev/null
+++ b/patches/bug812265-versioned-MOZ_JS_LIBS_2.patch
@@ -0,0 +1,70 @@
+--- a/js/src/Makefile.in
++++ a/js/src/Makefile.in
+@@ -816,6 +816,11 @@ endif
+ # - OS_LIBS includes libraries selected by the configure script.
+ # - EXTRA_LIBS includes libraries selected by this Makefile.
+ JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
++ifdef GNU_CC
++JS_CONFIG_MOZ_JS_LIBS=-L$(libdir) -l$(LIBRARY_NAME)
++else
++JS_CONFIG_MOZ_JS_LIBS=$(libdir)/$(LIBRARY_NAME).lib
++endif
+
+ # The configure script invokes this rule explicitly at configure time!
+ # It's important that js-config be ready by the time we're done
+@@ -841,7 +846,7 @@ JS_CONFIG_SUBSTITUTIONS=\
+ -DMOZILLA_VERSION="$(MOZILLA_VERSION)" \
+ -DLIBRARY_NAME="$(LIBRARY_NAME)" \
+ -DJS_CONFIG_LIBS="$(JS_CONFIG_LIBS)" \
+- -DMOZ_JS_LIBS="$(MOZ_JS_LIBS)" \
++ -DJS_CONFIG_MOZ_JS_LIBS="$(JS_CONFIG_MOZ_JS_LIBS)" \
+ -DMOZJS_MAJOR_VERSION="$(MOZJS_MAJOR_VERSION)" \
+ -DMOZJS_MINOR_VERSION="$(MOZJS_MINOR_VERSION)" \
+ -DMOZJS_PATCH_VERSION="$(MOZJS_PATCH_VERSION)" \
+--- a/js/src/configure.in
++++ a/js/src/configure.in
+@@ -851,7 +851,6 @@ TARGET_MD_ARCH=unix
+ DIRENT_INO=d_ino
+ MOZ_USER_DIR=".mozilla"
+
+-MOZ_JS_LIBS='-L$(libdir) -lmozjs'
+ MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
+
+ MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
+@@ -1671,7 +1670,6 @@ ia64*-hpux*)
+ RCFLAGS='-O coff --use-temp-file'
+ # mingw doesn't require kernel32, user32, and advapi32 explicitly
+ LIBS="$LIBS -lgdi32 -lwinmm -lwsock32 -lpsapi"
+- MOZ_JS_LIBS='-L$(libdir) -lmozjs'
+ MOZ_FIX_LINK_PATHS=
+ DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core -lmozalloc'
+ XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom -lmozalloc'
+@@ -1724,7 +1722,6 @@ ia64*-hpux*)
+ MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
+ WARNINGS_AS_ERRORS='-WX'
+ MOZ_OPTIMIZE_FLAGS="-O2"
+- MOZ_JS_LIBS='$(libdir)/mozjs.lib'
+ MOZ_FIX_LINK_PATHS=
+ DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+@@ -4143,7 +4140,6 @@ AC_SUBST(WINDRES)
+ AC_SUBST(IMPLIB)
+ AC_SUBST(FILTER)
+ AC_SUBST(BIN_FLAGS)
+-AC_SUBST(MOZ_JS_LIBS)
+ AC_SUBST(MOZ_DEBUG)
+ AC_SUBST(MOZ_DEBUG_SYMBOLS)
+ AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
+--- a/js/src/js-config.in
++++ a/js/src/js-config.in
+@@ -10,7 +10,7 @@ MODULE='@MODULE@'
+ LIBRARY_NAME='@LIBRARY_NAME@'
+ NSPR_CFLAGS='@NSPR_CFLAGS@'
+ JS_CONFIG_LIBS='@JS_CONFIG_LIBS@'
+-MOZ_JS_LIBS='@MOZ_JS_LIBS@'
++MOZ_JS_LIBS='@JS_CONFIG_MOZ_JS_LIBS@'
+
+ usage()
+ {
+--
+
diff --git a/patches/bug812265-versioned-js-config.patch b/patches/bug812265-versioned-js-config.patch
new file mode 100644
index 0000000..74ab360
--- /dev/null
+++ b/patches/bug812265-versioned-js-config.patch
@@ -0,0 +1,103 @@
+From: Tim Lunn <tim@feathertop.org>
+Date: Wed, 20 Feb 2013 15:33:26 +1100
+
+[PATCH] add versioning to js and js-config
+
+From 45c5c70c16b933e65f0ea5b2953577435f78388a Mon Sep 17 00:00:00 2001
+---
+ js/src/Makefile.in | 12 ++++++------
+ js/src/configure.in | 16 ++++++++++++++--
+ js/src/shell/Makefile.in | 2 +-
+ 3 files changed, 21 insertions(+), 9 deletions(-)
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -564,7 +564,7 @@ JITFLAGS = ,m,am,amd,n,mn,amn,amdn,mdn
+ check-jit-test::
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
+ --no-slow --no-progress --tinderbox --jitflags=$(JITFLAGS) $(JITTEST_VALGRIND_FLAG) \
+- $(DIST)/bin/js$(BIN_SUFFIX)
++ $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
+
+ check:: check-jit-test
+
+@@ -581,7 +581,7 @@ check-jstests:
+ --no-extensions \
+ --timeout 300 \
+ --args="`echo $$f | sed 's/\(.\)/ -\1/g'`" \
+- $(DIST)/bin/js$(BIN_SUFFIX); \
++ $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX); \
+ RC=$$(( $$RC || $$?)); \
+ done; \
+ exit $$RC
+@@ -776,13 +776,13 @@ JS_CONFIG_SUBSTITUTIONS=\
+ -DNSPR_CFLAGS="$(NSPR_CFLAGS)" \
+ -DNSPR_PKGCONF_CHECK="$(NSPR_PKGCONF_CHECK)"
+
+-js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
++$(JS_CONFIG_NAME): js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
+ $(RM) $@.tmp
+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@.tmp \
+- && mv js-config.tmp $@ && chmod +x $@
++ && mv $@.tmp $@ && chmod +x $@
+
+-SCRIPTS = js-config
+-SDK_BINARY = js-config
++SCRIPTS = $(JS_CONFIG_NAME)
++SDK_BINARY = $(JS_CONFIG_NAME)
+
+ $(LIBRARY_NAME).pc: js.pc.in
+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
+diff --git a/js/src/configure.in b/js/src/configure.in
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -233,6 +233,16 @@ MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSI
+ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
+ MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
+ IS_ALPHA=`echo $MOZILLA_VERSION | grep [ab]`
++
++if test -n "$JS_STANDALONE"; then
++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
++else
++JS_SHELL_NAME=js
++JS_CONFIG_NAME=js-config
++fi
++
++
+ changequote([,])
+ if test -n "$IS_ALPHA"; then
+ changequote(,)
+@@ -241,6 +251,8 @@ if test -n "$IS_ALPHA"; then
+ fi
+ AC_DEFINE_UNQUOTED(MOZJS_MAJOR_VERSION,"$MOZJS_MAJOR_VERSION")
+ AC_DEFINE_UNQUOTED(MOZJS_MINOR_VERSION,"$MOZJS_MINOR_VERSION")
++AC_SUBST(JS_CONFIG_NAME)
++AC_SUBST(JS_SHELL_NAME)
+ AC_SUBST(MOZJS_MAJOR_VERSION)
+ AC_SUBST(MOZJS_MINOR_VERSION)
+ AC_SUBST(MOZJS_PATCH_VERSION)
+@@ -4513,8 +4525,8 @@ AC_OUTPUT($MAKEFILES)
+
+ # Produce the js-config script at configure time; see the comments for
+ # 'js-config' in Makefile.in.
+-AC_MSG_RESULT(invoking $MAKE to create js-config script)
+-$MAKE js-config
++AC_MSG_RESULT(invoking $MAKE to create $JS_CONFIG_NAME script)
++$MAKE $JS_CONFIG_NAME
+
+ # Build jsctypes if it's enabled.
+ if test "$JS_HAS_CTYPES" -a -z "$MOZ_NATIVE_FFI"; then
+diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
+--- a/js/src/shell/Makefile.in
++++ b/js/src/shell/Makefile.in
+@@ -11,7 +11,7 @@ VPATH = @srcdir@
+
+ include $(DEPTH)/config/autoconf.mk
+
+-PROGRAM = js$(BIN_SUFFIX)
++PROGRAM = $(JS_SHELL_NAME)$(BIN_SUFFIX)
+ CPPSRCS = \
+ js.cpp \
+ jsoptparse.cpp \
diff --git a/patches/bug835551-required-defines.patch b/patches/bug835551-required-defines.patch
new file mode 100644
index 0000000..9947e48
--- /dev/null
+++ b/patches/bug835551-required-defines.patch
@@ -0,0 +1,60 @@
+# HG changeset patch
+# Parent 83b1ddfdda60aae46f8782fc7e02687eee07828d
+# User Jeff Walden <jwalden@mit.edu>
+Bug 835551 - Add a new header consolidating non-configure-generated #defines that we require in order to build. NOT REVIEWED YET
+
+diff --git a/js/public/RequiredDefines.h b/js/public/RequiredDefines.h
+new file mode 100644
+--- /dev/null
++++ b/js/public/RequiredDefines.h
+@@ -0,0 +1,24 @@
++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=79:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++/*
++ * Various #defines required to build SpiderMonkey. Embedders should add this
++ * file to the start of the command line via -include or a similar mechanism,
++ * or SpiderMonkey public headers may not work correctly.
++ */
++
++#ifndef js_RequiredDefines_h___
++#define js_RequiredDefines_h___
++
++/*
++ * The c99 defining the limit macros (UINT32_MAX for example), says:
++ * C++ implementations should define these macros only when __STDC_LIMIT_MACROS
++ * is defined before <stdint.h> is included.
++ */
++#define __STDC_LIMIT_MACROS
++
++#endif /* js_RequiredDefines_h___ */
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -220,6 +220,7 @@ EXPORTS_js = \
+ HashTable.h \
+ LegacyIntTypes.h \
+ MemoryMetrics.h \
++ RequiredDefines.h \
+ TemplateLib.h \
+ Utility.h \
+ Vector.h \
+diff --git a/js/src/js-confdefs.h.in b/js/src/js-confdefs.h.in
+--- a/js/src/js-confdefs.h.in
++++ b/js/src/js-confdefs.h.in
+@@ -8,10 +8,6 @@
+
+ @ALLDEFINES@
+
+-/* The c99 defining the limit macros (UINT32_MAX for example), says:
+- * C++ implementations should define these macros only when __STDC_LIMIT_MACROS
+- * is defined before <stdint.h> is included. */
+-#define __STDC_LIMIT_MACROS
++#include "js/RequiredDefines.h"
+
+ #endif /* _JS_CONFDEFS_H_ */
+-
diff --git a/patches/bug842889-fix-version.patch b/patches/bug842889-fix-version.patch
new file mode 100644
index 0000000..bfd7784
--- /dev/null
+++ b/patches/bug842889-fix-version.patch
@@ -0,0 +1,27 @@
+From fefd6dcc8c5af4dd4e593a351b6b5cd9d0bde5be Mon Sep 17 00:00:00 2001
+From: Tim Lunn <tim@feathertop.org>
+Date: Wed, 20 Feb 2013 14:22:35 +1100
+Subject: [PATCH] use MOZILLA_VERSION for JS_GetImplementationVersion()
+
+---
+ js/src/jsapi.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp
+index 83ee6cd..b89911e 100644
+--- a/js/src/jsapi.cpp
++++ b/js/src/jsapi.cpp
+@@ -1409,7 +1409,7 @@ JS_SetJitHardening(JSRuntime *rt, JSBool enabled)
+ JS_PUBLIC_API(const char *)
+ JS_GetImplementationVersion(void)
+ {
+- return "JavaScript-C 1.8.5+ 2011-04-16";
++ return "JavaScript-C " MOZILLA_VERSION;
+ }
+
+ JS_PUBLIC_API(void)
+--
+1.8.1.2
+
+
+
diff --git a/patches/bug852789-clear-selfhosting-global.patch b/patches/bug852789-clear-selfhosting-global.patch
new file mode 100644
index 0000000..8423731
--- /dev/null
+++ b/patches/bug852789-clear-selfhosting-global.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# Parent 5e2aadf0d4c168213137dd6859588a12a6887769
+Bug 852789 - (Backported) Clear the runtime's self-hosting global on destruction of last context.
+
+diff --git a/js/src/jscntxt.cpp b/js/src/jscntxt.cpp
+--- a/js/src/jscntxt.cpp
++++ b/js/src/jscntxt.cpp
+@@ -410,6 +410,8 @@ js::DestroyContext(JSContext *cx, Destro
+ /* Unpin all common atoms before final GC. */
+ FinishCommonAtoms(rt);
+
++ rt->finishSelfHosting();
++
+ /* Clear debugging state to remove GC roots. */
+ for (CompartmentsIter c(rt); !c.done(); c.next())
+ c->clearTraps(rt->defaultFreeOp());
+diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h
+--- a/js/src/jscntxt.h
++++ b/js/src/jscntxt.h
+@@ -448,6 +448,10 @@ struct JSRuntime : js::RuntimeFriendFiel
+ JSFunction *getSelfHostedFunction(JSContext *cx, const char *name);
+ bool cloneSelfHostedValueById(JSContext *cx, jsid id, js::HandleObject holder, js::Value *vp);
+
++ void finishSelfHosting() {
++ selfHostedGlobal_ = NULL;
++ }
++
+ /* Base address of the native stack for the current thread. */
+ uintptr_t nativeStackBase;
+
diff --git a/patches/openbsd-dll-suffix.patch b/patches/openbsd-dll-suffix.patch
new file mode 100644
index 0000000..e2536c1
--- /dev/null
+++ b/patches/openbsd-dll-suffix.patch
@@ -0,0 +1,16 @@
+diff --git a/js/src/configure.in b/js/src/configure.in
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -1959,7 +1959,11 @@ ia64*-hpux*)
+ ;;
+
+ *-openbsd*)
+- DLL_SUFFIX='.so.$(if $(SO_VERSION),$(SO_VERSION),1.0)'
++ if test "$SO_VERSION"; then
++ DLL_SUFFIX=".so.$SO_VERSION"
++ else
++ DLL_SUFFIX=".so.1.0"
++ fi
+ MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib -Wl,-rpath-link,$(if $(X11BASE),$(X11BASE),/usr/X11R6)/lib'
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
diff --git a/patches/quell-c++0x-warnings-clang.patch b/patches/quell-c++0x-warnings-clang.patch
new file mode 100644
index 0000000..31dc5f1
--- /dev/null
+++ b/patches/quell-c++0x-warnings-clang.patch
@@ -0,0 +1,17 @@
+# HG changeset patch
+# Parent 8b85cfdb7719c664652ebb389c5375a515dd109a
+diff --git a/mfbt/Attributes.h b/mfbt/Attributes.h
+--- a/mfbt/Attributes.h
++++ b/mfbt/Attributes.h
+@@ -13,6 +13,11 @@
+ * code that is (only currently) mfbt-incompatible.
+ */
+
++/* Suppress any warnings about c++0x extensions. */
++#if defined(__clang__)
++# pragma clang diagnostic ignored "-Wc++0x-extensions"
++#endif
++
+ /*
+ * MOZ_INLINE is a macro which expands to tell the compiler that the method
+ * decorated with it should be inlined. This macro is usable from C and C++
diff --git a/patches/quell-clang-warnings.patch b/patches/quell-clang-warnings.patch
new file mode 100644
index 0000000..5bcee20
--- /dev/null
+++ b/patches/quell-clang-warnings.patch
@@ -0,0 +1,140 @@
+# HG changeset patch
+# Parent cbcdf88440f5545fdec2eec649760589a3dc8dc1
+Fix clang warnings on Linux.
+
+diff --git a/js/src/builtin/ParallelArray.cpp b/js/src/builtin/ParallelArray.cpp
+--- a/js/src/builtin/ParallelArray.cpp
++++ b/js/src/builtin/ParallelArray.cpp
+@@ -31,12 +31,14 @@ using namespace js::types;
+ typedef ParallelArrayObject::IndexVector IndexVector;
+ typedef ParallelArrayObject::IndexInfo IndexInfo;
+
++#ifdef DEBUG
+ static bool
+ ReportBadArg(JSContext *cx, const char *s = "")
+ {
+ JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_PAR_ARRAY_BAD_ARG, s);
+ return false;
+ }
++#endif // DEBUG
+
+ bool
+ ParallelArrayObject::IndexInfo::isInitialized() const
+diff --git a/js/src/jsapi-tests/testValueABI.cpp b/js/src/jsapi-tests/testValueABI.cpp
+--- a/js/src/jsapi-tests/testValueABI.cpp
++++ b/js/src/jsapi-tests/testValueABI.cpp
+@@ -14,6 +14,11 @@
+ * C++ because the default alignments of js::Value and jsval_layout differ.
+ */
+
++#if defined(__clang__)
++# pragma clang diagnostic push
++# pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
++#endif
++
+ extern "C" {
+
+ extern JSBool
+@@ -27,6 +32,10 @@ C_jsvalAlignmentTest();
+
+ }
+
++#if defined(__clang__)
++# pragma clang diagnostic pop
++#endif
++
+ BEGIN_TEST(testValueABI_retparam)
+ {
+ JS::RootedObject obj(cx, JS_GetGlobalObject(cx));
+diff --git a/js/src/jsapi.h b/js/src/jsapi.h
+--- a/js/src/jsapi.h
++++ b/js/src/jsapi.h
+@@ -32,6 +32,13 @@
+ #include "js/Vector.h"
+ #endif
+
++/* Silence clang warning about return type linkage. */
++#if defined(__clang__)
++# pragma clang diagnostic push
++# pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
++#endif
++
++
+ /************************************************************************/
+
+ /* JS::Value can store a full int32_t. */
+@@ -6300,4 +6307,9 @@ JS_DecodeInterpretedFunction(JSContext *
+
+ JS_END_EXTERN_C
+
++/* Restore initial diagnostics. */
++#if defined(__clang__)
++# pragma clang diagnostic pop
++#endif
++
+ #endif /* jsapi_h___ */
+diff --git a/js/src/jsdbgapi.h b/js/src/jsdbgapi.h
+--- a/js/src/jsdbgapi.h
++++ b/js/src/jsdbgapi.h
+@@ -13,6 +13,12 @@
+ #include "jsapi.h"
+ #include "jsprvtd.h"
+
++/* Silence clang warning about return type linkage. */
++#if defined(__clang__)
++# pragma clang diagnostic push
++# pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
++#endif
++
+ JS_BEGIN_EXTERN_C
+
+ extern JS_PUBLIC_API(JSCrossCompartmentCall *)
+@@ -526,4 +532,9 @@ js_CallContextDebugHandler(JSContext *cx
+
+ JS_END_EXTERN_C
+
++/* Restore initial diagnostics. */
++#if defined(__clang__)
++# pragma clang diagnostic pop
++#endif
++
+ #endif /* jsdbgapi_h___ */
+diff --git a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
+--- a/js/src/jstypedarray.cpp
++++ b/js/src/jstypedarray.cpp
+@@ -1831,6 +1831,7 @@ class TypedArrayTemplate
+ JS_ASSERT(len <= length(thisTypedArrayObj) - offset);
+ NativeType *dest = static_cast<NativeType*>(viewData(thisTypedArrayObj)) + offset;
+ SkipRoot skip(cx, &dest);
++ (void)skip;
+
+ if (ar->isDenseArray() && ar->getDenseArrayInitializedLength() >= len) {
+ JS_ASSERT(ar->getArrayLength() == len);
+diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
+--- a/js/src/vm/Debugger.cpp
++++ b/js/src/vm/Debugger.cpp
+@@ -3379,6 +3379,7 @@ DebuggerFrame_setOnPop(JSContext *cx, un
+ {
+ REQUIRE_ARGC("Debugger.Frame.set onPop", 1);
+ THIS_FRAME(cx, argc, vp, "set onPop", args, thisobj, fp);
++ (void) fp;
+ if (!IsValidHook(args[0])) {
+ JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_NOT_CALLABLE_OR_UNDEFINED);
+ return false;
+diff --git a/mfbt/double-conversion/strtod.cc b/mfbt/double-conversion/strtod.cc
+--- a/mfbt/double-conversion/strtod.cc
++++ b/mfbt/double-conversion/strtod.cc
+@@ -515,11 +515,12 @@ float Strtof(Vector<const char> buffer,
+ double double_next2 = Double(double_next).NextDouble();
+ f4 = static_cast<float>(double_next2);
+ }
++ (void)f2;
+ assert(f1 <= f2 && f2 <= f3 && f3 <= f4);
+
+ // If the guess doesn't lie near a single-precision boundary we can simply
+ // return its float-value.
+- if ((f1 == f4)) {
++ if (f1 == f4) {
+ return float_guess;
+ }
+
diff --git a/patches/quell-common-warnings.patch b/patches/quell-common-warnings.patch
new file mode 100644
index 0000000..e99cf79
--- /dev/null
+++ b/patches/quell-common-warnings.patch
@@ -0,0 +1,32 @@
+# HG changeset patch
+# Parent 081449ca02037816c9cc4f3d8f9c6918bbff6d76
+diff --git a/js/src/gc/Root.h b/js/src/gc/Root.h
+--- a/js/src/gc/Root.h
++++ b/js/src/gc/Root.h
+@@ -277,6 +277,7 @@ template <>
+ struct RootSink<JSStableString *> {
+ static void dispose(JSStableString *ptr) {
+ JSStableString * volatile sink;
++ (void) sink;
+ sink = ptr;
+ }
+ };
+diff --git a/js/src/vm/ObjectImpl-inl.h b/js/src/vm/ObjectImpl-inl.h
+--- a/js/src/vm/ObjectImpl-inl.h
++++ b/js/src/vm/ObjectImpl-inl.h
+@@ -210,6 +210,7 @@ ValueCompartment(const js::Value &value)
+ return static_cast<js::gc::Cell *>(value.toGCThing())->compartment();
+ }
+
++#ifdef DEBUG
+ static bool
+ IsValueInCompartment(js::Value v, JSCompartment *comp)
+ {
+@@ -218,6 +219,7 @@ IsValueInCompartment(js::Value v, JSComp
+ JSCompartment *vcomp = ValueCompartment(v);
+ return vcomp == comp->rt->atomsCompartment || vcomp == comp;
+ }
++#endif
+
+ inline void
+ js::ObjectImpl::setSlot(uint32_t slot, const js::Value &value)
diff --git a/patches/quell-jsversion-warning.patch b/patches/quell-jsversion-warning.patch
new file mode 100644
index 0000000..9c8b46c
--- /dev/null
+++ b/patches/quell-jsversion-warning.patch
@@ -0,0 +1,13 @@
+# HG changeset patch
+# Parent 21cc980c87df54b64deb70839bf87744b8f894d8
+diff --git a/js/src/jsversion.h b/js/src/jsversion.h
+--- a/js/src/jsversion.h
++++ b/js/src/jsversion.h
+@@ -138,7 +138,6 @@
+
+ #elif JS_VERSION == 186
+
+-#warning JS_VERSION is deprecated, please use MOZJS_MAJOR_VERSION et. al.
+ #define JS_HAS_STR_HTML_HELPERS 1 /* has str.anchor, str.bold, etc. */
+ #define JS_HAS_OBJ_PROTO_PROP 1 /* has o.__proto__ etc. */
+ #define JS_HAS_OBJ_WATCHPOINT 1 /* has o.watch and o.unwatch */
diff --git a/patches/series b/patches/series
new file mode 100644
index 0000000..2ca8216
--- /dev/null
+++ b/patches/series
@@ -0,0 +1,22 @@
+bug835551-required-defines.patch # Landed on m-c, needs green try run + landing on esr17
+
+bug809430-add-symbol-versions.patch # r+, needs landing on m-i. Unneeded?
+
+bug812265-bump-JS_VERSION.patch # r+, carrying rebased version, needs landing on esr17
+
+bug812265-setup-versioning_3.patch # r+ glandium.
+bug812265-versioned-MOZ_JS_LIBS_2.patch # r+ glandium.
+bug812265-versioned-js-config.patch # r+ glandium.
+
+bug842889-fix-version.patch # No flags.
+
+bug648721-openbsd-SO_VERSION.patch # Landed on m-c.
+bug618485-jsuword-payload.patch # Not landed on m-c (accidental? ask luke).
+
+quell-common-warnings.patch # Could be landed, but we can carry it separately.
+quell-jsversion-warning.patch # Should not be landed.
+quell-clang-warnings.patch # The pragma stuff should be landed.
+quell-c++0x-warnings-clang.patch # Possibly should be landed.
+
+openbsd-dll-suffix.patch # Already fixed on m-c. Bug 735599, Comment 53
+bug852789-clear-selfhosting-global.patch # Landed on m-c.