public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/, dev-lang/spidermonkey/files/ff45/, ...
@ 2017-10-03 15:50 Ian Stakenvicius
  0 siblings, 0 replies; only message in thread
From: Ian Stakenvicius @ 2017-10-03 15:50 UTC (permalink / raw
  To: gentoo-commits

commit:     a4e326514db8e1f2c4423fc326f2983de2fad8b4
Author:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  3 14:38:14 2017 +0000
Commit:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
CommitDate: Tue Oct  3 15:49:57 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4e32651

dev-lang/spidermonkey: file and package cleanups

- Dropped spidermonkey-1.8.5-r5
- Migrated same-slot patches to tarballs to clean up ${FILESDIR}
- fixed SRC_URI to point to mozilla http repo instead of the log-removed ftp

Package-Manager: Portage-2.3.8, Repoman-2.3.1

 dev-lang/spidermonkey/Manifest                     |   5 +
 .../files/ff45/7000_drop-Wl-build-id_v4.patch      |  17 -
 .../files/ff45/7003_freebsd_jscpucfg.patch         |  22 -
 .../files/ff45/8001_hppa_js_configure.patch        |  21 -
 .../ff45/8007_nonejit_ppc64_fix_bug1253216.patch   |  46 --
 .../8008_nonejit_x86_fix_based_on_bug1253216.patch |  11 -
 .../spidermonkey/files/ff45/8014_ia64_js.patch     | 248 ---------
 .../files/mozilla_configure_regexp_esr.patch       |  32 --
 .../files/mozilla_configure_regexp_esr38.patch     |  32 --
 dev-lang/spidermonkey/files/mozjs38-1269317.patch  | 124 -----
 .../spidermonkey/files/mozjs38-copy-headers.patch  |  20 -
 .../files/mozjs38-fix-tracelogger.patch            | 605 ---------------------
 .../files/mozjs38-pkg-config-version.patch         |  22 -
 dev-lang/spidermonkey/files/mozjs45-1266366.patch  |  29 -
 .../files/spidermonkey-1.5-build.patch             | 138 -----
 .../files/spidermonkey-1.6-header.patch            |  13 -
 .../files/spidermonkey-1.7.0-ldflags.patch         |  42 --
 .../files/spidermonkey-1.7.0-threadsafe.diff       |  18 -
 .../spidermonkey-1.8.5-arm_respect_cflags-3.patch  |  99 ----
 .../spidermonkey-1.8.5-fix-install-symlinks.patch  |  15 -
 .../files/spidermonkey-1.8.5-fix-ppc64.patch       |  61 ---
 .../files/spidermonkey-1.8.5-gcc6.patch            | 144 -----
 .../files/spidermonkey-1.8.5-ia64-fix.patch        |  53 --
 .../spidermonkey-1.8.5-ia64-static-strings.patch   | 381 -------------
 .../files/spidermonkey-1.8.5-isfinite.patch        |  11 -
 .../spidermonkey-1.8.5-perf_event-check.patch      |  21 -
 .../files/spidermonkey-1.8.5-symbol-versions.patch |  32 --
 .../spidermonkey-1.8.7-freebsd-pthreads.patch      |  11 -
 .../files/spidermonkey-1.8.7-x32.patch             |  25 -
 .../spidermonkey/files/spidermonkey-17-clang.patch |  18 -
 .../spidermonkey-17-fix_pointer_dereference.patch  |  30 -
 .../files/spidermonkey-17-ia64-mmap.patch          |  67 ---
 .../files/spidermonkey-17-js-config-shebang.patch  |  22 -
 .../spidermonkey-17.0.0-fix-file-permissions.patch |  37 --
 .../files/spidermonkey-24-system-icu.patch         | 199 -------
 .../spidermonkey-24-upward-growing-stack.patch     |  41 --
 .../spidermonkey-24.2.0-fix-file-permissions.patch |  29 -
 .../files/spidermonkey-38-jsapi-tests.patch        |  16 -
 ...spidermonkey-45-dont-symlink-non-objfiles.patch |  21 -
 dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild |  14 +-
 dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild |  23 +-
 dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild | 146 -----
 dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild |  26 +-
 .../spidermonkey/spidermonkey-17.0.0-r4.ebuild     |  11 +-
 .../spidermonkey/spidermonkey-17.0.0-r5.ebuild     |  13 +-
 .../spidermonkey/spidermonkey-24.2.0-r3.ebuild     |  11 +-
 .../spidermonkey/spidermonkey-24.2.0-r4.ebuild     |  11 +-
 .../spidermonkey/spidermonkey-38.2.1_rc0.ebuild    |  15 +-
 dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild   |  15 +-
 49 files changed, 80 insertions(+), 2983 deletions(-)

diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 312f1709f4d..a8bbf9425ed 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -6,3 +6,8 @@ DIST mozjs-45.0.2.tar.bz2 97508152 SHA256 570530b1e551bf4a459d7cae875f33f99d5ef0
 DIST mozjs-52.2.0_pre20170719.tar.bz2 30630133 SHA256 2bab92b432ecbe665616440594463abfb21ce3aff573f360f19ef0cce8ce4c77 SHA512 9657006e071bdf0b6006ab806949eb8371f4d749989d95a3a46da0baedfe669727ccd6430c2022a4ec5ce2bb9cd9a231aba85605de1319a5c678633f0001a78c WHIRLPOOL 14db035ad690b416b793df34a065ddf5096e43346f5a0462cf79605f1745fa18f7f578ae46b0eadeeef3fb7369e76f812c4cdfe227b1442d277fd80625998c52
 DIST mozjs17.0.0.tar.gz 6778934 SHA256 321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba SHA512 39b68aeb9f712f146778d8b68ee795709a1372c8ab893a222af4eb34882427d6f5cf877e743d6cb2f1b4348c194d8f3774f00cb775b03515b34b49560b748be4 WHIRLPOOL 4df7b51577787194065162b09d2c3dda849c13fa901305f9925d4ca5d38bb7f8e2daa943099e003fb9d11f9264ae2d77ccf04e5eea11e3ddcb624b504b99d52f
 DIST spidermonkey-52.0-patches-0.tar.xz 5172 SHA256 20165c0fbf5d441cea6217a7a6dca8b8623b5dbba2496eb769aaef3ca93647bf SHA512 88ad640fb0efa4972f1b7782bd0abee1751b73914ee51faade93b25c4d8eec64e7693898842a406c49fc2ab43733404efeccb138afb64d2193b9a5eb612578e3 WHIRLPOOL bd9f264d54bfd14ad9f339229a29a66f873d2ae66fbbc55edd4ae80135f08c6cd4a5e9c5ab65254749ecbafb7c8fdaa5c5936275e263e53ce47ab606d143114c
+DIST spidermonkey-slot0-patches-01.tar.xz 10488 SHA256 7f0bf9921b9320046b9f06afaa1e0764aead72770ef0a3c29f4967aa20f9f7f9 SHA512 6c878ed0b50c052989a8b965fed845e9c672b691f4c4b1f98ee82e81a33880e1e6bf1dac8222d71322553282de602a88272dedebbcf50d27967fc172f0a8054a WHIRLPOOL 6a35cd027af0b7e730f8e563b9a2048bc8c7b8447889ae4b0cb719a12d48917c34b6e694c84e0e0c23a45b5f5d016580ceb97ac58527f705ffe2a59d56f15869
+DIST spidermonkey-slot17-patches-01.tar.xz 2748 SHA256 366ff6db042face813c7e2145184e750d7f8ec44c0e8725c0b53d6be0cc33e2b SHA512 21a90f85d156de3cca9811317507162a458f908bb447924fcfbf49b7bb70496b611ce7df90b90775316b8ceafda56692be3bf856b168b83ed40b8a5c668eed3f WHIRLPOOL bee9e8b46200a2f8b41d5fa208a18471758c7bc1c08c9621a46e54846f49fecb37325a8ada9c438119e4772554078870a5e3d4d76d9d6e13e2d13c287ed0834a
+DIST spidermonkey-slot24-patches-01.tar.xz 3444 SHA256 6a16001d665443c5e40c3237f6adc16589b26993e9d3c87577e6feabae42f7e0 SHA512 712250983f726eb2fe7ae243e9ca510b6e5b8fa0f221fe5120c2e2f75334f7e4b10b8ab172869d7333a120529dbc2a513c170533d5ad5af27a2643ce1384bbdb WHIRLPOOL ec895aabb0486b9eea41bbc005af552cadb587450af72de79a7d4a20f9258b589c63cf1f8b3afbba8244fe8b748937ebcbf572f1655a57e68c0d2b482cddd153
+DIST spidermonkey-slot38-patches-01.tar.xz 7472 SHA256 ff4b66116b18b376630efa0ced0c0ce8c3a636c43b75e34e904c87f8d4cd4f6a SHA512 953acee985d192c6d0f18f14c70fdda33a7c8f784c6833ca8b75495044b40a8b3f29b281c40dbfcda0c8570c111a3dd1717c2ef0ffd651c1b50d1f2bff1f6d09 WHIRLPOOL b41f21c2b7434332c8bff351af7e030a94db7044995f88df74d7efcf2d196f5ddba6293230b42f528ca22ea2d7fdd58d0da935bb90b155f7c83fc5b3f9645ef5
+DIST spidermonkey-slot45-patches-01.tar.xz 5092 SHA256 713e03f4c95908d93003fa1ca776823cccaf8fdc27db09ea59176edc318504dc SHA512 d52f038a7b4f7b410b5a1f94a55962adafc5906e7d85f605f3fe45ad49417c2b9d58d853a81b5d2395a2842c9780992d5a2c1a0e67aa77fb09f21aff9aeb0f7a WHIRLPOOL 9e4119af5a09f155a8f8781448364a9262ab2fb8d085a7235498f555ffa64eb054706ada3548ac40f76e686ed80e2777d39c565a631bf58b0c2e45f6195ce47b

diff --git a/dev-lang/spidermonkey/files/ff45/7000_drop-Wl-build-id_v4.patch b/dev-lang/spidermonkey/files/ff45/7000_drop-Wl-build-id_v4.patch
deleted file mode 100644
index 8a1e1dd9988..00000000000
--- a/dev-lang/spidermonkey/files/ff45/7000_drop-Wl-build-id_v4.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/js/src/configure.in	2014-06-05 21:15:27.000000000 -0400
-+++ b/js/src/configure.in	2014-06-13 11:01:51.130703283 -0400
-@@ -1156,14 +1156,6 @@
-                   AC_MSG_RESULT([no])
-                   LDFLAGS=$_SAVE_LDFLAGS)
- 
--    AC_MSG_CHECKING([for --build-id option to ld])
--    _SAVE_LDFLAGS=$LDFLAGS
--    LDFLAGS="$LDFLAGS -Wl,--build-id"
--    AC_TRY_LINK(,,AC_MSG_RESULT([yes])
--                  [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
--                  AC_MSG_RESULT([no])
--                  LDFLAGS=$_SAVE_LDFLAGS)
--
-     # Turn on gcc/clang warnings:
-     # https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html
-     #

diff --git a/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch b/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch
deleted file mode 100644
index 467bf444144..00000000000
--- a/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/js/src/jscpucfg.h	2012-01-18 17:38:54.409461514 +0100
-+++ b/js/src/jscpucfg.h	2012-01-18 17:38:59.522462164 +0100
-@@ -77,6 +77,19 @@
- #define IS_BIG_ENDIAN 1
- #endif
- 
-+#elif defined(__FreeBSD__)
-+#include <sys/endian.h>
-+
-+#if defined(BYTE_ORDER)
-+#if BYTE_ORDER == LITTLE_ENDIAN
-+#define IS_LITTLE_ENDIAN 1
-+#undef  IS_BIG_ENDIAN
-+#elif BYTE_ORDER == BIG_ENDIAN
-+#undef  IS_LITTLE_ENDIAN
-+#define IS_BIG_ENDIAN 1
-+#endif
-+#endif
-+
- #elif defined(JS_HAVE_ENDIAN_H)
- #include <endian.h>
- 

diff --git a/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch b/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch
deleted file mode 100644
index a33ab3cd614..00000000000
--- a/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -958,7 +958,7 @@
-     CPU_ARCH=s390x
-     ;;
- 
--hppa* | parisc)
-+hppa* | parisc*)
-     CPU_ARCH=hppa
-     ;;
- 
-@@ -2009,6 +2009,9 @@
-     AC_DEFINE(JS_CPU_MIPS)
-     AC_DEFINE(JS_NUNBOX32)
-     ;;
-+hppa*)
-+    AC_DEFINE(JS_NUNBOX32)
-+    ;;
- esac
- 
- MOZ_ARG_DISABLE_BOOL(ion,

diff --git a/dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1253216.patch b/dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1253216.patch
deleted file mode 100644
index 26e9373dddf..00000000000
--- a/dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1253216.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1457091735 -3600
-# Node ID 69f237c2cf9131e97372debee01931dbacd064e5
-# Parent  3aa4483740828617001060fe7386051020521e90
-Bug 1253216 - clean up the atomic ops ifdef nest. r=jorendorff
-
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -318,21 +318,29 @@ AtomicOperations::isLockfree(int32_t siz
- } // namespace js
- 
- #if defined(JS_CODEGEN_ARM)
- # include "jit/arm/AtomicOperations-arm.h"
- #elif defined(JS_CODEGEN_ARM64)
- # include "jit/arm64/AtomicOperations-arm64.h"
- #elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
- # include "jit/mips-shared/AtomicOperations-mips-shared.h"
--#elif defined(__ppc64__) || defined(__PPC64_)       \
--    || defined(__ppc64le__) || defined(__PPC64LE__) \
--    || defined(__ppc__) || defined(__PPC__)
-+#elif defined(__ppc__) || defined(__PPC__)
- # include "jit/none/AtomicOperations-ppc.h"
- #elif defined(JS_CODEGEN_NONE)
--# include "jit/none/AtomicOperations-none.h"
-+  // You can disable the JIT with --disable-ion but you must still
-+  // provide the atomic operations that will be used by the JS engine.
-+  // When the JIT is disabled the operations are simply safe-for-races
-+  // C++ realizations of atomics.  These operations cannot be written
-+  // in portable C++, hence the default here is to crash.  See the
-+  // top of the file for more guidance.
-+# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
-+#  include "jit/none/AtomicOperations-ppc.h"
-+# else
-+#  include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
-+# endif
- #elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
- # include "jit/x86-shared/AtomicOperations-x86-shared.h"
- #else
- # error "Atomic operations must be defined for this platform"
- #endif
- 
- #endif // jit_AtomicOperations_h
-

diff --git a/dev-lang/spidermonkey/files/ff45/8008_nonejit_x86_fix_based_on_bug1253216.patch b/dev-lang/spidermonkey/files/ff45/8008_nonejit_x86_fix_based_on_bug1253216.patch
deleted file mode 100644
index 86b27130205..00000000000
--- a/dev-lang/spidermonkey/files/ff45/8008_nonejit_x86_fix_based_on_bug1253216.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/js/src/jit/AtomicOperations.h	2016-03-12 13:42:27.914524205 -0500
-+++ b/js/src/jit/AtomicOperations.h	2016-03-12 13:42:15.644573630 -0500
-@@ -311,6 +311,8 @@
-   // top of the file for more guidance.
- # if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
- #  include "jit/none/AtomicOperations-ppc.h"
-+# elif defined(__i386__) || defined(__x86_64__)
-+#  include "jit/x86-shared/AtomicOperations-x86-shared.h"
- # else
- #  include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
- # endif

diff --git a/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch b/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch
deleted file mode 100644
index 73075919a86..00000000000
--- a/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch
+++ /dev/null
@@ -1,248 +0,0 @@
---- a/js/src/jit/AtomicOperations.h	2016-11-08 21:27:30.000000000 +0100
-+++ b/js/src/jit/AtomicOperations.h	2016-11-08 22:17:59.280251831 +0100
-@@ -311,6 +311,8 @@
-   // top of the file for more guidance.
- # if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
- #  include "jit/none/AtomicOperations-ppc.h"
-+# elif defined(__ia64__)
-+#  include "jit/none/AtomicOperations-ia64.h"
- # elif defined(__i386__) || defined(__x86_64__)
- #  include "jit/x86-shared/AtomicOperations-x86-shared.h"
- # else
---- /dev/null
-+++ b/js/src/jit/none/AtomicOperations-ia64.h	2016-11-08 22:09:41.378809457 +0100
-@@ -0,0 +1,234 @@
-+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-+ * vim: set ts=8 sts=4 et sw=4 tw=99:
-+ * 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/. */
-+
-+/* For documentation, see jit/AtomicOperations.h */
-+
-+#ifndef jit_ia64_AtomicOperations_ia64_h
-+#define jit_ia64_AtomicOperations_ia64_h
-+
-+#include "mozilla/Assertions.h"
-+#include "mozilla/Types.h"
-+
-+#if defined(__GNUC__)
-+
-+// The default implementation tactic for gcc is to use the newer
-+// __atomic intrinsics added for use in C++11 <atomic>.  Where that
-+// isn't available, we use GCC's older __sync functions instead.
-+//
-+// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward
-+// compatible option for older compilers: enable this to use GCC's old
-+// __sync functions instead of the newer __atomic functions.  This
-+// will be required for GCC 4.6.x and earlier, should we need to use
-+// those versions.
-+
-+//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+
-+inline bool
-+js::jit::AtomicOperations::isLockfree8()
-+{
-+# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0));
-+    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0));
-+    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0));
-+    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0));
-+    return true;
-+# else
-+    return false;
-+# endif
-+}
-+
-+inline void
-+js::jit::AtomicOperations::fenceSeqCst()
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    __sync_synchronize();
-+# else
-+    __atomic_thread_fence(__ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::loadSeqCst(T* addr)
-+{
-+    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    __sync_synchronize();
-+    T v = *addr;
-+    __sync_synchronize();
-+# else
-+    T v;
-+    __atomic_load(addr, &v, __ATOMIC_SEQ_CST);
-+# endif
-+    return v;
-+}
-+
-+template<typename T>
-+inline void
-+js::jit::AtomicOperations::storeSeqCst(T* addr, T val)
-+{
-+    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    __sync_synchronize();
-+    *addr = val;
-+    __sync_synchronize();
-+# else
-+    __atomic_store(addr, &val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval)
-+{
-+    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_val_compare_and_swap(addr, oldval, newval);
-+# else
-+    __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
-+    return oldval;
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_fetch_and_add(addr, val);
-+# else
-+    return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_fetch_and_sub(addr, val);
-+# else
-+    return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_fetch_and_and(addr, val);
-+# else
-+    return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_fetch_and_or(addr, val);
-+# else
-+    return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    return __sync_fetch_and_xor(addr, val);
-+# else
-+    return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val)
-+{
-+    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    T v;
-+    __sync_synchronize();
-+    do {
-+	v = *addr;
-+    } while (__sync_val_compare_and_swap(addr, v, val) != v);
-+    return v;
-+# else
-+    T v;
-+    __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST);
-+    return v;
-+# endif
-+}
-+
-+template<typename T>
-+inline T
-+js::jit::AtomicOperations::loadSafeWhenRacy(T* addr)
-+{
-+    return *addr;               // FIXME (1208663): not yet safe
-+}
-+
-+template<typename T>
-+inline void
-+js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val)
-+{
-+    *addr = val;                // FIXME (1208663): not yet safe
-+}
-+
-+inline void
-+js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes)
-+{
-+    ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe
-+}
-+
-+inline void
-+js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes)
-+{
-+    ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe
-+}
-+
-+template<size_t nbytes>
-+inline void
-+js::jit::RegionLock::acquire(void* addr)
-+{
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    while (!__sync_bool_compare_and_swap(&spinlock, 0, 1))
-+        ;
-+# else
-+    uint32_t zero = 0;
-+    uint32_t one = 1;
-+    while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) {
-+        zero = 0;
-+        continue;
-+    }
-+# endif
-+}
-+
-+template<size_t nbytes>
-+inline void
-+js::jit::RegionLock::release(void* addr)
-+{
-+    MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock");
-+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+    __sync_sub_and_fetch(&spinlock, 1);
-+# else
-+    uint32_t zero = 0;
-+    __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST);
-+# endif
-+}
-+
-+# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
-+
-+#elif defined(ENABLE_SHARED_ARRAY_BUFFER)
-+
-+# error "Either disable JS shared memory, use GCC, or add code here"
-+
-+#endif
-+
-+#endif // jit_ia64_AtomicOperations_ia64_h

