summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Stakenvicius <axs@gentoo.org>2017-10-03 10:38:14 -0400
committerIan Stakenvicius <axs@gentoo.org>2017-10-03 11:49:57 -0400
commita4e326514db8e1f2c4423fc326f2983de2fad8b4 (patch)
tree5c4b67c2eb015aa8d9a69f23cfeb795acf7c12ac /dev-lang/spidermonkey/files
parentsys-apps/baselayout: remove unstable version (diff)
downloadgentoo-a4e326514db8e1f2c4423fc326f2983de2fad8b4.tar.gz
gentoo-a4e326514db8e1f2c4423fc326f2983de2fad8b4.tar.bz2
gentoo-a4e326514db8e1f2c4423fc326f2983de2fad8b4.zip
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
Diffstat (limited to 'dev-lang/spidermonkey/files')
-rw-r--r--dev-lang/spidermonkey/files/ff45/7000_drop-Wl-build-id_v4.patch17
-rw-r--r--dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch22
-rw-r--r--dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch21
-rw-r--r--dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1253216.patch46
-rw-r--r--dev-lang/spidermonkey/files/ff45/8008_nonejit_x86_fix_based_on_bug1253216.patch11
-rw-r--r--dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch248
-rw-r--r--dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch32
-rw-r--r--dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch32
-rw-r--r--dev-lang/spidermonkey/files/mozjs38-1269317.patch124
-rw-r--r--dev-lang/spidermonkey/files/mozjs38-copy-headers.patch20
-rw-r--r--dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch605
-rw-r--r--dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch22
-rw-r--r--dev-lang/spidermonkey/files/mozjs45-1266366.patch29
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch138
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch13
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch42
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff18
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-arm_respect_cflags-3.patch99
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-install-symlinks.patch15
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-ppc64.patch61
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch144
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch53
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch381
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch11
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-perf_event-check.patch21
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.5-symbol-versions.patch32
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.7-freebsd-pthreads.patch11
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch25
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-17-clang.patch18
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch30
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch67
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch22
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-17.0.0-fix-file-permissions.patch37
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch199
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch41
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-24.2.0-fix-file-permissions.patch29
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch16
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch21
38 files changed, 0 insertions, 2773 deletions
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)))