diff --git a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
deleted file mode 100644
index 9e165ff9e88..00000000000
--- a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Jory A. Pratt <anarchy@gentoo.org>
-
-Note: the first occurrence of :space: is [:space:] (with a single pair
-of []), where it should be [[:space:]] (with two pairs of []).
-
-This causes the sed command to fail (with the error message quoted in
-my original report), driving to failure the whole configure step.
-
-https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
-
-diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
---- a/build/autoconf/icu.m4
-+++ b/build/autoconf/icu.m4
-@@ -68,17 +68,17 @@ if test -n "$USE_ICU"; then
-     icudir="$_topsrcdir/intl/icu/source"
-     if test ! -d "$icudir"; then
-         icudir="$_topsrcdir/../../intl/icu/source"
-         if test ! -d "$icudir"; then
-             AC_MSG_ERROR([Cannot find the ICU directory])
-         fi
-     fi
- 
--    version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
-+    version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
-     if test x"$version" = x; then
-        AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
-     fi
-     MOZ_ICU_VERSION="$version"
- 
-     if test "$OS_TARGET" = WINNT; then
-         MOZ_SHARED_ICU=1
-     fi

diff --git a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch
deleted file mode 100644
index 488b02f1281..00000000000
--- a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Jory A. Pratt <anarchy@gentoo.org>
-
-Note: the first occurrence of :space: is [:space:] (with a single pair
-of []), where it should be [[:space:]] (with two pairs of []).
-
-This causes the sed command to fail (with the error message quoted in
-my original report), driving to failure the whole configure step.
-
-https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
-
-diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
---- a/build/autoconf/icu.m4
-+++ b/build/autoconf/icu.m4
-@@ -68,17 +68,17 @@
-     icudir="$_topsrcdir/intl/icu/source"
-     if test ! -d "$icudir"; then
-         icudir="$_topsrcdir/../../intl/icu/source"
-         if test ! -d "$icudir"; then
-             AC_MSG_ERROR([Cannot find the ICU directory])
-         fi
-     fi
- 
--    version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
-+    version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
-     if test x"$version" = x; then
-        AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
-     fi
-     MOZ_ICU_VERSION="$version"
- 
-     if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_NATIVE_ICU}"; then
-         MOZ_SHARED_ICU=1
-     fi

diff --git a/dev-lang/spidermonkey/files/mozjs38-1269317.patch b/dev-lang/spidermonkey/files/mozjs38-1269317.patch
deleted file mode 100644
index 39cc6809af5..00000000000
--- a/dev-lang/spidermonkey/files/mozjs38-1269317.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-1269317.patch
-
---- a/js/src/jit/RegisterSets.h	2017-02-10 17:33:06.210702431 -0800
-+++ b/js/src/jit/RegisterSets.h	2017-02-10 17:43:52.877514146 -0800
-@@ -7,7 +7,6 @@
- #ifndef jit_RegisterSets_h
- #define jit_RegisterSets_h
- 
--#include "mozilla/Alignment.h"
- #include "mozilla/MathAlgorithms.h"
- 
- #include "jit/JitAllocPolicy.h"
-@@ -26,8 +25,8 @@
-     Code code_;
- 
-   public:
--    AnyRegister()
--    { }
-+    AnyRegister() = default;
-+
-     explicit AnyRegister(Register gpr) {
-         code_ = gpr.code();
-     }
-@@ -156,7 +155,7 @@
-     }
- #endif
- 
--    ValueOperand() {}
-+    ValueOperand() = default;
- };
- 
- // Registers to hold either either a typed or untyped value.
-@@ -165,46 +164,25 @@
-     // Type of value being stored.
-     MIRType type_;
- 
--    // Space to hold either an AnyRegister or a ValueOperand.
-     union U {
--        mozilla::AlignedStorage2<AnyRegister> typed;
--        mozilla::AlignedStorage2<ValueOperand> value;
-+        AnyRegister typed;
-+        ValueOperand value;
-     } data;
- 
--    AnyRegister& dataTyped() {
--        MOZ_ASSERT(hasTyped());
--        return *data.typed.addr();
--    }
--    ValueOperand& dataValue() {
--        MOZ_ASSERT(hasValue());
--        return *data.value.addr();
--    }
--
--    AnyRegister dataTyped() const {
--        MOZ_ASSERT(hasTyped());
--        return *data.typed.addr();
--    }
--    const ValueOperand& dataValue() const {
--        MOZ_ASSERT(hasValue());
--        return *data.value.addr();
--    }
--
-   public:
- 
--    TypedOrValueRegister()
--      : type_(MIRType_None)
--    {}
-+    TypedOrValueRegister() = default;
- 
-     TypedOrValueRegister(MIRType type, AnyRegister reg)
-       : type_(type)
-     {
--        dataTyped() = reg;
-+        data.typed = reg;
-     }
- 
-     MOZ_IMPLICIT TypedOrValueRegister(ValueOperand value)
-       : type_(MIRType_Value)
-     {
--        dataValue() = value;
-+        data.value = value;
-     }
- 
-     MIRType type() const {
-@@ -220,11 +198,13 @@
-     }
- 
-     AnyRegister typedReg() const {
--        return dataTyped();
-+        MOZ_ASSERT(hasTyped());
-+        return data.typed;
-     }
- 
-     ValueOperand valueReg() const {
--        return dataValue();
-+        MOZ_ASSERT(hasValue());
-+        return data.value;
-     }
- 
-     AnyRegister scratchReg() {
-@@ -240,19 +220,18 @@
-     // Whether a constant value is being stored.
-     bool constant_;
- 
--    // Space to hold either a Value or a TypedOrValueRegister.
-     union U {
--        mozilla::AlignedStorage2<Value> constant;
--        mozilla::AlignedStorage2<TypedOrValueRegister> reg;
-+        Value constant;
-+        TypedOrValueRegister reg;
-     } data;
- 
-     Value& dataValue() {
-         MOZ_ASSERT(constant());
--        return *data.constant.addr();
-+        return data.constant;
-     }
-     TypedOrValueRegister& dataReg() {
-         MOZ_ASSERT(!constant());
--        return *data.reg.addr();
-+        return data.reg;
-     }
- 
-   public:

diff --git a/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch b/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch
deleted file mode 100644
index 7f352a795c8..00000000000
--- a/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Description: Copy headers on install instead of symlinking
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2014-10-29
-
----
-
-Index: b/python/mozbuild/mozbuild/backend/recursivemake.py
-===================================================================
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -796,7 +796,7 @@
-             return
- 
-         for source, dest, _ in self._walk_hierarchy(obj, exports):
--            self._install_manifests['dist_include'].add_symlink(source, dest)
-+            self._install_manifests['dist_include'].add_copy(source, dest)
- 
-             if not os.path.exists(source):
-                 raise Exception('File listed in EXPORTS does not exist: %s' % source)

diff --git a/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch b/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch
deleted file mode 100644
index 2197f617a04..00000000000
--- a/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch
+++ /dev/null
@@ -1,605 +0,0 @@
-from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch
-
-# === Fix the SM38 tracelogger ===
-# This patch is a squashed version of several patches that were adapted
-# to fix failing hunks.
-#
-# Applied in the following order, they are:
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767
-#    Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210 
-#    Also fix stop-information to make reduce.py work correctly.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914
-#    Limit the memory tracelogger can take.
-#    This causes tracelogger to flush data to the disk regularly and prevents out of 
-#    memory issues if a lot of data gets logged.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618
-#    Fix tracelogger destructor that touches possibly uninitialised hash table.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636
-#    Don't treat extraTextId as containing only extra ids.
-#    This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028
-#    Fix when to keep the payload of a TraceLogger event.
-#    This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649
-#    Handle failing to add to pointermap gracefully.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648
-#    Don't cache based on pointers to movable GC things.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123
-#    Fix the use of LastEntryId in tracelogger.h.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170
-#    Use size in debugger instead of the current id to track last logged item.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844
-#    Move TraceLogger_Invalidation to LOG_ITEM.
-#    Add some debug checks to logTimestamp.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766
-#    Also mark resizing of memory.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403
-#    Only increase capacity by multiples of 2.
-#    Always make sure there are 3 free slots for events.
-# ===
-
-diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js
-new file mode 100644
-index 0000000..023e93e
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1231170.js
-@@ -0,0 +1,3 @@
-+var du = new Debugger();
-+if (typeof du.drainTraceLogger === "function")
-+    du.drainTraceLogger();
-diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js
-new file mode 100644
-index 0000000..81ae7ad
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js
-@@ -0,0 +1,10 @@
-+
-+var du = new Debugger();
-+if (typeof du.setupTraceLogger === "function" &&
-+    typeof oomTest === 'function')
-+{
-+    du.setupTraceLogger({
-+        Scripts: true
-+    })
-+    oomTest(() => function(){});
-+}
-diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp
-index 93e2fda..09049d6 100644
---- a/js/src/jit/Ion.cpp
-+++ b/js/src/jit/Ion.cpp
-@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script)
- 
-     script->destroyCaches();
-     script->unlinkFromRuntime(fop);
-+    // Frees the potential event we have set.
-+    script->traceLoggerScriptEvent_ = TraceLoggerEvent();
-     fop->free_(script);
- }
- 
-diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
-index 26262fd..af7f313 100644
---- a/js/src/vm/Debugger.cpp
-+++ b/js/src/vm/Debugger.cpp
-@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg)
-     objects(cx),
-     environments(cx),
- #ifdef NIGHTLY_BUILD
--    traceLoggerLastDrainedId(0),
-+    traceLoggerLastDrainedSize(0),
-     traceLoggerLastDrainedIteration(0),
- #endif
--    traceLoggerScriptedCallsLastDrainedId(0),
-+    traceLoggerScriptedCallsLastDrainedSize(0),
-     traceLoggerScriptedCallsLastDrainedIteration(0)
- {
-     assertSameCompartment(cx, dbg);
-@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp)
-     size_t num;
-     TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
-     bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration,
--                                         dbg->traceLoggerLastDrainedId);
-+                                         dbg->traceLoggerLastDrainedSize);
-     EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration,
--                                                     &dbg->traceLoggerLastDrainedId,
-+                                                     &dbg->traceLoggerLastDrainedSize,
-                                                      &num);
- 
-     RootedObject array(cx, NewDenseEmptyArray(cx));
-@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
-     size_t num;
-     TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
-     bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration,
--                                         dbg->traceLoggerScriptedCallsLastDrainedId);
-+                                         dbg->traceLoggerScriptedCallsLastDrainedSize);
-     EventEntry* events = logger->getEventsStartingAt(
-                                          &dbg->traceLoggerScriptedCallsLastDrainedIteration,
--                                         &dbg->traceLoggerScriptedCallsLastDrainedId,
-+                                         &dbg->traceLoggerScriptedCallsLastDrainedSize,
-                                          &num);
- 
-     RootedObject array(cx, NewDenseEmptyArray(cx));
-diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h
-index 8cac36a..c92d685 100644
---- a/js/src/vm/Debugger.h
-+++ b/js/src/vm/Debugger.h
-@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger>
-      * lost events.
-      */
- #ifdef NIGHTLY_BUILD
--    uint32_t traceLoggerLastDrainedId;
-+    uint32_t traceLoggerLastDrainedSize;
-     uint32_t traceLoggerLastDrainedIteration;
- #endif
--    uint32_t traceLoggerScriptedCallsLastDrainedId;
-+    uint32_t traceLoggerScriptedCallsLastDrainedSize;
-     uint32_t traceLoggerScriptedCallsLastDrainedIteration;
- 
-     class FrameRange;
-diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp
-index 6715b36..9766a6f 100644
---- a/js/src/vm/TraceLogging.cpp
-+++ b/js/src/vm/TraceLogging.cpp
-@@ -131,7 +131,7 @@ TraceLoggerThread::init()
- {
-     if (!pointerMap.init())
-         return false;
--    if (!extraTextId.init())
-+    if (!textIdPayloads.init())
-         return false;
-     if (!events.init())
-         return false;
-@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread()
-         graph = nullptr;
-     }
- 
--    for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront())
--        js_delete(r.front().value());
--    extraTextId.finish();
--    pointerMap.finish();
-+    if (textIdPayloads.initialized()) {
-+        for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront())
-+            js_delete(r.front().value());
-+    }
- }
- 
- bool
-@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id)
-     if (id < TraceLogger_Last)
-         return TLTextIdString(static_cast<TraceLoggerTextId>(id));
- 
--    TextIdHashMap::Ptr p = extraTextId.lookup(id);
-+    TextIdHashMap::Ptr p = textIdPayloads.lookup(id);
-     MOZ_ASSERT(p);
- 
-     return p->value()->string();
-@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename,
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId)
- {
--    TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId);
--    if (p)
-+    TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId);
-+    if (p) {
-+        MOZ_ASSERT(p->value()->textId() == textId); // Sanity check.
-         return p->value();
-+    }
- 
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr);
- 
--    if (!extraTextId.add(p, textId, payload))
-+    if (!textIdPayloads.add(p, textId, payload))
-         return nullptr;
- 
-     return payload;
-@@ -357,8 +359,10 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(const char* text)
- {
-     PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text);
--    if (p)
-+    if (p) {
-+        MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
-         return p->value();
-+    }
- 
-     size_t len = strlen(text);
-     char* str = js_pod_malloc<char>(len + 1);
-@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
-     MOZ_ASSERT(ret == len);
-     MOZ_ASSERT(strlen(str) == len);
- 
--    uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+    uint32_t textId = nextTextId;
- 
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
-     if (!payload) {
-@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
-         return nullptr;
-     }
- 
--    if (!extraTextId.putNew(textId, payload)) {
-+    if (!textIdPayloads.putNew(textId, payload)) {
-         js_delete(payload);
-         return nullptr;
-     }
- 
--    if (!pointerMap.add(p, text, payload))
--        return nullptr;
--
-     if (graph.get())
-         graph->addTextId(textId, str);
- 
-+    nextTextId++;
-+
-+    if (!pointerMap.add(p, text, payload))
-+        return nullptr;
-+
-     return payload;
- }
- 
-@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
-     if (!traceLoggerState->isTextIdEnabled(type))
-         return getOrCreateEventPayload(type);
- 
--    PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr);
--    if (p)
--        return p->value();
-+    PointerHashMap::AddPtr p;
-+    if (ptr) {
-+        p = pointerMap.lookupForAdd(ptr);
-+        if (p) {
-+            MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
-+            return p->value();
-+        }
-+    }
- 
-     // Compute the length of the string to create.
-     size_t lenFilename = strlen(filename);
-@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
-     MOZ_ASSERT(ret == len);
-     MOZ_ASSERT(strlen(str) == len);
- 
--    uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+    uint32_t textId = nextTextId;
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
-     if (!payload) {
-         js_free(str);
-         return nullptr;
-     }
- 
--    if (!extraTextId.putNew(textId, payload)) {
-+    if (!textIdPayloads.putNew(textId, payload)) {
-         js_delete(payload);
-         return nullptr;
-     }
- 
--    if (!pointerMap.add(p, ptr, payload))
--        return nullptr;
--
-     if (graph.get())
-         graph->addTextId(textId, str);
- 
-+    nextTextId++;
-+
-+    if (ptr) {
-+        if (!pointerMap.add(p, ptr, payload))
-+            return nullptr;
-+    }
-+
-     return payload;
- }
- 
-@@ -453,14 +468,14 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script)
- {
-     return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(),
--                                   script);
-+                                   nullptr);
- }
- 
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type,
-                                            const JS::ReadOnlyCompileOptions& script)
- {
--    return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script);
-+    return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr);
- }
- 
- void
-@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id)
-     if (!traceLoggerState->isTextIdEnabled(id))
-        return;
- 
--    logTimestamp(id);
-+    log(id);
- }
- 
- void
-@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id)
-     if (!traceLoggerState->isTextIdEnabled(id))
-         return;
- 
--    logTimestamp(TraceLogger_Stop);
-+    log(TraceLogger_Stop);
- }
- 
- void
-@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id)
- void
- TraceLoggerThread::logTimestamp(uint32_t id)
- {
-+    MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last);
-+    log(id);
-+}
-+
-+void
-+TraceLoggerThread::log(uint32_t id)
-+{
-     if (enabled == 0)
-         return;
- 
-     MOZ_ASSERT(traceLoggerState);
--    if (!events.ensureSpaceBeforeAdd()) {
-+
-+    // We request for 3 items to add, since if we don't have enough room
-+    // we record the time it took to make more place. To log this information
-+    // we need 2 extra free entries.
-+    if (!events.hasSpaceForAdd(3)) {
-         uint64_t start = rdtsc() - traceLoggerState->startupTime;
- 
--        if (graph.get())
--            graph->log(events);
-+        if (!events.ensureSpaceBeforeAdd(3)) {
-+            if (graph.get())
-+                graph->log(events);
-+
-+            iteration_++;
-+            events.clear();
-+
-+            // Remove the item in the pointerMap for which the payloads
-+            // have no uses anymore
-+            for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) {
-+                if (e.front().value()->uses() != 0)
-+                    continue;
-+
-+                TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId());
-+                MOZ_ASSERT(p);
-+                textIdPayloads.remove(p);
-+
-+                e.removeFront();
-+            }
- 
--        iteration_++;
--        events.clear();
-+            // Free all payloads that have no uses anymore.
-+            for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) {
-+                if (e.front().value()->uses() == 0) {
-+                    js_delete(e.front().value());
-+                    e.removeFront();
-+                }
-+            }
-+        }
- 
-         // Log the time it took to flush the events as being from the
-         // Tracelogger.
-         if (graph.get()) {
--            MOZ_ASSERT(events.capacity() > 2);
-+            MOZ_ASSERT(events.hasSpaceForAdd(2));
-             EventEntry& entryStart = events.pushUninitialized();
-             entryStart.time = start;
-             entryStart.textId = TraceLogger_Internal;
-@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id)
-             entryStop.textId = TraceLogger_Stop;
-         }
- 
--        // Free all TextEvents that have no uses anymore.
--        for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) {
--            if (e.front().value()->uses() == 0) {
--                js_delete(e.front().value());
--                e.removeFront();
--            }
--        }
-     }
- 
-     uint64_t time = rdtsc() - traceLoggerState->startupTime;
-@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent()
-     if (payload_)
-         payload_->release();
- }
-+
-+TraceLoggerEvent&
-+TraceLoggerEvent::operator=(const TraceLoggerEvent& other)
-+{
-+    if (hasPayload())
-+        payload()->release();
-+    if (other.hasPayload())
-+        other.payload()->use();
-+
-+    payload_ = other.payload_;
-+
-+    return *this;
-+}
-diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h
-index a124dcb..91a1eb0 100644
---- a/js/src/vm/TraceLogging.h
-+++ b/js/src/vm/TraceLogging.h
-@@ -110,6 +110,9 @@ class TraceLoggerEvent {
-     bool hasPayload() const {
-         return !!payload_;
-     }
-+
-+    TraceLoggerEvent& operator=(const TraceLoggerEvent& other);
-+    TraceLoggerEvent(const TraceLoggerEvent& event) = delete;
- };
- 
- /**
-@@ -130,6 +133,10 @@ class TraceLoggerEventPayload {
-         uses_(0)
-     { }
- 
-+    ~TraceLoggerEventPayload() {
-+        MOZ_ASSERT(uses_ == 0);
-+    }
-+
-     uint32_t textId() {
-         return textId_;
-     }
-@@ -166,7 +173,8 @@ class TraceLoggerThread
-     mozilla::UniquePtr<TraceLoggerGraph> graph;
- 
-     PointerHashMap pointerMap;
--    TextIdHashMap extraTextId;
-+    TextIdHashMap textIdPayloads;
-+    uint32_t nextTextId;
- 
-     ContinuousSpace<EventEntry> events;
- 
-@@ -181,6 +189,7 @@ class TraceLoggerThread
-       : enabled(0),
-         failed(false),
-         graph(),
-+        nextTextId(TraceLogger_Last),
-         iteration_(0),
-         top(nullptr)
-     { }
-@@ -195,22 +204,22 @@ class TraceLoggerThread
-     bool enable(JSContext* cx);
-     bool disable();
- 
--    // Given the previous iteration and lastEntryId, return an array of events
-+    // Given the previous iteration and size, return an array of events
-     // (there could be lost events). At the same time update the iteration and
--    // lastEntry and gives back how many events there are.
--    EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) {
-+    // size and gives back how many events there are.
-+    EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) {
-         EventEntry* start;
-         if (iteration_ == *lastIteration) {
--            MOZ_ASSERT(events.lastEntryId() >= *lastEntryId);
--            *num = events.lastEntryId() - *lastEntryId;
--            start = events.data() + *lastEntryId + 1;
-+            MOZ_ASSERT(*lastSize <= events.size());
-+            *num = events.size() - *lastSize;
-+            start = events.data() + *lastSize;
-         } else {
--            *num = events.lastEntryId() + 1;
-+            *num = events.size();
-             start = events.data();
-         }
- 
-         *lastIteration = iteration_;
--        *lastEntryId = events.lastEntryId();
-+        *lastSize = events.size();
-         return start;
-     }
- 
-@@ -220,16 +229,16 @@ class TraceLoggerThread
-                               const char** lineno, size_t* lineno_len, const char** colno,
-                               size_t* colno_len);
- 
--    bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) {
-+    bool lostEvents(uint32_t lastIteration, uint32_t lastSize) {
-         // If still logging in the same iteration, there are no lost events.
-         if (lastIteration == iteration_) {
--            MOZ_ASSERT(lastEntryId <= events.lastEntryId());
-+            MOZ_ASSERT(lastSize <= events.size());
-             return false;
-         }
- 
--        // When proceeded to the next iteration and lastEntryId points to
--        // the maximum capacity there are no logs that are lost.
--        if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity())
-+        // If we are in a consecutive iteration we are only sure we didn't lose any events,
-+        // when the lastSize equals the maximum size 'events' can get.
-+        if (lastIteration == iteration_ - 1 && lastSize == events.maxSize())
-             return false;
- 
-         return true;
-@@ -268,6 +277,7 @@ class TraceLoggerThread
-     void stopEvent(uint32_t id);
-   private:
-     void stopEvent();
-+    void log(uint32_t id);
- 
-   public:
-     static unsigned offsetOfEnabled() {
-diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp
-index d1b7f2e..a4eb273 100644
---- a/js/src/vm/TraceLoggingGraph.cpp
-+++ b/js/src/vm/TraceLoggingGraph.cpp
-@@ -276,7 +276,7 @@ TraceLoggerGraph::flush()
-         if (bytesWritten < tree.size())
-             return false;
- 
--        treeOffset += tree.lastEntryId();
-+        treeOffset += tree.size();
-         tree.clear();
-     }
- 
-@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp)
- 
-     if (parent.lastChildId() == 0) {
-         MOZ_ASSERT(!entry.hasChildren());
--        MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset);
-+        MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1);
- 
-         if (!updateHasChildren(parent.treeId()))
-             return false;
-diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h
-index f1c9d0c..10b76d6 100644
---- a/js/src/vm/TraceLoggingTypes.h
-+++ b/js/src/vm/TraceLoggingTypes.h
-@@ -21,7 +21,6 @@
-     _(Internal)                                       \
-     _(Interpreter)                                    \
-     _(InlinedScripts)                                 \
--    _(Invalidation)                                   \
-     _(IonCompilation)                                 \
-     _(IonCompilationPaused)                           \
-     _(IonLinking)                                     \
-@@ -60,6 +59,7 @@
- 
- #define TRACELOGGER_LOG_ITEMS(_)                      \
-     _(Bailout)                                        \
-+    _(Invalidation)                                   \
-     _(Disable)                                        \
-     _(Enable)                                         \
-     _(Stop)
-@@ -130,6 +130,9 @@ class ContinuousSpace {
-     uint32_t size_;
-     uint32_t capacity_;
- 
-+    // The maximum amount of ram memory a continuous space structure can take (in bytes).
-+    static const uint32_t LIMIT = 200 * 1024 * 1024;
-+
-   public:
-     ContinuousSpace ()
-      : data_(nullptr)
-@@ -151,6 +154,10 @@ class ContinuousSpace {
-         data_ = nullptr;
-     }
- 
-+    static uint32_t maxSize() {
-+        return LIMIT / sizeof(T);
-+    }
-+
-     T* data() {
-         return data_;
-     }
-@@ -187,11 +194,14 @@ class ContinuousSpace {
-         if (hasSpaceForAdd(count))
-             return true;
- 
-+        // Limit the size of a continuous buffer.
-+        if (size_ + count > maxSize())
-+            return false;
-+
-         uint32_t nCapacity = capacity_ * 2;
--        if (size_ + count > nCapacity)
--            nCapacity = size_ + count;
--        T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
-+        nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize();
- 
-+        T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
-         if (!entries)
-             return false;
- 

diff --git a/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch b/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch
deleted file mode 100644
index 34a43d1f6df..00000000000
--- a/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Add major version to pkg-config filename.
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2015-05-04
-
-Index: b/js/src/Makefile.in
-===================================================================
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -214,10 +214,10 @@
- $(JS_CONFIG_NAME): js-config
-    cp $^ $@
- 
--$(LIBRARY_NAME).pc: js.pc
-+$(JS_LIBRARY_NAME).pc: js.pc
- 	cp $^ $@
- 
--install:: $(LIBRARY_NAME).pc
-+install:: $(JS_LIBRARY_NAME).pc
- 	$(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
- 
- install:: js-config.h

diff --git a/dev-lang/spidermonkey/files/mozjs45-1266366.patch b/dev-lang/spidermonkey/files/mozjs45-1266366.patch
deleted file mode 100644
index 590f745d14d..00000000000
--- a/dev-lang/spidermonkey/files/mozjs45-1266366.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User Nicolas B. Pierron <nicolas.b.pierron@mozilla.com>
-
-Bug 1266366 - Add branch64 functions to the none-backend MacroAssembler. r=
-
-diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h
-index 512ae81..4441d8d 100644
---- a/js/src/jit/none/MacroAssembler-none.h
-+++ b/js/src/jit/none/MacroAssembler-none.h
-@@ -254,16 +254,18 @@ class MacroAssemblerNone : public Assembler
-     template <typename T, typename S> void branchSub32(Condition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchTestPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchDouble(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchFloat(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchPrivatePtr(Condition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void decBranchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void branchTest64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
-+    template <typename T, typename S> void branch64(Condition, T, S, Label*) { MOZ_CRASH(); }
-+    template <typename T, typename S> void branch64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
-     template <typename T, typename S> void mov(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void movq(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void movePtr(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void move32(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void moveFloat32(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void moveDouble(T, S) { MOZ_CRASH(); }
-     template <typename T, typename S> void move64(T, S) { MOZ_CRASH(); }
-     template <typename T> CodeOffset movWithPatch(T, Register) { MOZ_CRASH(); }
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch b/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch
deleted file mode 100644
index a5c4b47db52..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch
+++ /dev/null
@@ -1,138 +0,0 @@
---- js/src/Makefile.ref
-+++ js/src/Makefile.ref
-@@ -127,7 +127,7 @@ endif 
- ifdef JS_READLINE
- # For those platforms with the readline library installed.
- DEFINES += -DEDITLINE
--PROG_LIBS += -lreadline -ltermcap
-+PROG_LIBS += -lreadline
- else
- ifdef JS_EDITLINE
- # Use the editline library, built locally.
-@@ -370,3 +370,16 @@ TARFILES = files `cat files`
- SUFFIXES: .i
- %.i: %.c
- 	$(CC) -C -E $(CFLAGS) $< > $*.i
-+
-+DESTDIR :=
-+PREFIX := /usr
-+BINDIR := $(PREFIX)/bin
-+MY_LIBDIR := $(PREFIX)/$(LIBDIR)
-+INCLUDEDIR := $(PREFIX)/include/js
-+INSTALL := install -g 0 -o root
-+install:
-+	$(INSTALL) -m 755 -d $(DESTDIR)$(INCLUDEDIR) $(DESTDIR)$(MY_LIBDIR) $(DESTDIR)$(BINDIR)
-+	$(INSTALL) -m 755 $(SHARED_LIBRARY) $(DESTDIR)$(MY_LIBDIR)
-+	$(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(MY_LIBDIR)
-+	$(INSTALL) -m 755 $(OBJDIR)/js $(OBJDIR)/jscpucfg $(DESTDIR)$(BINDIR)
-+	$(INSTALL) -m 644 $(HFILES) $(DESTDIR)$(INCLUDEDIR)
---- js/src/config/Linux_All.mk
-+++ js/src/config/Linux_All.mk
-@@ -41,37 +41,15 @@
- # Config for all versions of Linux
- #
- 
--CC = gcc
--CCC = g++
- CFLAGS +=  -Wall -Wno-format
- OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
- 
- RANLIB = echo
--MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
-+MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) -soname $(notdir $@)
- 
- #.c.o:
- #      $(CC) -c -MD $*.d $(CFLAGS) $<
- 
--CPU_ARCH = $(shell uname -m)
--# don't filter in x86-64 architecture
--ifneq (x86_64,$(CPU_ARCH))
--ifeq (86,$(findstring 86,$(CPU_ARCH)))
--CPU_ARCH = x86
--OS_CFLAGS+= -DX86_LINUX
--
--ifeq (gcc, $(CC))
--# if using gcc on x86, check version for opt bug 
--# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
--GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
--GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )
--
--ifeq (2.91.66, $(firstword $(GCC_LIST)))
--CFLAGS+= -DGCC_OPT_BUG
--endif
--endif
--endif
--endif
--
- GFX_ARCH = x
- 
- OS_LIBS = -lm -lc
-@@ -88,16 +66,6 @@
- endif
- 
- # Use the editline library to provide line-editing support.
--JS_EDITLINE = 1
-+JS_READLINE = 1
- 
--ifeq ($(CPU_ARCH),x86_64)
--# Use VA_COPY() standard macro on x86-64
--# FIXME: better use it everywhere
- OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
--endif
--
--ifeq ($(CPU_ARCH),x86_64)
--# We need PIC code for shared libraries
--# FIXME: better patch rules.mk & fdlibm/Makefile*
--OS_CFLAGS += -DPIC -fPIC
--endif
---- js/src/rules.mk
-+++ js/src/rules.mk
-@@ -82,6 +82,10 @@ $(OBJDIR)/%.o: %.c
- 	@$(MAKE_OBJDIR)
- 	$(CC) -o $@ -c $(CFLAGS) $*.c
- 
-+$(OBJDIR)/%.lo: %.c
-+	@$(MAKE_OBJDIR)
-+	$(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
-+
- $(OBJDIR)/%.o: %.s
- 	@$(MAKE_OBJDIR)
- 	$(AS) -o $@ $(ASFLAGS) $*.s
-@@ -111,11 +115,12 @@ $(SHARED_LIBRARY): $(LIB_OBJS)
- 	    /implib:"$(OBJDIR)/$(@F:.dll=.lib)" $^
- else
- $(LIBRARY): $(LIB_OBJS)
--	$(AR) rv $@ $?
-+	$(AR) cr $@ $?
- 	$(RANLIB) $@
- 
--$(SHARED_LIBRARY): $(LIB_OBJS)
--	$(MKSHLIB) -o $@ $(LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
-+SHARED_LIB_OBJS := $(LIB_OBJS:.o=.lo)
-+$(SHARED_LIBRARY): $(SHARED_LIB_OBJS)
-+	$(MKSHLIB) -o $@ $(SHARED_LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
- endif
- endif
- 
---- js/src/fdlibm/Makefile.ref
-+++ js/src/fdlibm/Makefile.ref
-@@ -151,7 +151,7 @@
- 
- $(OBJDIR)/%.o: %.c
- 	@$(MAKE_OBJDIR)
--	$(CC) -o $@ -c $(CFLAGS) $*.c
-+	$(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
- 
- $(OBJDIR)/%.o: %.s
- 	@$(MAKE_OBJDIR)
---- js/src/config.mk
-+++ js/src/config.mk
-@@ -112,6 +112,8 @@
- CP = cp
- endif
- 
-+BUILD_OPT := 1
-+
- ifdef BUILD_OPT
- OPTIMIZER  = -O
- DEFINES    += -UDEBUG -DNDEBUG -UDEBUG_$(shell whoami)

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch b/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch
deleted file mode 100644
index df4cf7d5074..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: src/Makefile.ref
-===================================================================
---- src.orig/Makefile.ref
-+++ src/Makefile.ref
-@@ -185,6 +185,8 @@ JS_HFILES =		\
- 	jsstr.h		\
- 	jsxdrapi.h	\
- 	jsxml.h		\
-+	jsutil.h	\
-+	jsprf.h		\
- 	$(NULL)
- 
- API_HFILES =		\

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch b/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch
deleted file mode 100644
index 4ddc3461ea1..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Respect LDFLAGS
-
-http://bugs.gentoo.org/show_bug.cgi?id=331129
-
---- js/src/Makefile.ref
-+++ js/src/Makefile.ref
-@@ -87,7 +87,7 @@
- LDFLAGS                = $(XLDFLAGS)
- 
- ifndef NO_LIBM
--LDFLAGS += -lm
-+OTHER_LIBS += -lm
- endif
- 
- # Prevent floating point errors caused by VC++ optimizations
-@@ -325,7 +325,7 @@
- 	$(CC) -o $@ -c $(CFLAGS) $<
- 
- $(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX): $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
--	$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $^
-+	$(CC) $(HOST_LDFLAGS) -o $@ $(CFLAGS) $(OTHER_LIBS) $^
- 
- endif
- 
-@@ -338,7 +338,7 @@
- 	link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
- else
- $(PROGRAM): $(PROG_OBJS) $(LIBRARY)
--	$(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
-+	$(CC) $(HOST_LDFLAGS) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(OTHER_LIBS) \
- 	    $(PROG_LIBS)
- endif
- 
-@@ -355,7 +355,7 @@
- 	$(OBJDIR)/jscpucfg > $@
- 
- $(OBJDIR)/jscpucfg: $(OBJDIR)/jscpucfg.o
--	$(CC) -o $@ $(OBJDIR)/jscpucfg.o
-+	$(CC) $(HOST_LDFLAGS) -o $@ $(OBJDIR)/jscpucfg.o
- 
- # Add to TARGETS for clobber rule
- TARGETS += $(OBJDIR)/jsautocfg.h $(OBJDIR)/jscpucfg \

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff b/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff
deleted file mode 100644
index 8728811fbfc..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: src/Makefile.ref
-===================================================================
---- src.orig/Makefile.ref
-+++ src/Makefile.ref
-@@ -63,11 +63,11 @@ INCLUDES   += -I$(OBJDIR)
- 
- ifdef JS_THREADSAFE
- DEFINES += -DJS_THREADSAFE
--INCLUDES += -I$(DIST)/include/nspr
-+INCLUDES += -I/usr/include/nspr
- ifdef USE_MSVC
- OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
- else
--OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
-+OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr$(NSPR_LIBSUFFIX)
- endif
- endif
- 

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-arm_respect_cflags-3.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-arm_respect_cflags-3.patch
deleted file mode 100644
index ed497ceebb0..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-arm_respect_cflags-3.patch
+++ /dev/null
@@ -1,99 +0,0 @@
---- a/js-1.8.5/js/src/configure.in	2011-03-31 15:08:36.000000000 -0400
-+++ b/js-1.8.5/js/src/configure.in	2012-11-02 15:32:38.000000000 -0400
-@@ -3550,7 +3550,7 @@
- _SAVE_CFLAGS="$CFLAGS"
- if test "$GNU_CC"; then
-   # gcc needs -mfpu=neon to recognize NEON instructions
--  CFLAGS="$CFLAGS -mfpu=neon -mfloat-abi=softfp"
-+  CFLAGS="$CFLAGS -mfpu=neon"
- fi
- AC_TRY_COMPILE([],
-                [asm("vadd.i8 d0, d0, d0");],
-@@ -4654,12 +4654,6 @@
- dnl ========================================================
- MOZ_ARG_HEADER(Individual module options)
- 
--dnl Setup default CPU arch for arm target
--case "$target_cpu" in
--  arm*)
--    MOZ_ARM_ARCH=armv7
--  ;;
--esac
- dnl ========================================================
- dnl = Enable building the Thumb2 instruction set
- dnl ========================================================
-@@ -4668,66 +4662,32 @@
-     MOZ_THUMB2=1,
-     MOZ_THUMB2=)
- if test -n "$MOZ_THUMB2"; then
--  MOZ_ARM_ARCH=armv7
-+    AC_MSG_WARN([thumb2 enabled instead of autodetected -- hope you know what you are doing])
-+else
-+    AC_MSG_CHECKING([whether to build for thumb2])
-+    AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
-+      [MOZ_THUMB2=1
-+        AC_MSG_RESULT([yes])],
-+      [MOZ_THUMB2=
-+        AC_MSG_RESULT([no])])
- fi
- 
- dnl ========================================================
- dnl = Enable building for ARM specific CPU features
- dnl ========================================================
--MOZ_ARG_WITH_STRING(cpu-arch,
--[  --with-cpu-arch=arch      Use specific arm architecture CPU features, default armv7],
--    MOZ_ARM_ARCH=$withval)
--
- if test -n "$MOZ_THUMB2"; then
-   case "$target_cpu" in
-     arm*)
--      if test "$MOZ_ARM_ARCH" != "armv7"; then
--        AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
--      fi
-       if test "$GNU_CC"; then
-         AC_DEFINE(MOZ_THUMB2)
--        AC_DEFINE(MOZ_ARM_ARCH)
--        CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
--        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
--        ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
-       else
-         AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
-       fi
-     ;;
--    *)
--      AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
--    ;;
--  esac
--elif test "$MOZ_ARM_ARCH" = "armv7"; then
--  case "$target_cpu" in
--    arm*)
--      if test "$GNU_CC"; then
--        AC_DEFINE(MOZ_ARM_ARCH)
--        CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
--        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
--        ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
--      else
--        AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
--      fi
--    ;;
--    *)
--      AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
--    ;;
--  esac
--else
--  case "$target_cpu" in
--    arm*)
--      if test "$GNU_CC"; then
--        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
--        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
--        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
--      fi
--      ;;
-   esac
- fi
- 
- AC_SUBST(MOZ_THUMB2)
--AC_SUBST(MOZ_ARM_ARCH)
- 
- dnl ========================================================
- dnl =

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-install-symlinks.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-install-symlinks.patch
deleted file mode 100644
index c867e45ee4f..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-install-symlinks.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
-
---- js/src/Makefile.in
-+++ js/src/Makefile.in
-@@ -888,8 +888,8 @@
- ifeq (,$(HOST_BIN_SUFFIX))
- 	mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
- 	@[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
--	ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
--	ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
-+	ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
-+	ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
- endif
- endif
- ifneq (,$(IMPORT_LIBRARY))

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-ppc64.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-ppc64.patch
deleted file mode 100644
index 3927c871793..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-ppc64.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-# HG changeset patch
-# User Mike Hommey <mh+mozilla@glandium.org>
-# Date 1303461188 -7200
-# Node ID 59771590e9203d48ef8cbcd7eaf2f8ae45dbb1c1
-# Parent  c4b82ec27d6d6e1c02ef0abb3b6e805bfdd092ec
-Bug 638056 - Avoid "The cacheFlush support is missing on this platform" error on exotic platforms. r=cdleary
-
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -383,17 +383,17 @@ CPPSRCS += 	checks.cc \
- 		platform.cc \
- 		utils.cc \
- 		$(NONE)
- 
- #
- # END enclude sources for V8 dtoa
- #############################################
- 
--ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
-+ifeq (,$(filter arm% %86 x86_64,$(TARGET_CPU)))
- 
- VPATH +=	$(srcdir)/assembler \
- 		$(srcdir)/assembler/wtf \
- 		$(srcdir)/yarr/pcre \
- 		$(NULL)
- 
- CPPSRCS += 	pcre_compile.cpp \
-                 pcre_exec.cpp \
-
-# HG changeset patch
-# User Luke Wagner <lw@mozilla.com>
-# Date 1299520258 28800
-# Node ID 68203913d04cf5be53fd16278816183d5670ba5c
-# Parent  27e5814815491ebb68e474e453aff6c2ea908c43
-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
-@@ -342,16 +342,17 @@ typedef union jsval_layout
-         JSValueTag         tag : 17;
-         uint64             payload47 : 47;
-     } debugView;
-     struct {
-         union {
-             int32          i32;
-             uint32         u32;
-             JSWhyMagic     why;
-+            jsuword        word;
-         } payload;
-     } s;
-     double asDouble;
-     void *asPtr;
- } jsval_layout;
- # endif /* JS_BITS_PER_WORD */
- #endif  /* defined(IS_LITTLE_ENDIAN) */
- 
-
-
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch
deleted file mode 100644
index ab2181faf63..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -upr a/js/src/jsapi.cpp b/js/src/jsapi.cpp
---- a/js/src/jsapi.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsapi.cpp	2016-02-29 18:10:49.302307353 -0600
-@@ -3985,7 +3985,7 @@ JS_Enumerate(JSContext *cx, JSObject *ob
-     AutoIdVector props(cx);
-     JSIdArray *ida;
-     if (!GetPropertyNames(cx, obj, JSITER_OWNONLY, &props) || !VectorToIdArray(cx, props, &ida))
--        return false;
-+        return NULL;
-     for (size_t n = 0; n < size_t(ida->length); ++n)
-         JS_ASSERT(js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]);
-     return ida;
-diff -upr a/js/src/jsfun.cpp b/js/src/jsfun.cpp
---- a/js/src/jsfun.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsfun.cpp	2016-02-29 18:21:45.249674890 -0600
-@@ -2051,7 +2051,7 @@ fun_toStringHelper(JSContext *cx, JSObje
- 
-     JSString *str = JS_DecompileFunction(cx, fun, indent);
-     if (!str)
--        return false;
-+        return NULL;
- 
-     if (!indent)
-         cx->compartment->toSourceCache.put(fun, str);
-@@ -2657,7 +2657,7 @@ LookupInterpretedFunctionPrototype(JSCon
-     const Shape *shape = funobj->nativeLookup(id);
-     if (!shape) {
-         if (!ResolveInterpretedFunctionPrototype(cx, funobj))
--            return false;
-+            return NULL;
-         shape = funobj->nativeLookup(id);
-     }
-     JS_ASSERT(!shape->configurable());
-diff -upr a/js/src/jsiter.cpp b/js/src/jsiter.cpp
---- a/js/src/jsiter.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsiter.cpp	2016-02-29 18:24:22.494659919 -0600
-@@ -425,7 +425,7 @@ NewIteratorObject(JSContext *cx, uintN f
-          */
-         JSObject *obj = js_NewGCObject(cx, FINALIZE_OBJECT0);
-         if (!obj)
--            return false;
-+            return NULL;
-         obj->init(cx, &js_IteratorClass, NULL, NULL, NULL, false);
-         obj->setMap(cx->compartment->emptyEnumeratorShape);
-         return obj;
-diff -upr a/js/src/jsparse.cpp b/js/src/jsparse.cpp
---- a/js/src/jsparse.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsparse.cpp	2016-02-29 18:29:03.997437475 -0600
-@@ -3352,7 +3352,7 @@ Parser::functionDef(JSAtom *funAtom, Fun
-     if (!outertc->inFunction() && bodyLevel && funAtom && !lambda && outertc->compiling()) {
-         JS_ASSERT(pn->pn_cookie.isFree());
-         if (!DefineGlobal(pn, outertc->asCodeGenerator(), funAtom))
--            return false;
-+            return NULL;
-     }
- 
-     pn->pn_blockid = outertc->blockid();
-diff -upr a/js/src/jsstr.cpp b/js/src/jsstr.cpp
---- a/js/src/jsstr.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsstr.cpp	2016-02-29 19:01:45.857779836 -0600
-@@ -1734,7 +1734,7 @@ class RegExpGuard
-         if (flat) {
-             patstr = flattenPattern(cx, fm.patstr);
-             if (!patstr)
--                return false;
-+                return NULL;
-         } else {
-             patstr = fm.patstr;
-         }
-@@ -3400,7 +3400,7 @@ js_InitStringClass(JSContext *cx, JSObje
-                                  UndefinedValue(), NULL, NULL,
-                                  JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED, 0, 0,
-                                  NULL)) {
--        return JS_FALSE;
-+        return NULL;
-     }
- 
-     return proto;
-diff -upr a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
---- a/js/src/jstypedarray.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jstypedarray.cpp	2016-02-29 19:08:53.541136191 -0600
-@@ -1334,7 +1334,7 @@ class TypedArrayTemplate
-         if (size != 0 && count >= INT32_MAX / size) {
-             JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
-                                  JSMSG_NEED_DIET, "size and count");
--            return false;
-+            return NULL;
-         }
- 
-         int32 bytelen = size * count;
-@@ -1668,7 +1668,7 @@ TypedArrayConstruct(JSContext *cx, jsint
- 
-       default:
-         JS_NOT_REACHED("shouldn't have gotten here");
--        return false;
-+        return NULL;
-     }
- }
- 
-diff -upr a/js/src/jsxml.cpp b/js/src/jsxml.cpp
---- a/js/src/jsxml.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/jsxml.cpp	2016-02-29 19:17:10.363279731 -0600
-@@ -282,7 +282,7 @@ NewXMLNamespace(JSContext *cx, JSLinearS
- 
-     obj = NewBuiltinClassInstanceXML(cx, &js_NamespaceClass);
-     if (!obj)
--        return JS_FALSE;
-+        return NULL;
-     JS_ASSERT(JSVAL_IS_VOID(obj->getNamePrefixVal()));
-     JS_ASSERT(JSVAL_IS_VOID(obj->getNameURIVal()));
-     JS_ASSERT(JSVAL_IS_VOID(obj->getNamespaceDeclared()));
-@@ -431,7 +431,7 @@ ConvertQNameToString(JSContext *cx, JSOb
-         size_t length = str->length();
-         jschar *chars = (jschar *) cx->malloc((length + 2) * sizeof(jschar));
-         if (!chars)
--            return JS_FALSE;
-+            return NULL;
-         *chars = '@';
-         const jschar *strChars = str->getChars(cx);
-         if (!strChars) {
-diff -upr a/js/src/methodjit/InvokeHelpers.cpp b/js/src/methodjit/InvokeHelpers.cpp
---- a/js/src/methodjit/InvokeHelpers.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/methodjit/InvokeHelpers.cpp	2016-02-29 20:34:14.496983346 -0600
-@@ -728,7 +728,7 @@ AtSafePoint(JSContext *cx)
- {
-     JSStackFrame *fp = cx->fp();
-     if (fp->hasImacropc())
--        return false;
-+        return NULL;
- 
-     JSScript *script = fp->script();
-     return script->maybeNativeCodeForPC(fp->isConstructing(), cx->regs->pc);
-diff -upr a/js/src/nanojit/NativeX64.cpp b/js/src/nanojit/NativeX64.cpp
---- a/js/src/nanojit/NativeX64.cpp	2011-03-31 14:08:36.000000000 -0500
-+++ b/js/src/nanojit/NativeX64.cpp	2016-02-29 20:19:56.487934808 -0600
-@@ -1899,7 +1899,7 @@ namespace nanojit
-          }
-     }
- 
--    static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0};
-+    static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {int64_t(0x8000000000000000LL),0};
- 
-     void Assembler::asm_fneg(LIns *ins) {
-         Register rr, ra;

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch
deleted file mode 100644
index bebe5587180..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=589735
-
---- a/js/src/jsgcchunk.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsgcchunk.cpp	2012-11-02 10:36:08.324453878 +0100
-@@ -318,15 +318,48 @@
- static void *
- MapPages(void *addr, size_t size)
- {
-+#if defined(__ia64__)
-+    /*
-+     * The JS engine assumes that all allocated pointers have their high 17 bits clear,
-+     * which ia64's mmap doesn't support directly. However, we can emulate it by passing
-+     * mmap an "addr" parameter with those bits clear. The mmap will return that address,
-+     * or the nearest available memory above that address, providing a near-guarantee
-+     * that those bits are clear. If they are not, we return NULL below to indicate
-+     * out-of-memory.
-+     * 
-+     * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual 
-+     * address space.
-+     * 
-+     * See Bug 589735 for more information.
-+     */
-+#endif
-+
-     /*
-      * We don't use MAP_FIXED here, because it can cause the *replacement*
-      * of existing mappings, and we only want to create new mappings.
-      */
-+#if defined(__ia64__)
-+    void *p = mmap(addr ? addr : (void*)0x0000070000000000,
-+                   size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
-+                   -1, 0);
-+#else
-     void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
-                    -1, 0);
-+#endif
-     if (p == MAP_FAILED)
-         return NULL;
-+#if defined(__ia64__)
-+    /* 
-+     * If the caller requested a specific memory location, verify that's what mmap returned.
-+     * Otherwise: If the allocated memory doesn't have its upper 17 bits clear, consider it 
-+     * as out of memory.
-+     */
-+    if (addr && p != addr
-+        || !addr && ((long long)p & 0xffff800000000000)) {
-+#else
-+    /* If the caller requested a specific memory location, verify that's what mmap returned. */
-     if (addr && p != addr) {
-+#endif
-         /* We succeeded in mapping memory, but not in the right place. */
-         JS_ALWAYS_TRUE(munmap(p, size) == 0);
-         return NULL;

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch
deleted file mode 100644
index 5cfed32ae68..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch
+++ /dev/null
@@ -1,381 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=589735
-
---- a/js/src/jsatom.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsatom.cpp	2012-11-02 10:43:16.970562590 +0100
-@@ -603,11 +603,13 @@
-     JSString str, *str2;
-     JSAtomState *state;
- 
-+#ifdef JS_HAS_STATIC_STRINGS
-     if (length == 1) {
-         jschar c = *chars;
-         if (c < UNIT_STRING_LIMIT)
-             return STRING_TO_ATOM(JSString::unitString(c));
-     }
-+#endif
- 
-     str.initFlatNotTerminated((jschar *)chars, length);
-     state = &cx->runtime->atomState;
---- a/js/src/jsiter.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsiter.cpp	2012-11-02 10:43:16.974562590 +0100
-@@ -1002,9 +1002,12 @@
- 
-             JSString *str;
-             jsint i;
-+#ifdef JS_HAS_STATIC_STRINGS
-             if (rval->isInt32() && (jsuint(i = rval->toInt32()) < INT_STRING_LIMIT)) {
-                 str = JSString::intString(i);
--            } else {
-+            } else
-+#endif
-+            {
-                 str = js_ValueToString(cx, *rval);
-                 if (!str)
-                     return false;
---- a/js/src/jsnum.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsnum.cpp	2012-11-02 10:43:16.982562589 +0100
-@@ -605,8 +605,10 @@
- {
-     uint32 ui;
-     if (si >= 0) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         if (si < INT_STRING_LIMIT)
-             return JSString::intString(si);
-+#endif
-         ui = si;
-     } else {
-         ui = uint32(-si);
-@@ -1169,6 +1171,7 @@
- 
-     int32_t i;
-     if (JSDOUBLE_IS_INT32(d, &i)) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         if (base == 10 && jsuint(i) < INT_STRING_LIMIT)
-             return JSString::intString(i);
-         if (jsuint(i) < jsuint(base)) {
-@@ -1176,6 +1179,7 @@
-                 return JSString::intString(i);
-             return JSString::unitString(jschar('a' + i - 10));
-         }
-+#endif
- 
-         if (JSString *str = c->dtoaCache.lookup(base, d))
-             return str;
---- a/js/src/jsstr.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsstr.cpp	2012-11-02 10:43:16.990562588 +0100
-@@ -3121,6 +3121,8 @@
-     JS_FS_END
- };
- 
-+#ifdef JS_HAS_STATIC_STRINGS
-+
- /*
-  * Set up some tools to make it easier to generate large tables. After constant
-  * folding, for each n, Rn(0) is the comma-separated list R(0), R(1), ..., R(2^n-1).
-@@ -3291,6 +3293,8 @@
- #undef R3
- #undef R7
- 
-+#endif  /* defined(JS_HAS_STATIC_STRINGS) */
-+
- JSBool
- js_String(JSContext *cx, uintN argc, Value *vp)
- {
-@@ -3331,6 +3335,7 @@
-         uint16_t code;
-         if (!ValueToUint16(cx, argv[0], &code))
-             return JS_FALSE;
-+#ifdef JS_HAS_STATIC_STRINGS
-         if (code < UNIT_STRING_LIMIT) {
-             str = JSString::unitString(code);
-             if (!str)
-@@ -3338,6 +3343,7 @@
-             vp->setString(str);
-             return JS_TRUE;
-         }
-+#endif
-         argv[0].setInt32(code);
-     }
-     chars = (jschar *) cx->malloc((argc + 1) * sizeof(jschar));
-@@ -3367,8 +3373,10 @@
- {
-     JS_ASSERT(JS_ON_TRACE(cx));
-     jschar c = (jschar)i;
-+#ifdef JS_HAS_STATIC_STRINGS
-     if (c < UNIT_STRING_LIMIT)
-         return JSString::unitString(c);
-+#endif
-     return js_NewStringCopyN(cx, &c, 1);
- }
- #endif
---- a/js/src/jsstr.h	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsstr.h	2012-11-02 10:43:16.998562587 +0100
-@@ -57,6 +57,15 @@
- #include "jsvalue.h"
- #include "jscell.h"
- 
-+#if !defined(__ia64__)
-+/*
-+ * Don't use static strings on ia64 since the compiler may put the static
-+ * memory out of the acceptable 47-bit jsval pointer range.
-+ */
-+# define JS_HAS_STATIC_STRINGS
-+#endif
-+
-+#ifdef JS_HAS_STATIC_STRINGS
- enum {
-     UNIT_STRING_LIMIT        = 256U,
-     SMALL_CHAR_LIMIT         = 128U, /* Bigger chars cannot be in a length-2 string. */
-@@ -64,6 +73,7 @@
-     INT_STRING_LIMIT         = 256U,
-     NUM_HUNDRED_STRINGS      = 156U
- };
-+#endif
- 
- extern jschar *
- js_GetDependentStringChars(JSString *str);
-@@ -380,10 +390,15 @@
-     typedef uint8 SmallChar;
- 
-     static inline bool fitsInSmallChar(jschar c) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         return c < SMALL_CHAR_LIMIT && toSmallChar[c] != INVALID_SMALL_CHAR;
-+#else
-+		return false;
-+#endif
-     }
- 
-     static inline bool isUnitString(void *ptr) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         jsuword delta = reinterpret_cast<jsuword>(ptr) -
-                         reinterpret_cast<jsuword>(unitStringTable);
-         if (delta >= UNIT_STRING_LIMIT * sizeof(JSString))
-@@ -392,9 +407,13 @@
-         /* If ptr points inside the static array, it must be well-aligned. */
-         JS_ASSERT(delta % sizeof(JSString) == 0);
-         return true;
-+#else
-+		return false;
-+#endif
-     }
- 
-     static inline bool isLength2String(void *ptr) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         jsuword delta = reinterpret_cast<jsuword>(ptr) -
-                         reinterpret_cast<jsuword>(length2StringTable);
-         if (delta >= NUM_SMALL_CHARS * NUM_SMALL_CHARS * sizeof(JSString))
-@@ -403,9 +422,13 @@
-         /* If ptr points inside the static array, it must be well-aligned. */
-         JS_ASSERT(delta % sizeof(JSString) == 0);
-         return true;
-+#else
-+		return false;
-+#endif
-     }
- 
-     static inline bool isHundredString(void *ptr) {
-+#ifdef JS_HAS_STATIC_STRINGS
-         jsuword delta = reinterpret_cast<jsuword>(ptr) -
-                         reinterpret_cast<jsuword>(hundredStringTable);
-         if (delta >= NUM_HUNDRED_STRINGS * sizeof(JSString))
-@@ -414,6 +437,9 @@
-         /* If ptr points inside the static array, it must be well-aligned. */
-         JS_ASSERT(delta % sizeof(JSString) == 0);
-         return true;
-+#else
-+		return false;
-+#endif
-     }
- 
-     static inline bool isStatic(void *ptr) {
-@@ -424,6 +450,7 @@
- #pragma align 8 (__1cIJSStringPunitStringTable_, __1cIJSStringSlength2StringTable_, __1cIJSStringShundredStringTable_)
- #endif
- 
-+#ifdef JS_HAS_STATIC_STRINGS
-     static const SmallChar INVALID_SMALL_CHAR = -1;
- 
-     static const jschar fromSmallChar[];
-@@ -436,6 +463,7 @@
-      * strings, we keep a table to map from integer to the correct string.
-      */
-     static const JSString *const intStringTable[];
-+#endif
- 
-     static JSFlatString *unitString(jschar c);
-     static JSLinearString *getUnitString(JSContext *cx, JSString *str, size_t index);
---- a/js/src/jsstrinlines.h	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jsstrinlines.h	2012-11-02 10:43:17.010562586 +0100
-@@ -215,52 +215,75 @@
- inline JSFlatString *
- JSString::unitString(jschar c)
- {
-+#ifdef JS_HAS_STATIC_STRINGS
-     JS_ASSERT(c < UNIT_STRING_LIMIT);
-     return const_cast<JSString *>(&unitStringTable[c])->assertIsFlat();
-+#else
-+    JS_NOT_REACHED("no static strings");
-+	return NULL;
-+#endif
- }
- 
- inline JSLinearString *
- JSString::getUnitString(JSContext *cx, JSString *str, size_t index)
- {
-     JS_ASSERT(index < str->length());
-+#ifdef JS_HAS_STATIC_STRINGS
-     const jschar *chars = str->getChars(cx);
-     if (!chars)
-         return NULL;
-     jschar c = chars[index];
-     if (c < UNIT_STRING_LIMIT)
-         return unitString(c);
-+#endif
-     return js_NewDependentString(cx, str, index, 1);
- }
- 
- inline JSFlatString *
- JSString::length2String(jschar c1, jschar c2)
- {
-+#ifdef JS_HAS_STATIC_STRINGS
-     JS_ASSERT(fitsInSmallChar(c1));
-     JS_ASSERT(fitsInSmallChar(c2));
-     return const_cast<JSString *> (
-              &length2StringTable[(((size_t)toSmallChar[c1]) << 6) + toSmallChar[c2]]
-            )->assertIsFlat();
-+#else
-+    JS_NOT_REACHED("no static strings");
-+	return NULL;
-+#endif
- }
- 
- inline JSFlatString *
- JSString::length2String(uint32 i)
- {
-+#ifdef JS_HAS_STATIC_STRINGS
-     JS_ASSERT(i < 100);
-     return length2String('0' + i / 10, '0' + i % 10);
-+#else
-+    JS_NOT_REACHED("no static strings");
-+	return NULL;
-+#endif
- }
- 
- inline JSFlatString *
- JSString::intString(jsint i)
- {
-+#ifdef JS_HAS_STATIC_STRINGS
-     jsuint u = jsuint(i);
-     JS_ASSERT(u < INT_STRING_LIMIT);
-     return const_cast<JSString *>(JSString::intStringTable[u])->assertIsFlat();
-+#else
-+    JS_NOT_REACHED("no static strings");
-+	return NULL;
-+#endif
- }
- 
- /* Get a static atomized string for chars if possible. */
- inline JSFlatString *
- JSString::lookupStaticString(const jschar *chars, size_t length)
- {
-+#ifdef JS_HAS_STATIC_STRINGS
-     if (length == 1) {
-         if (chars[0] < UNIT_STRING_LIMIT)
-             return unitString(chars[0]);
-@@ -290,6 +313,7 @@
-                 return intString(i);
-         }
-     }
-+#endif
- 
-     return NULL;
- }
---- a/js/src/jstracer.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jstracer.cpp	2012-11-02 10:43:17.022562584 +0100
-@@ -11505,6 +11505,7 @@
-             }
-             if (vp[1].isString()) {
-                 JSString *str = vp[1].toString();
-+#ifdef JS_HAS_STATIC_STRINGS
-                 if (native == js_str_charAt) {
-                     jsdouble i = vp[2].toNumber();
-                     if (JSDOUBLE_IS_NaN(i))
-@@ -11518,7 +11519,9 @@
-                     set(&vp[0], char_ins);
-                     pendingSpecializedNative = IGNORE_NATIVE_CALL_COMPLETE_CALLBACK;
-                     return RECORD_CONTINUE;
--                } else if (native == js_str_charCodeAt) {
-+                } else
-+#endif
-+				if (native == js_str_charCodeAt) {
-                     jsdouble i = vp[2].toNumber();
-                     if (JSDOUBLE_IS_NaN(i))
-                       i = 0;
-@@ -12967,6 +12970,7 @@
- JS_STATIC_ASSERT(sizeof(JSString) == 16 || sizeof(JSString) == 32);
- 
- 
-+#ifdef JS_HAS_STATIC_STRINGS
- JS_REQUIRES_STACK LIns*
- TraceRecorder::getUnitString(LIns* str_ins, LIns* idx_ins)
- {
-@@ -13010,6 +13014,7 @@
-     }
-     return RECORD_CONTINUE;
- }
-+#endif
- 
- // Typed array tracing depends on EXPANDED_LOADSTORE and F2I
- #if NJ_EXPANDED_LOADSTORE_SUPPORTED && NJ_F2I_SUPPORTED
-@@ -13044,6 +13049,7 @@
-     LIns* obj_ins = get(&lval);
-     LIns* idx_ins = get(&idx);
- 
-+#ifdef JS_HAS_STATIC_STRINGS
-     // Special case for array-like access of strings.
-     if (lval.isString() && hasInt32Repr(idx)) {
-         if (call)
-@@ -13056,6 +13062,7 @@
-         set(&lval, char_ins);
-         return ARECORD_CONTINUE;
-     }
-+#endif
- 
-     if (lval.isPrimitive())
-         RETURN_STOP_A("JSOP_GETLEM on a primitive");
---- a/js/src/jstracer.h	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/jstracer.h	2012-11-02 10:43:17.034562582 +0100
-@@ -1394,10 +1394,12 @@
-     JS_REQUIRES_STACK RecordingStatus getCharCodeAt(JSString *str,
-                                                     nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
-                                                     nanojit::LIns** out_ins);
-+#ifdef JS_HAS_STATIC_STRINGS
-     JS_REQUIRES_STACK nanojit::LIns* getUnitString(nanojit::LIns* str_ins, nanojit::LIns* idx_ins);
-     JS_REQUIRES_STACK RecordingStatus getCharAt(JSString *str,
-                                                 nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
-                                                 JSOp mode, nanojit::LIns** out_ins);
-+#endif
- 
-     JS_REQUIRES_STACK RecordingStatus initOrSetPropertyByName(nanojit::LIns* obj_ins,
-                                                               Value* idvalp, Value* rvalp,
---- a/js/src/tracejit/Writer.cpp	2011-03-31 21:08:36.000000000 +0200
-+++ b/js/src/tracejit/Writer.cpp	2012-11-02 10:43:17.038562582 +0100
-@@ -246,7 +246,9 @@
-         // ins = andq ins_oprnd1, ins_oprnd2
-         ret = true;
- #endif
--    } else if (ins->isop(LIR_addp) &&
-+    }
-+#ifdef JS_HAS_STATIC_STRINGS
-+	else if (ins->isop(LIR_addp) &&
-                ((ins->oprnd1()->isImmP() &&
-                  (void *)ins->oprnd1()->immP() == JSString::unitStringTable) ||
-                 (ins->oprnd2()->isImmP() &&
-@@ -258,6 +260,7 @@
-         // ins = addp JSString::unitStringTable, ...
-         ret = true;
-     }
-+#endif
- 
-     return ret;
- }

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch
deleted file mode 100644
index edf4d01e64b..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- js/src/jsnum.h	2011-03-03 05:43:06.000000000 -0500
-+++ js/src/jsnum.h.new	2012-08-16 14:58:04.000000000 -0400
-@@ -97,6 +97,8 @@
- {
- #ifdef WIN32
-     return _finite(d);
-+#elif defined(__UCLIBC__)
-+    return isfinite(d);
- #else
-     return finite(d);
- #endif

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-perf_event-check.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-perf_event-check.patch
deleted file mode 100644
index 66475b6c34c..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-perf_event-check.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/js/src/configure.in	2012-11-01 19:42:20.130330321 +0100
-+++ b/js/src/configure.in	2012-11-01 20:34:03.561351492 +0100
-@@ -3477,7 +3477,16 @@
- esac
- 
- dnl Performance measurement headers.
--AC_CHECK_HEADER(linux/perf_event.h, HAVE_LINUX_PERF_EVENT_H=1)
-+AC_CHECK_HEADER(linux/perf_event.h,
-+	[AC_CACHE_CHECK(for perf_event_open system call,ac_cv_perf_event_open,
-+		[AC_TRY_COMPILE([#include <sys/syscall.h>],[return sizeof(__NR_perf_event_open);],
-+		ac_cv_perf_event_open=yes,
-+		ac_cv_perf_event_open=no)])])
-+if test "$ac_cv_perf_event_open" = "yes"; then
-+	HAVE_LINUX_PERF_EVENT_H=1
-+else
-+	HAVE_LINUX_PERF_EVENT_H=
-+fi
- AC_SUBST(HAVE_LINUX_PERF_EVENT_H)
- 
- dnl Checks for libraries.
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-symbol-versions.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-symbol-versions.patch
deleted file mode 100644
index 460394d33f1..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-symbol-versions.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -Naur js/src/configure.in js.new/src/configure.in
---- 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,4 @@
-+mozjs185 {
-+  global: *;
-+};
-+
-diff -Naur js/src/Makefile.in js.new/src/Makefile.in
---- 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
-@@ -837,7 +837,10 @@
- 	mozjs185.pc \
- 	$(NULL)
- 
--GARBAGE += $(pkg_config_files)
-+symverscript: symverscript.in
-+	cat $< > $@
-+
-+GARBAGE += $(pkg_config_files) symverscript
- 
- %.pc: $(srcdir)/%.pc.in Makefile
- 	cat $< | sed \
-@@ -872,6 +875,8 @@
- SHLIB_ABI_VER   := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_ABI_VERSION)
- SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_VERSION)
- $(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-soname,$(notdir $(SHLIB_ABI_VER))
-+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript
-+$(SHARED_LIBRARY): symverscript
- endif
- endif
- 

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-freebsd-pthreads.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.7-freebsd-pthreads.patch
deleted file mode 100644
index 4324df0d609..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-freebsd-pthreads.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/js/src/config/system-headers
-+++ b/js/src/config/system-headers
-@@ -595,6 +595,7 @@ proto/exec.h
- psap.h
- Pt.h
- pthread.h
-+pthread_np.h
- pwd.h
- Python.h
- QDOffscreen.h
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch
deleted file mode 100644
index f14a269ee3f..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/js/src/jslock.cpp	2012-04-06 16:24:51.000000000 -0500
-+++ b/js/src/jslock.cpp	2012-06-21 20:57:00.877937542 -0500
-@@ -150,17 +150,22 @@
- 
- static JS_ALWAYS_INLINE int
- NativeCompareAndSwap(volatile jsword *w, jsword ov, jsword nv)
- {
-     unsigned int res;
- 
-     __asm__ __volatile__ (
-                           "lock\n"
-+/* GCC's x32 abi support */
-+#if defined(__LP64__)
-                           "cmpxchgq %2, (%1)\n"
-+#else
-+                          "cmpxchg %2, (%1)\n"
-+#endif
-                           "sete %%al\n"
-                           "movzbl %%al, %%eax\n"
-                           : "=a" (res)
-                           : "r" (w), "r" (nv), "a" (ov)
-                           : "cc", "memory");
-     return (int)res;
- }
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch b/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch
deleted file mode 100644
index 062bd06b777..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix compilation of spidermonkey-17 with clang
-
-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=458142
-Upstream-Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=887645
-
-b/js/src/js-config.in
---- a/js/src/jsinterp.cpp	2016-06-03 00:08:04.376312080 -0500
-+++ b/js/src/jsinterp.cpp	2016-06-03 00:12:17.740329180 -0500
-@@ -3664,7 +3664,9 @@
- BEGIN_CASE(JSOP_LEAVEFORLETIN)
- BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
- {
-+    #ifdef DEBUG
-     DebugOnly<uint32_t> blockDepth = regs.fp()->blockChain().stackDepth();
-+    #endif
- 
-     regs.fp()->popBlock(cx);
- 

diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch b/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch
deleted file mode 100644
index da6a49f637c..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# HG changeset patch
-# User Mike Hommey <mh+mozilla@glandium.org>
-# Date 1373958382 -32400
-#      Tue Jul 16 16:06:22 2013 +0900
-# Node ID 1880537f26d2ce22866974a8cdf1927dc66f6dbc
-# Parent  673ea5cd6ba7fc37086d1dab71ee4a6d6a77a1ab
-Bug 894240 - Fix pointer dereference in js::cli::OptionParser::extractValue
-
-diff --git a/js/src/shell/jsoptparse.cpp b/js/src/shell/jsoptparse.cpp
---- a/js/src/shell/jsoptparse.cpp
-+++ b/js/src/shell/jsoptparse.cpp
-@@ -248,17 +248,17 @@ OptionParser::printHelp(const char *prog
- 
- OptionParser::Result
- OptionParser::extractValue(size_t argc, char **argv, size_t *i, char **value)
- {
-     JS_ASSERT(*i < argc);
-     char *eq = strchr(argv[*i], '=');
-     if (eq) {
-         *value = eq + 1;
--        if (value[0] == '\0')
-+        if (*value[0] == '\0')
-             return error("A value is required for option %.*s", eq - argv[*i], argv[*i]);
-         return Okay;
-     }
- 
-     if (argc == *i + 1)
-         return error("Expected a value for option %s", argv[*i]);
- 
-     *i += 1;

diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch b/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch
deleted file mode 100644
index 7adbd118d40..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- a/js/src/gc/Memory.cpp	2013-02-11 17:33:22.000000000 -0500
-+++ b/js/src/gc/Memory.cpp	2014-01-08 12:36:29.406851422 -0500
-@@ -302,10 +302,46 @@
- void
- InitMemorySubsystem()
- {
-+#if !defined(__ia64__)
-     if (size_t(sysconf(_SC_PAGESIZE)) != PageSize)
-         MOZ_CRASH();
-+#endif
- }
- 
-+static inline void *
-+MapMemory(size_t length, int prot, int flags, int fd, off_t offset)
-+{
-+#if defined(__ia64__)
-+    /*
-+     * The JS engine assumes that all allocated pointers have their high 17 bits clear,
-+     * which ia64's mmap doesn't support directly. However, we can emulate it by passing
-+     * mmap an "addr" parameter with those bits clear. The mmap will return that address,
-+     * or the nearest available memory above that address, providing a near-guarantee
-+     * that those bits are clear. If they are not, we return NULL below to indicate
-+     * out-of-memory.
-+     *
-+     * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
-+     * address space.
-+     *
-+     * See Bug 589735 for more information.
-+     */
-+    void *region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset);
-+    if (region == MAP_FAILED)
-+        return MAP_FAILED;
-+    /*
-+     * If the allocated memory doesn't have its upper 17 bits clear, consider it
-+     * as out of memory.
-+     */
-+    if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
-+        JS_ALWAYS_TRUE(0 == munmap(region, length));
-+        return MAP_FAILED;
-+    }
-+    return region;
-+#else
-+    return mmap(NULL, length, prot, flags, fd, offset);
-+#endif
-+}
-+
- void *
- MapAlignedPages(size_t size, size_t alignment)
- {
-@@ -319,12 +353,15 @@
- 
-     /* Special case: If we want page alignment, no further work is needed. */
-     if (alignment == PageSize) {
--        return mmap(NULL, size, prot, flags, -1, 0);
-+        void *region = MapMemory(size, prot, flags, -1, 0);
-+        if (region == MAP_FAILED)
-+            return NULL;
-+        return region;
-     }
- 
-     /* Overallocate and unmap the region's edges. */
-     size_t reqSize = Min(size + 2 * alignment, 2 * size);
--    void *region = mmap(NULL, reqSize, prot, flags, -1, 0);
-+    void *region = MapMemory(reqSize, prot, flags, -1, 0);
-     if (region == MAP_FAILED)
-         return NULL;
- 

diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch b/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch
deleted file mode 100644
index ec77b236828..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/js/src/js-config.in	2013-03-25 16:34:20.000000000 -0400
-+++ b/js/src/js-config.in	2013-08-09 22:15:29.000901763 -0400
-@@ -2,7 +2,7 @@
- # 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
-+%filter substitution
- 
- prefix='@prefix@'
- mozilla_version='@MOZILLA_VERSION@'
---- a/js/src/Makefile.in	2013-03-25 16:34:20.000000000 -0400
-+++ b/js/src/Makefile.in	2013-08-09 22:17:20.211903793 -0400
-@@ -778,7 +778,7 @@
- 
- $(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 \
-+	$(PYTHON) $(topsrcdir)/config/Preprocessor.py --marker="%" $(JS_CONFIG_SUBSTITUTIONS) $< > $@.tmp \
- 	&& mv $@.tmp $@ && chmod +x $@
- 
- SCRIPTS = $(JS_CONFIG_NAME)

diff --git a/dev-lang/spidermonkey/files/spidermonkey-17.0.0-fix-file-permissions.patch b/dev-lang/spidermonkey/files/spidermonkey-17.0.0-fix-file-permissions.patch
deleted file mode 100644
index f4eee930542..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-17.0.0-fix-file-permissions.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -urN a/js/src/Makefile.in b/js/src/Makefile.in
---- a/js/src/Makefile.in	2013-03-25 15:34:20.000000000 -0500
-+++ b/js/src/Makefile.in	2014-03-08 08:26:36.726979744 -0600
-@@ -788,7 +788,7 @@
- 	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
- 
- install:: $(LIBRARY_NAME).pc
--		$(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
-+		$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(libdir)/pkgconfig
- 
- ######################################################
- # BEGIN SpiderMonkey header installation
-@@ -836,19 +836,19 @@
- #
- 
- install:: $(INSTALLED_HEADERS)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)
- 
- install:: $(EXPORTS_ds)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/ds
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/ds
- 
- install:: $(EXPORTS_gc)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/gc
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/gc
- 
- install:: $(EXPORTS_js)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/js
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/js
- 
- install:: $(EXPORTS_mozilla)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/mozilla
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/mozilla
- 
- #
- # END SpiderMonkey header installation

diff --git a/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch b/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch
deleted file mode 100644
index 59ba0c958ea..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
-index 4944d31..4176e14 100644
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -237,12 +237,17 @@ endif
- # ICU headers need to be available whether we build with the complete
- # Internationalization API or not - ICU stubs rely on them.
- 
-+ifdef MOZ_NATIVE_ICU
-+LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
-+else
- LOCAL_INCLUDES += \
-   -I$(topsrcdir)/../../intl/icu/source/common \
-   -I$(topsrcdir)/../../intl/icu/source/i18n \
-   $(NULL)
-+endif
- 
- ifdef ENABLE_INTL_API
-+ifndef MOZ_NATIVE_ICU
- 
- ifeq ($(OS_ARCH),WINNT)
-   # Parallel gmake is buggy on Windows
-@@ -271,6 +276,7 @@ distclean clean::
- 	$(call SUBMAKE,$@,intl/icu)
- 
- endif
-+endif
- 
- #
- # END ECMAScript Internationalization API
-@@ -403,7 +409,11 @@ ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS))
- DEFINES += -DUSE_ZLIB
- endif
- 
--SHARED_LIBRARY_LIBS += $(ICU_LIBS)
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
-+else
-+SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
-+endif
- 
- # Prevent floating point errors caused by VC++ optimizations
- ifdef _MSC_VER
-diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in
-index 5f60d15..e1fe1f8 100644
---- a/js/src/config/Makefile.in
-+++ b/js/src/config/Makefile.in
-@@ -59,6 +59,7 @@ export:: \
-   $(call mkdir_deps,system_wrappers_js) \
-   $(NULL)
- 	$(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \
-+		-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
- 		$(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js
- 	$(INSTALL) system_wrappers_js $(DIST)
- 
-diff --git a/js/src/config/system-headers b/js/src/config/system-headers
-index b52aed6..1ca7420 100644
---- a/js/src/config/system-headers
-+++ b/js/src/config/system-headers
-@@ -1132,3 +1132,14 @@ kvm.h
- spawn.h
- err.h
- xlocale.h
-+#if MOZ_NATIVE_ICU==1
-+unicode/locid.h
-+unicode/numsys.h
-+unicode/ucal.h
-+unicode/ucol.h
-+unicode/udat.h
-+unicode/udatpg.h
-+unicode/uenum.h
-+unicode/unum.h
-+unicode/ustring.h
-+#endif
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 4bccbe3..d535491 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -4409,6 +4409,16 @@ fi
- dnl ========================================================
- dnl ECMAScript Internationalization API Support (uses ICU)
- dnl ========================================================
-+ICU_LIB_NAMES=
-+MOZ_NATIVE_ICU=
-+MOZ_ARG_WITH_BOOL(system-icu,
-+[  --with-system-icu
-+                          Use system icu (located with pkgconfig)],
-+    MOZ_NATIVE_ICU=1)
-+
-+if test -n "$MOZ_NATIVE_ICU"; then
-+    PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
-+fi
- 
- if test -n "$JS_STANDALONE"; then
-     ENABLE_INTL_API=1
-@@ -4421,37 +4431,34 @@ MOZ_ARG_ENABLE_BOOL(intl-api,
- dnl Settings for the implementation of the ECMAScript Internationalization API
- if test -n "$ENABLE_INTL_API"; then
-     AC_DEFINE(ENABLE_INTL_API)
--    # We build ICU as a static library.
--    AC_DEFINE(U_STATIC_IMPLEMENTATION)
--
--    case "$OS_TARGET" in
--        WINNT)
--            ICU_LIB_NAMES="icuin icuuc icudt"
--            ;;
--        Darwin|Linux)
--            ICU_LIB_NAMES="icui18n icuuc icudata"
--            ;;
--        *)
--            AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
--    esac
--
--    ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
--else
--    ICU_LIB_NAMES=
--    ICU_LIBS=
-+    if test -z "$MOZ_NATIVE_ICU"; then
-+        case "$OS_TARGET" in
-+            WINNT)
-+                ICU_LIB_NAMES="icuin icuuc icudt"
-+                ;;
-+            Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
-+                ICU_LIB_NAMES="icui18n icuuc icudata"
-+                ;;
-+            *)
-+                AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
-+        esac
-+        MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
-+    fi
- fi
- 
- AC_SUBST(ENABLE_INTL_API)
- AC_SUBST(ICU_LIB_NAMES)
--AC_SUBST(ICU_LIBS)
--
--dnl Source files that use ICU should have control over which parts of the ICU
--dnl namespace they want to use.
--AC_DEFINE(U_USING_ICU_NAMESPACE,0)
--
-+AC_SUBST(MOZ_ICU_LIBS)
-+AC_SUBST(MOZ_NATIVE_ICU)
- 
- dnl Settings for ICU
--if test -n "$ENABLE_INTL_API" ; then
-+if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
-+    dnl We build ICU as a static library.
-+    AC_DEFINE(U_STATIC_IMPLEMENTATION)
-+ 
-+    dnl Source files that use ICU should have control over which parts of the ICU
-+    dnl namespace they want to use.
-+    AC_DEFINE(U_USING_ICU_NAMESPACE,0)
-     # Set ICU compile options
-     ICU_CPPFLAGS=""
-     # don't use icu namespace automatically in client code
-diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in
-index 288934a..a582dfe 100644
---- a/js/src/gdb/Makefile.in
-+++ b/js/src/gdb/Makefile.in
-@@ -19,6 +19,10 @@ LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIB
- 
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
- 
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
-+
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
- 
- # Place a GDB Python auto-load file next to the gdb-tests executable, both
-diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in
-index 5f7d594..10d7054 100644
---- a/js/src/jsapi-tests/Makefile.in
-+++ b/js/src/jsapi-tests/Makefile.in
-@@ -20,6 +20,10 @@ LIBS      = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLI
- 
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
- 
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
-+
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
- 
- ifdef QEMU_EXE
-diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
-index 2e1df09..db66c69 100644
---- a/js/src/shell/Makefile.in
-+++ b/js/src/shell/Makefile.in
-@@ -27,6 +27,9 @@ LIBS      = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_
- ifdef MOZ_NATIVE_FFI
- EXTRA_LIBS += $(MOZ_FFI_LIBS)
- endif
-+ifdef MOZ_NATIVE_ICU
-+EXTRA_LIBS += $(MOZ_ICU_LIBS)
-+endif
- 
- LOCAL_INCLUDES += -I$(topsrcdir) -I..
- 

diff --git a/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch b/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch
deleted file mode 100644
index 70963627bcc..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -Naur mozjs-24.2.0/js/src/gc/RootMarking.cpp mozjs-24.2.0.new/js/src/gc/RootMarking.cpp
---- mozjs-24.2.0/js/src/gc/RootMarking.cpp	2013-10-29 16:40:26.000000000 -0400
-+++ mozjs-24.2.0.new/js/src/gc/RootMarking.cpp	2014-05-05 16:16:15.570098309 -0400
-@@ -320,7 +320,7 @@
- 
-     uintptr_t *stackMin, *stackEnd;
- #if JS_STACK_GROWTH_DIRECTION > 0
--    stackMin = rt->nativeStackBase;
-+    stackMin = reinterpret_cast<uintptr_t *>(rt->nativeStackBase);
-     stackEnd = cgcd->nativeStackTop;
- #else
-     stackMin = cgcd->nativeStackTop + 1;
-diff -Naur mozjs-24.2.0/js/src/jsapi.cpp mozjs-24.2.0.new/js/src/jsapi.cpp
---- mozjs-24.2.0/js/src/jsapi.cpp	2013-12-06 17:52:35.000000000 -0500
-+++ mozjs-24.2.0.new/js/src/jsapi.cpp	2014-05-05 16:17:01.330099145 -0400
-@@ -863,10 +863,6 @@
- 
-     PodZero(&debugHooks);
-     PodZero(&atomState);
--
--#if JS_STACK_GROWTH_DIRECTION > 0
--    nativeStackLimit = UINTPTR_MAX;
--#endif
- }
- 
- bool
-diff -Naur mozjs-24.2.0/js/src/jsfriendapi.cpp mozjs-24.2.0.new/js/src/jsfriendapi.cpp
---- mozjs-24.2.0/js/src/jsfriendapi.cpp	2013-10-29 16:40:20.000000000 -0400
-+++ mozjs-24.2.0.new/js/src/jsfriendapi.cpp	2014-05-05 16:18:30.350100769 -0400
-@@ -32,7 +32,11 @@
-                  PerThreadDataFriendFields::RuntimeMainThreadOffset);
- 
- PerThreadDataFriendFields::PerThreadDataFriendFields()
-+#if JS_STACK_GROWTH_DIRECTION > 0
-+  : nativeStackLimit(UINTPTR_MAX)
-+#else
-   : nativeStackLimit(0)
-+#endif
- {
- #if defined(JSGC_ROOT_ANALYSIS) || defined(JSGC_USE_EXACT_ROOTING)
-     PodArrayZero(thingGCRooters);

diff --git a/dev-lang/spidermonkey/files/spidermonkey-24.2.0-fix-file-permissions.patch b/dev-lang/spidermonkey/files/spidermonkey-24.2.0-fix-file-permissions.patch
deleted file mode 100644
index a2247164111..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-24.2.0-fix-file-permissions.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -urN a/js/src/Makefile.in b/js/src/Makefile.in
---- a/js/src/Makefile.in	2013-11-19 13:42:43.000000000 -0600
-+++ b/js/src/Makefile.in	2014-03-08 08:07:28.331006149 -0600
-@@ -542,7 +542,7 @@
- 	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
- 
- install:: $(LIBRARY_NAME).pc
--	$(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(libdir)/pkgconfig
- 
- ######################################################
- # BEGIN SpiderMonkey header installation
-@@ -569,13 +569,13 @@
- #
- 
- install:: $(EXPORTS)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)
- 
- install:: $(EXPORTS_js)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/js
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/js
- 
- install:: $(EXPORTS_mozilla)
--	$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/mozilla
-+	$(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/mozilla
- 
- #
- # END SpiderMonkey header installation

diff --git a/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch b/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch
deleted file mode 100644
index 8b023fd3180..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/js/src/jsapi-tests/testPreserveJitCode.cpp     2015-09-17 16:12:22.000000000 -0400
-+++ b/js/src/jsapi-tests/testPreserveJitCode.cpp 2017-02-27 16:30:28.899191525 -0500
-@@ -16,8 +16,12 @@
- 
- BEGIN_TEST(test_PreserveJitCode)
- {
-+#ifndef JS_CODEGEN_NONE
-     CHECK(testPreserveJitCode(false, 0));
-     CHECK(testPreserveJitCode(true, 1));
-+#else
-+    printf("*JIT is disabled, therefore CANNOT preserve jit code - skipping.\n");
-+#endif
-     return true;
- }
- 
-

diff --git a/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch b/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch
deleted file mode 100644
index 061e8a572db..00000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/python/mozbuild/mozbuild/backend/recursivemake.py	2016-04-14 13:55:21.000000000 -0400
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py	2017-02-28 14:43:09.431448016 -0500
-@@ -1301,17 +1301,17 @@
- 
-         for path, files in files.walk():
-             target_var = (mozpath.join(target, path)
-                           if path else target).replace('/', '_')
-             have_objdir_files = False
-             for f in files:
-                 if not isinstance(f, ObjDirPath):
-                     dest = mozpath.join(reltarget, path, mozpath.basename(f))
--                    install_manifest.add_symlink(f.full_path, dest)
-+                    install_manifest.add_copy(f.full_path, dest)
-                 else:
-                     backend_file.write('%s_FILES += %s\n' % (
-                         target_var, self._pretty_path(f, backend_file)))
-                     have_objdir_files = True
-             if have_objdir_files:
-                 backend_file.write('%s_DEST := $(DEPTH)/%s\n'
-                                    % (target_var,
-                                       mozpath.join(target, path)))

diff --git a/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild b/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
index 7df8506f512..e66d66acb10 100644
--- a/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -8,7 +8,9 @@ inherit eutils toolchain-funcs multilib flag-o-matic
 MY_P="js-${PV}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.gz"
+SRC_URI="http://archive.mozilla.org/pub/js/${MY_P}.tar.gz
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
+	"
 
 LICENSE="NPL-1.1"
 SLOT="0/js"
@@ -21,10 +23,10 @@ RDEPEND="threadsafe? ( dev-libs/nspr )"
 DEPEND="${RDEPEND}"
 
 src_prepare() {
-	epatch "${FILESDIR}/${PN}-1.5-build.patch"
-	epatch "${FILESDIR}/${PN}-1.6-header.patch"
-	epatch "${FILESDIR}/${P}-threadsafe.diff" \
-		"${FILESDIR}"/${P}-ldflags.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.5-build.patch \
+		"${WORKDIR}"/sm0/${PN}-1.6-header.patch \
+		"${WORKDIR}"/sm0/${P}-threadsafe.diff \
+		"${WORKDIR}"/sm0/${P}-ldflags.patch
 
 	# don't force owner for Prefix
 	sed -i -e '/^INSTALL :=/s/-g 0 -o root//' Makefile.ref || die

diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
index 5d181130fcd..a5e340c2686 100644
--- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -13,7 +13,8 @@ MY_P="${MY_PN}-${PV}"
 TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
+SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="0/mozjs185"
@@ -39,23 +40,23 @@ pkg_setup(){
 
 src_prepare() {
 	# https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
-	epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
+	epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
 	# https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
-	epatch "${FILESDIR}/${P}-fix-ppc64.patch"
+	epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=400727
 	# https://bugs.gentoo.org/show_bug.cgi?id=420471
-	epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
+	epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=438746
-	epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=441928
-	epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=439260
-	epatch "${FILESDIR}"/${P}-symbol-versions.patch
+	epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=441934
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=431560
-	epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=552786
 	epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
 

diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild
deleted file mode 100644
index c9ca487769f..00000000000
--- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-WANT_AUTOCONF="2.1"
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="threads"
-inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
-
-MY_PN="js"
-TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
-MY_P="${MY_PN}-${PV}"
-TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
-DESCRIPTION="Stand-alone JavaScript C library"
-HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
-
-LICENSE="NPL-1.1"
-SLOT="0/mozjs185"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
-IUSE="debug minimal static-libs test"
-
-S="${WORKDIR}/${MY_P}"
-BUILDDIR="${S}/js/src"
-
-RDEPEND=">=dev-libs/nspr-4.7.0
-	sys-libs/readline:0=
-	x64-macos? ( dev-libs/jemalloc )"
-DEPEND="${RDEPEND}
-	${PYTHON_DEPS}
-	app-arch/zip
-	virtual/pkgconfig"
-
-pkg_setup(){
-	if [[ ${MERGE_TYPE} != "binary" ]]; then
-		export LC_ALL="C"
-	fi
-}
-
-src_prepare() {
-	# https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
-	epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
-	# https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
-	epatch "${FILESDIR}/${P}-fix-ppc64.patch"
-	# https://bugs.gentoo.org/show_bug.cgi?id=400727
-	# https://bugs.gentoo.org/show_bug.cgi?id=420471
-	epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
-	# https://bugs.gentoo.org/show_bug.cgi?id=438746
-	epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=441928
-	epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=439260
-	epatch "${FILESDIR}"/${P}-symbol-versions.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=441934
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=431560
-	epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=552786
-	epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
-	# https://bugs.gentoo.org/show_bug.cgi?id=439558
-	epatch "${FILESDIR}"/${PN}-1.8.7-x32.patch
-
-	epatch_user
-
-	cd "${BUILDDIR}" || die
-	eautoconf
-}
-
-src_configure() {
-	cd "${BUILDDIR}" || die
-
-	CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
-	AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
-	LD="$(tc-getLD)" \
-	econf \
-		${myopts} \
-		--enable-jemalloc \
-		--enable-readline \
-		--enable-threadsafe \
-		--with-system-nspr \
-		--disable-optimize \
-		--disable-profile-guided-optimization \
-		$(use_enable debug) \
-		$(use_enable static-libs static) \
-		$(use_enable test tests)
-}
-
-cross_make() {
-	emake \
-		CFLAGS="${BUILD_CFLAGS}" \
-		CXXFLAGS="${BUILD_CXXFLAGS}" \
-		AR="${BUILD_AR}" \
-		CC="${BUILD_CC}" \
-		CXX="${BUILD_CXX}" \
-		RANLIB="${BUILD_RANLIB}" \
-		"$@"
-}
-src_compile() {
-	cd "${BUILDDIR}" || die
-	if tc-is-cross-compiler; then
-		tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
-		cross_make jscpucfg host_jsoplengen host_jskwgen
-		cross_make -C config nsinstall
-		mv {,native-}jscpucfg || die
-		mv {,native-}host_jskwgen || die
-		mv {,native-}host_jsoplengen || die
-		mv config/{,native-}nsinstall || die
-		sed -i \
-			-e 's@./jscpucfg@./native-jscpucfg@' \
-			-e 's@./host_jskwgen@./native-host_jskwgen@' \
-			-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
-			Makefile || die
-		sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
-		rm -f config/host_nsinstall.o \
-			config/host_pathsub.o \
-			host_jskwgen.o \
-			host_jsoplengen.o || die
-	fi
-	emake
-}
-
-src_test() {
-	cd "${BUILDDIR}/jsapi-tests" || die
-	# for bug 415791
-	pax-mark mr jsapi-tests
-	emake check
-}
-
-src_install() {
-	cd "${BUILDDIR}" || die
-	emake DESTDIR="${D}" install
-	# bug 437520 , exclude js shell for small systems
-	if ! use minimal ; then
-		dobin shell/js
-		pax-mark m "${ED}/usr/bin/js"
-	fi
-	dodoc ../../README
-	dohtml README.html
-
-	if ! use static-libs; then
-		# We can't actually disable building of static libraries
-		# They're used by the tests and in a few other places
-		find "${D}" -iname '*.a' -delete || die
-	fi
-}

diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
index 1ae283e263a..7cb19fe5087 100644
--- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
@@ -13,7 +13,9 @@ MY_P="${MY_PN}-${PV}"
 TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
+SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
+	"
 
 LICENSE="NPL-1.1"
 SLOT="0/mozjs185"
@@ -39,29 +41,29 @@ pkg_setup(){
 
 src_prepare() {
 	# https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
-	epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
+	epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
 	# https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
-	epatch "${FILESDIR}/${P}-fix-ppc64.patch"
+	epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=400727
 	# https://bugs.gentoo.org/show_bug.cgi?id=420471
-	epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
+	epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=438746
-	epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=441928
-	epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=439260
-	epatch "${FILESDIR}"/${P}-symbol-versions.patch
+	epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=441934
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
-	epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=431560
-	epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=552786
 	epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=439558
-	epatch "${FILESDIR}"/${PN}-1.8.7-x32.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=582478
-	epatch "${FILESDIR}"/${PN}-1.8.5-gcc6.patch
+	epatch "${WORKDIR}"/sm0/${PN}-1.8.5-gcc6.patch
 
 	epatch_user
 

diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
index 3a77b714665..06416bed528 100644
--- a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -11,7 +11,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}${PV}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/js/${MY_PN}${PV}.tar.gz"
+SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="17"
@@ -42,9 +43,9 @@ pkg_setup(){
 }
 
 src_prepare() {
-	epatch "${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
-	epatch "${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
-	epatch "${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
+	epatch "${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
+	epatch "${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
+	epatch "${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=552786
 	epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
 

diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
index 24aaa1cd227..6a67fe8f8d5 100644
--- a/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
@@ -11,7 +11,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}${PV}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/js/${MY_PN}${PV}.tar.gz"
+SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="17"
@@ -42,12 +43,12 @@ pkg_setup(){
 }
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
-	"${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
-	"${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
-	"${FILESDIR}"/${PN}-17-clang.patch
+	"${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
+	"${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
+	"${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
+	"${WORKDIR}"/sm17/${PN}-17-clang.patch
 	"${FILESDIR}"/${PN}-perl-defined-array-check.patch
-	"${FILESDIR}"/${PN}-17-fix_pointer_dereference.patch
+	"${WORKDIR}"/sm17/${PN}-17-fix_pointer_dereference.patch
 )
 
 src_prepare() {

diff --git a/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild b/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
index 9779ba987f8..3d94feba95d 100644
--- a/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="5"
@@ -11,7 +11,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.bz2"
+SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="24"
@@ -41,9 +42,9 @@ pkg_setup(){
 }
 
 src_prepare() {
-	epatch "${FILESDIR}"/${PN}-${SLOT}-system-icu.patch
-	epatch "${FILESDIR}"/${PN}-24.2.0-fix-file-permissions.patch
-	epatch "${FILESDIR}"/${PN}-${SLOT}-upward-growing-stack.patch
+	epatch "${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
+	epatch "${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
+	epatch "${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
 	# https://bugs.gentoo.org/show_bug.cgi?id=552786
 	epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
 	epatch_user

diff --git a/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
index 1e3f7b5b040..edee003c55b 100644
--- a/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
@@ -11,7 +11,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.bz2"
+SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="24"
@@ -34,11 +35,11 @@ DEPEND="${RDEPEND}
 	virtual/pkgconfig"
 
 PATCHES=(
-	"${FILESDIR}"/${PN}-${SLOT}-system-icu.patch
-	"${FILESDIR}"/${PN}-24.2.0-fix-file-permissions.patch
-	"${FILESDIR}"/${PN}-${SLOT}-upward-growing-stack.patch
+	"${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
+	"${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
+	"${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
 	"${FILESDIR}"/${PN}-perl-defined-array-check.patch
-	"${FILESDIR}"/${PN}-17-fix_pointer_dereference.patch
+	"${WORKDIR}"/sm24/${PN}-17-fix_pointer_dereference.patch
 )
 
 pkg_setup(){

diff --git a/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild b/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
index 42e2c0460c4..c55476923b0 100644
--- a/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
@@ -9,7 +9,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://people.mozilla.org/~sstangl/${MY_P}.tar.bz2"
+SRC_URI="https://people.mozilla.org/~sstangl/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot38-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="38"
@@ -36,12 +37,12 @@ pkg_setup(){
 }
 
 src_prepare() {
-	eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
-		"${FILESDIR}"/mozjs38-1269317.patch \
-		"${FILESDIR}"/mozjs38-fix-tracelogger.patch \
-		"${FILESDIR}"/mozjs38-copy-headers.patch \
-		"${FILESDIR}"/mozjs38-pkg-config-version.patch \
-		"${FILESDIR}"/mozilla_configure_regexp_esr38.patch
+	eapply "${WORKDIR}"/sm38/${PN}-38-jsapi-tests.patch \
+		"${WORKDIR}"/sm38/mozjs38-1269317.patch \
+		"${WORKDIR}"/sm38/mozjs38-fix-tracelogger.patch \
+		"${WORKDIR}"/sm38/mozjs38-copy-headers.patch \
+		"${WORKDIR}"/sm38/mozjs38-pkg-config-version.patch \
+		"${WORKDIR}"/sm38/mozilla_configure_regexp_esr38.patch
 
 	eapply_user
 

diff --git a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
index 26f88cce97f..2602ecc5e97 100644
--- a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
@@ -9,7 +9,8 @@ MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
 DESCRIPTION="Stand-alone JavaScript C library"
 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2"
+SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2
+	https://dev.gentoo.org/~axs/distfiles/${PN}-slot45-patches-01.tar.xz"
 
 LICENSE="NPL-1.1"
 SLOT="45"
@@ -35,14 +36,14 @@ pkg_setup(){
 }
 
 src_prepare() {
-	eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
-		"${FILESDIR}"/mozjs45-1266366.patch \
-		"${FILESDIR}"/mozjs38-pkg-config-version.patch \
-		"${FILESDIR}"/mozilla_configure_regexp_esr.patch \
-		"${FILESDIR}"/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
+	eapply "${WORKDIR}"/sm45/${PN}-38-jsapi-tests.patch \
+		"${WORKDIR}"/sm45/mozjs45-1266366.patch \
+		"${WORKDIR}"/sm45/mozjs38-pkg-config-version.patch \
+		"${WORKDIR}"/sm45/mozilla_configure_regexp_esr.patch \
+		"${WORKDIR}"/sm45/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
 
 	# apply relevant (modified) patches from gentoo's firefox-45 patchset
-	eapply "${FILESDIR}"/ff45
+	eapply "${WORKDIR}"/sm45/ff45
 
 	eapply_user
 


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-10-03 15:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-03 15:50 [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/, dev-lang/spidermonkey/files/ff45/, Ian Stakenvicius

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox