Gentoo Archives: gentoo-commits

From: Ian Stakenvicius <axs@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/, dev-lang/spidermonkey/files/ff45/, ...
Date: Tue, 03 Oct 2017 15:50:11
Message-Id: 1507045797.a4e326514db8e1f2c4423fc326f2983de2fad8b4.axs@gentoo
1 commit: a4e326514db8e1f2c4423fc326f2983de2fad8b4
2 Author: Ian Stakenvicius <axs <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 3 14:38:14 2017 +0000
4 Commit: Ian Stakenvicius <axs <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 3 15:49:57 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4e32651
7
8 dev-lang/spidermonkey: file and package cleanups
9
10 - Dropped spidermonkey-1.8.5-r5
11 - Migrated same-slot patches to tarballs to clean up ${FILESDIR}
12 - fixed SRC_URI to point to mozilla http repo instead of the log-removed ftp
13
14 Package-Manager: Portage-2.3.8, Repoman-2.3.1
15
16 dev-lang/spidermonkey/Manifest | 5 +
17 .../files/ff45/7000_drop-Wl-build-id_v4.patch | 17 -
18 .../files/ff45/7003_freebsd_jscpucfg.patch | 22 -
19 .../files/ff45/8001_hppa_js_configure.patch | 21 -
20 .../ff45/8007_nonejit_ppc64_fix_bug1253216.patch | 46 --
21 .../8008_nonejit_x86_fix_based_on_bug1253216.patch | 11 -
22 .../spidermonkey/files/ff45/8014_ia64_js.patch | 248 ---------
23 .../files/mozilla_configure_regexp_esr.patch | 32 --
24 .../files/mozilla_configure_regexp_esr38.patch | 32 --
25 dev-lang/spidermonkey/files/mozjs38-1269317.patch | 124 -----
26 .../spidermonkey/files/mozjs38-copy-headers.patch | 20 -
27 .../files/mozjs38-fix-tracelogger.patch | 605 ---------------------
28 .../files/mozjs38-pkg-config-version.patch | 22 -
29 dev-lang/spidermonkey/files/mozjs45-1266366.patch | 29 -
30 .../files/spidermonkey-1.5-build.patch | 138 -----
31 .../files/spidermonkey-1.6-header.patch | 13 -
32 .../files/spidermonkey-1.7.0-ldflags.patch | 42 --
33 .../files/spidermonkey-1.7.0-threadsafe.diff | 18 -
34 .../spidermonkey-1.8.5-arm_respect_cflags-3.patch | 99 ----
35 .../spidermonkey-1.8.5-fix-install-symlinks.patch | 15 -
36 .../files/spidermonkey-1.8.5-fix-ppc64.patch | 61 ---
37 .../files/spidermonkey-1.8.5-gcc6.patch | 144 -----
38 .../files/spidermonkey-1.8.5-ia64-fix.patch | 53 --
39 .../spidermonkey-1.8.5-ia64-static-strings.patch | 381 -------------
40 .../files/spidermonkey-1.8.5-isfinite.patch | 11 -
41 .../spidermonkey-1.8.5-perf_event-check.patch | 21 -
42 .../files/spidermonkey-1.8.5-symbol-versions.patch | 32 --
43 .../spidermonkey-1.8.7-freebsd-pthreads.patch | 11 -
44 .../files/spidermonkey-1.8.7-x32.patch | 25 -
45 .../spidermonkey/files/spidermonkey-17-clang.patch | 18 -
46 .../spidermonkey-17-fix_pointer_dereference.patch | 30 -
47 .../files/spidermonkey-17-ia64-mmap.patch | 67 ---
48 .../files/spidermonkey-17-js-config-shebang.patch | 22 -
49 .../spidermonkey-17.0.0-fix-file-permissions.patch | 37 --
50 .../files/spidermonkey-24-system-icu.patch | 199 -------
51 .../spidermonkey-24-upward-growing-stack.patch | 41 --
52 .../spidermonkey-24.2.0-fix-file-permissions.patch | 29 -
53 .../files/spidermonkey-38-jsapi-tests.patch | 16 -
54 ...spidermonkey-45-dont-symlink-non-objfiles.patch | 21 -
55 dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild | 14 +-
56 dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild | 23 +-
57 dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild | 146 -----
58 dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild | 26 +-
59 .../spidermonkey/spidermonkey-17.0.0-r4.ebuild | 11 +-
60 .../spidermonkey/spidermonkey-17.0.0-r5.ebuild | 13 +-
61 .../spidermonkey/spidermonkey-24.2.0-r3.ebuild | 11 +-
62 .../spidermonkey/spidermonkey-24.2.0-r4.ebuild | 11 +-
63 .../spidermonkey/spidermonkey-38.2.1_rc0.ebuild | 15 +-
64 dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild | 15 +-
65 49 files changed, 80 insertions(+), 2983 deletions(-)
66
67 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
68 index 312f1709f4d..a8bbf9425ed 100644
69 --- a/dev-lang/spidermonkey/Manifest
70 +++ b/dev-lang/spidermonkey/Manifest
71 @@ -6,3 +6,8 @@ DIST mozjs-45.0.2.tar.bz2 97508152 SHA256 570530b1e551bf4a459d7cae875f33f99d5ef0
72 DIST mozjs-52.2.0_pre20170719.tar.bz2 30630133 SHA256 2bab92b432ecbe665616440594463abfb21ce3aff573f360f19ef0cce8ce4c77 SHA512 9657006e071bdf0b6006ab806949eb8371f4d749989d95a3a46da0baedfe669727ccd6430c2022a4ec5ce2bb9cd9a231aba85605de1319a5c678633f0001a78c WHIRLPOOL 14db035ad690b416b793df34a065ddf5096e43346f5a0462cf79605f1745fa18f7f578ae46b0eadeeef3fb7369e76f812c4cdfe227b1442d277fd80625998c52
73 DIST mozjs17.0.0.tar.gz 6778934 SHA256 321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba SHA512 39b68aeb9f712f146778d8b68ee795709a1372c8ab893a222af4eb34882427d6f5cf877e743d6cb2f1b4348c194d8f3774f00cb775b03515b34b49560b748be4 WHIRLPOOL 4df7b51577787194065162b09d2c3dda849c13fa901305f9925d4ca5d38bb7f8e2daa943099e003fb9d11f9264ae2d77ccf04e5eea11e3ddcb624b504b99d52f
74 DIST spidermonkey-52.0-patches-0.tar.xz 5172 SHA256 20165c0fbf5d441cea6217a7a6dca8b8623b5dbba2496eb769aaef3ca93647bf SHA512 88ad640fb0efa4972f1b7782bd0abee1751b73914ee51faade93b25c4d8eec64e7693898842a406c49fc2ab43733404efeccb138afb64d2193b9a5eb612578e3 WHIRLPOOL bd9f264d54bfd14ad9f339229a29a66f873d2ae66fbbc55edd4ae80135f08c6cd4a5e9c5ab65254749ecbafb7c8fdaa5c5936275e263e53ce47ab606d143114c
75 +DIST spidermonkey-slot0-patches-01.tar.xz 10488 SHA256 7f0bf9921b9320046b9f06afaa1e0764aead72770ef0a3c29f4967aa20f9f7f9 SHA512 6c878ed0b50c052989a8b965fed845e9c672b691f4c4b1f98ee82e81a33880e1e6bf1dac8222d71322553282de602a88272dedebbcf50d27967fc172f0a8054a WHIRLPOOL 6a35cd027af0b7e730f8e563b9a2048bc8c7b8447889ae4b0cb719a12d48917c34b6e694c84e0e0c23a45b5f5d016580ceb97ac58527f705ffe2a59d56f15869
76 +DIST spidermonkey-slot17-patches-01.tar.xz 2748 SHA256 366ff6db042face813c7e2145184e750d7f8ec44c0e8725c0b53d6be0cc33e2b SHA512 21a90f85d156de3cca9811317507162a458f908bb447924fcfbf49b7bb70496b611ce7df90b90775316b8ceafda56692be3bf856b168b83ed40b8a5c668eed3f WHIRLPOOL bee9e8b46200a2f8b41d5fa208a18471758c7bc1c08c9621a46e54846f49fecb37325a8ada9c438119e4772554078870a5e3d4d76d9d6e13e2d13c287ed0834a
77 +DIST spidermonkey-slot24-patches-01.tar.xz 3444 SHA256 6a16001d665443c5e40c3237f6adc16589b26993e9d3c87577e6feabae42f7e0 SHA512 712250983f726eb2fe7ae243e9ca510b6e5b8fa0f221fe5120c2e2f75334f7e4b10b8ab172869d7333a120529dbc2a513c170533d5ad5af27a2643ce1384bbdb WHIRLPOOL ec895aabb0486b9eea41bbc005af552cadb587450af72de79a7d4a20f9258b589c63cf1f8b3afbba8244fe8b748937ebcbf572f1655a57e68c0d2b482cddd153
78 +DIST spidermonkey-slot38-patches-01.tar.xz 7472 SHA256 ff4b66116b18b376630efa0ced0c0ce8c3a636c43b75e34e904c87f8d4cd4f6a SHA512 953acee985d192c6d0f18f14c70fdda33a7c8f784c6833ca8b75495044b40a8b3f29b281c40dbfcda0c8570c111a3dd1717c2ef0ffd651c1b50d1f2bff1f6d09 WHIRLPOOL b41f21c2b7434332c8bff351af7e030a94db7044995f88df74d7efcf2d196f5ddba6293230b42f528ca22ea2d7fdd58d0da935bb90b155f7c83fc5b3f9645ef5
79 +DIST spidermonkey-slot45-patches-01.tar.xz 5092 SHA256 713e03f4c95908d93003fa1ca776823cccaf8fdc27db09ea59176edc318504dc SHA512 d52f038a7b4f7b410b5a1f94a55962adafc5906e7d85f605f3fe45ad49417c2b9d58d853a81b5d2395a2842c9780992d5a2c1a0e67aa77fb09f21aff9aeb0f7a WHIRLPOOL 9e4119af5a09f155a8f8781448364a9262ab2fb8d085a7235498f555ffa64eb054706ada3548ac40f76e686ed80e2777d39c565a631bf58b0c2e45f6195ce47b
80
81 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
82 deleted file mode 100644
83 index 8a1e1dd9988..00000000000
84 --- a/dev-lang/spidermonkey/files/ff45/7000_drop-Wl-build-id_v4.patch
85 +++ /dev/null
86 @@ -1,17 +0,0 @@
87 ---- a/js/src/configure.in 2014-06-05 21:15:27.000000000 -0400
88 -+++ b/js/src/configure.in 2014-06-13 11:01:51.130703283 -0400
89 -@@ -1156,14 +1156,6 @@
90 - AC_MSG_RESULT([no])
91 - LDFLAGS=$_SAVE_LDFLAGS)
92 -
93 -- AC_MSG_CHECKING([for --build-id option to ld])
94 -- _SAVE_LDFLAGS=$LDFLAGS
95 -- LDFLAGS="$LDFLAGS -Wl,--build-id"
96 -- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
97 -- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
98 -- AC_MSG_RESULT([no])
99 -- LDFLAGS=$_SAVE_LDFLAGS)
100 --
101 - # Turn on gcc/clang warnings:
102 - # https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html
103 - #
104
105 diff --git a/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch b/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch
106 deleted file mode 100644
107 index 467bf444144..00000000000
108 --- a/dev-lang/spidermonkey/files/ff45/7003_freebsd_jscpucfg.patch
109 +++ /dev/null
110 @@ -1,22 +0,0 @@
111 ---- a/js/src/jscpucfg.h 2012-01-18 17:38:54.409461514 +0100
112 -+++ b/js/src/jscpucfg.h 2012-01-18 17:38:59.522462164 +0100
113 -@@ -77,6 +77,19 @@
114 - #define IS_BIG_ENDIAN 1
115 - #endif
116 -
117 -+#elif defined(__FreeBSD__)
118 -+#include <sys/endian.h>
119 -+
120 -+#if defined(BYTE_ORDER)
121 -+#if BYTE_ORDER == LITTLE_ENDIAN
122 -+#define IS_LITTLE_ENDIAN 1
123 -+#undef IS_BIG_ENDIAN
124 -+#elif BYTE_ORDER == BIG_ENDIAN
125 -+#undef IS_LITTLE_ENDIAN
126 -+#define IS_BIG_ENDIAN 1
127 -+#endif
128 -+#endif
129 -+
130 - #elif defined(JS_HAVE_ENDIAN_H)
131 - #include <endian.h>
132 -
133
134 diff --git a/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch b/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch
135 deleted file mode 100644
136 index a33ab3cd614..00000000000
137 --- a/dev-lang/spidermonkey/files/ff45/8001_hppa_js_configure.patch
138 +++ /dev/null
139 @@ -1,21 +0,0 @@
140 ---- a/js/src/configure.in
141 -+++ b/js/src/configure.in
142 -@@ -958,7 +958,7 @@
143 - CPU_ARCH=s390x
144 - ;;
145 -
146 --hppa* | parisc)
147 -+hppa* | parisc*)
148 - CPU_ARCH=hppa
149 - ;;
150 -
151 -@@ -2009,6 +2009,9 @@
152 - AC_DEFINE(JS_CPU_MIPS)
153 - AC_DEFINE(JS_NUNBOX32)
154 - ;;
155 -+hppa*)
156 -+ AC_DEFINE(JS_NUNBOX32)
157 -+ ;;
158 - esac
159 -
160 - MOZ_ARG_DISABLE_BOOL(ion,
161
162 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
163 deleted file mode 100644
164 index 26e9373dddf..00000000000
165 --- a/dev-lang/spidermonkey/files/ff45/8007_nonejit_ppc64_fix_bug1253216.patch
166 +++ /dev/null
167 @@ -1,46 +0,0 @@
168 -
169 -# HG changeset patch
170 -# User Lars T Hansen <lhansen@×××××××.com>
171 -# Date 1457091735 -3600
172 -# Node ID 69f237c2cf9131e97372debee01931dbacd064e5
173 -# Parent 3aa4483740828617001060fe7386051020521e90
174 -Bug 1253216 - clean up the atomic ops ifdef nest. r=jorendorff
175 -
176 -diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
177 ---- a/js/src/jit/AtomicOperations.h
178 -+++ b/js/src/jit/AtomicOperations.h
179 -@@ -318,21 +318,29 @@ AtomicOperations::isLockfree(int32_t siz
180 - } // namespace js
181 -
182 - #if defined(JS_CODEGEN_ARM)
183 - # include "jit/arm/AtomicOperations-arm.h"
184 - #elif defined(JS_CODEGEN_ARM64)
185 - # include "jit/arm64/AtomicOperations-arm64.h"
186 - #elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
187 - # include "jit/mips-shared/AtomicOperations-mips-shared.h"
188 --#elif defined(__ppc64__) || defined(__PPC64_) \
189 -- || defined(__ppc64le__) || defined(__PPC64LE__) \
190 -- || defined(__ppc__) || defined(__PPC__)
191 -+#elif defined(__ppc__) || defined(__PPC__)
192 - # include "jit/none/AtomicOperations-ppc.h"
193 - #elif defined(JS_CODEGEN_NONE)
194 --# include "jit/none/AtomicOperations-none.h"
195 -+ // You can disable the JIT with --disable-ion but you must still
196 -+ // provide the atomic operations that will be used by the JS engine.
197 -+ // When the JIT is disabled the operations are simply safe-for-races
198 -+ // C++ realizations of atomics. These operations cannot be written
199 -+ // in portable C++, hence the default here is to crash. See the
200 -+ // top of the file for more guidance.
201 -+# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
202 -+# include "jit/none/AtomicOperations-ppc.h"
203 -+# else
204 -+# include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
205 -+# endif
206 - #elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
207 - # include "jit/x86-shared/AtomicOperations-x86-shared.h"
208 - #else
209 - # error "Atomic operations must be defined for this platform"
210 - #endif
211 -
212 - #endif // jit_AtomicOperations_h
213 -
214
215 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
216 deleted file mode 100644
217 index 86b27130205..00000000000
218 --- a/dev-lang/spidermonkey/files/ff45/8008_nonejit_x86_fix_based_on_bug1253216.patch
219 +++ /dev/null
220 @@ -1,11 +0,0 @@
221 ---- a/js/src/jit/AtomicOperations.h 2016-03-12 13:42:27.914524205 -0500
222 -+++ b/js/src/jit/AtomicOperations.h 2016-03-12 13:42:15.644573630 -0500
223 -@@ -311,6 +311,8 @@
224 - // top of the file for more guidance.
225 - # if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
226 - # include "jit/none/AtomicOperations-ppc.h"
227 -+# elif defined(__i386__) || defined(__x86_64__)
228 -+# include "jit/x86-shared/AtomicOperations-x86-shared.h"
229 - # else
230 - # include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
231 - # endif
232
233 diff --git a/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch b/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch
234 deleted file mode 100644
235 index 73075919a86..00000000000
236 --- a/dev-lang/spidermonkey/files/ff45/8014_ia64_js.patch
237 +++ /dev/null
238 @@ -1,248 +0,0 @@
239 ---- a/js/src/jit/AtomicOperations.h 2016-11-08 21:27:30.000000000 +0100
240 -+++ b/js/src/jit/AtomicOperations.h 2016-11-08 22:17:59.280251831 +0100
241 -@@ -311,6 +311,8 @@
242 - // top of the file for more guidance.
243 - # if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
244 - # include "jit/none/AtomicOperations-ppc.h"
245 -+# elif defined(__ia64__)
246 -+# include "jit/none/AtomicOperations-ia64.h"
247 - # elif defined(__i386__) || defined(__x86_64__)
248 - # include "jit/x86-shared/AtomicOperations-x86-shared.h"
249 - # else
250 ---- /dev/null
251 -+++ b/js/src/jit/none/AtomicOperations-ia64.h 2016-11-08 22:09:41.378809457 +0100
252 -@@ -0,0 +1,234 @@
253 -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
254 -+ * vim: set ts=8 sts=4 et sw=4 tw=99:
255 -+ * This Source Code Form is subject to the terms of the Mozilla Public
256 -+ * License, v. 2.0. If a copy of the MPL was not distributed with this
257 -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
258 -+
259 -+/* For documentation, see jit/AtomicOperations.h */
260 -+
261 -+#ifndef jit_ia64_AtomicOperations_ia64_h
262 -+#define jit_ia64_AtomicOperations_ia64_h
263 -+
264 -+#include "mozilla/Assertions.h"
265 -+#include "mozilla/Types.h"
266 -+
267 -+#if defined(__GNUC__)
268 -+
269 -+// The default implementation tactic for gcc is to use the newer
270 -+// __atomic intrinsics added for use in C++11 <atomic>. Where that
271 -+// isn't available, we use GCC's older __sync functions instead.
272 -+//
273 -+// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward
274 -+// compatible option for older compilers: enable this to use GCC's old
275 -+// __sync functions instead of the newer __atomic functions. This
276 -+// will be required for GCC 4.6.x and earlier, should we need to use
277 -+// those versions.
278 -+
279 -+//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
280 -+
281 -+inline bool
282 -+js::jit::AtomicOperations::isLockfree8()
283 -+{
284 -+# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
285 -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0));
286 -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0));
287 -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0));
288 -+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0));
289 -+ return true;
290 -+# else
291 -+ return false;
292 -+# endif
293 -+}
294 -+
295 -+inline void
296 -+js::jit::AtomicOperations::fenceSeqCst()
297 -+{
298 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
299 -+ __sync_synchronize();
300 -+# else
301 -+ __atomic_thread_fence(__ATOMIC_SEQ_CST);
302 -+# endif
303 -+}
304 -+
305 -+template<typename T>
306 -+inline T
307 -+js::jit::AtomicOperations::loadSeqCst(T* addr)
308 -+{
309 -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
310 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
311 -+ __sync_synchronize();
312 -+ T v = *addr;
313 -+ __sync_synchronize();
314 -+# else
315 -+ T v;
316 -+ __atomic_load(addr, &v, __ATOMIC_SEQ_CST);
317 -+# endif
318 -+ return v;
319 -+}
320 -+
321 -+template<typename T>
322 -+inline void
323 -+js::jit::AtomicOperations::storeSeqCst(T* addr, T val)
324 -+{
325 -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
326 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
327 -+ __sync_synchronize();
328 -+ *addr = val;
329 -+ __sync_synchronize();
330 -+# else
331 -+ __atomic_store(addr, &val, __ATOMIC_SEQ_CST);
332 -+# endif
333 -+}
334 -+
335 -+template<typename T>
336 -+inline T
337 -+js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval)
338 -+{
339 -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
340 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
341 -+ return __sync_val_compare_and_swap(addr, oldval, newval);
342 -+# else
343 -+ __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
344 -+ return oldval;
345 -+# endif
346 -+}
347 -+
348 -+template<typename T>
349 -+inline T
350 -+js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val)
351 -+{
352 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
353 -+ return __sync_fetch_and_add(addr, val);
354 -+# else
355 -+ return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST);
356 -+# endif
357 -+}
358 -+
359 -+template<typename T>
360 -+inline T
361 -+js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val)
362 -+{
363 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
364 -+ return __sync_fetch_and_sub(addr, val);
365 -+# else
366 -+ return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST);
367 -+# endif
368 -+}
369 -+
370 -+template<typename T>
371 -+inline T
372 -+js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val)
373 -+{
374 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
375 -+ return __sync_fetch_and_and(addr, val);
376 -+# else
377 -+ return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST);
378 -+# endif
379 -+}
380 -+
381 -+template<typename T>
382 -+inline T
383 -+js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val)
384 -+{
385 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
386 -+ return __sync_fetch_and_or(addr, val);
387 -+# else
388 -+ return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST);
389 -+# endif
390 -+}
391 -+
392 -+template<typename T>
393 -+inline T
394 -+js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val)
395 -+{
396 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
397 -+ return __sync_fetch_and_xor(addr, val);
398 -+# else
399 -+ return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST);
400 -+# endif
401 -+}
402 -+
403 -+template<typename T>
404 -+inline T
405 -+js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val)
406 -+{
407 -+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
408 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
409 -+ T v;
410 -+ __sync_synchronize();
411 -+ do {
412 -+ v = *addr;
413 -+ } while (__sync_val_compare_and_swap(addr, v, val) != v);
414 -+ return v;
415 -+# else
416 -+ T v;
417 -+ __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST);
418 -+ return v;
419 -+# endif
420 -+}
421 -+
422 -+template<typename T>
423 -+inline T
424 -+js::jit::AtomicOperations::loadSafeWhenRacy(T* addr)
425 -+{
426 -+ return *addr; // FIXME (1208663): not yet safe
427 -+}
428 -+
429 -+template<typename T>
430 -+inline void
431 -+js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val)
432 -+{
433 -+ *addr = val; // FIXME (1208663): not yet safe
434 -+}
435 -+
436 -+inline void
437 -+js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes)
438 -+{
439 -+ ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe
440 -+}
441 -+
442 -+inline void
443 -+js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes)
444 -+{
445 -+ ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe
446 -+}
447 -+
448 -+template<size_t nbytes>
449 -+inline void
450 -+js::jit::RegionLock::acquire(void* addr)
451 -+{
452 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
453 -+ while (!__sync_bool_compare_and_swap(&spinlock, 0, 1))
454 -+ ;
455 -+# else
456 -+ uint32_t zero = 0;
457 -+ uint32_t one = 1;
458 -+ while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) {
459 -+ zero = 0;
460 -+ continue;
461 -+ }
462 -+# endif
463 -+}
464 -+
465 -+template<size_t nbytes>
466 -+inline void
467 -+js::jit::RegionLock::release(void* addr)
468 -+{
469 -+ MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock");
470 -+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
471 -+ __sync_sub_and_fetch(&spinlock, 1);
472 -+# else
473 -+ uint32_t zero = 0;
474 -+ __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST);
475 -+# endif
476 -+}
477 -+
478 -+# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
479 -+
480 -+#elif defined(ENABLE_SHARED_ARRAY_BUFFER)
481 -+
482 -+# error "Either disable JS shared memory, use GCC, or add code here"
483 -+
484 -+#endif
485 -+
486 -+#endif // jit_ia64_AtomicOperations_ia64_h
487
488 diff --git a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
489 deleted file mode 100644
490 index 9e165ff9e88..00000000000
491 --- a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
492 +++ /dev/null
493 @@ -1,32 +0,0 @@
494 -From: Jory A. Pratt <anarchy@g.o>
495 -
496 -Note: the first occurrence of :space: is [:space:] (with a single pair
497 -of []), where it should be [[:space:]] (with two pairs of []).
498 -
499 -This causes the sed command to fail (with the error message quoted in
500 -my original report), driving to failure the whole configure step.
501 -
502 -https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
503 -
504 -diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
505 ---- a/build/autoconf/icu.m4
506 -+++ b/build/autoconf/icu.m4
507 -@@ -68,17 +68,17 @@ if test -n "$USE_ICU"; then
508 - icudir="$_topsrcdir/intl/icu/source"
509 - if test ! -d "$icudir"; then
510 - icudir="$_topsrcdir/../../intl/icu/source"
511 - if test ! -d "$icudir"; then
512 - AC_MSG_ERROR([Cannot find the ICU directory])
513 - fi
514 - fi
515 -
516 -- 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"`
517 -+ 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"`
518 - if test x"$version" = x; then
519 - AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
520 - fi
521 - MOZ_ICU_VERSION="$version"
522 -
523 - if test "$OS_TARGET" = WINNT; then
524 - MOZ_SHARED_ICU=1
525 - fi
526
527 diff --git a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch
528 deleted file mode 100644
529 index 488b02f1281..00000000000
530 --- a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr38.patch
531 +++ /dev/null
532 @@ -1,32 +0,0 @@
533 -From: Jory A. Pratt <anarchy@g.o>
534 -
535 -Note: the first occurrence of :space: is [:space:] (with a single pair
536 -of []), where it should be [[:space:]] (with two pairs of []).
537 -
538 -This causes the sed command to fail (with the error message quoted in
539 -my original report), driving to failure the whole configure step.
540 -
541 -https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
542 -
543 -diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
544 ---- a/build/autoconf/icu.m4
545 -+++ b/build/autoconf/icu.m4
546 -@@ -68,17 +68,17 @@
547 - icudir="$_topsrcdir/intl/icu/source"
548 - if test ! -d "$icudir"; then
549 - icudir="$_topsrcdir/../../intl/icu/source"
550 - if test ! -d "$icudir"; then
551 - AC_MSG_ERROR([Cannot find the ICU directory])
552 - fi
553 - fi
554 -
555 -- 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"`
556 -+ 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"`
557 - if test x"$version" = x; then
558 - AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
559 - fi
560 - MOZ_ICU_VERSION="$version"
561 -
562 - if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_NATIVE_ICU}"; then
563 - MOZ_SHARED_ICU=1
564 - fi
565
566 diff --git a/dev-lang/spidermonkey/files/mozjs38-1269317.patch b/dev-lang/spidermonkey/files/mozjs38-1269317.patch
567 deleted file mode 100644
568 index 39cc6809af5..00000000000
569 --- a/dev-lang/spidermonkey/files/mozjs38-1269317.patch
570 +++ /dev/null
571 @@ -1,124 +0,0 @@
572 -from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-1269317.patch
573 -
574 ---- a/js/src/jit/RegisterSets.h 2017-02-10 17:33:06.210702431 -0800
575 -+++ b/js/src/jit/RegisterSets.h 2017-02-10 17:43:52.877514146 -0800
576 -@@ -7,7 +7,6 @@
577 - #ifndef jit_RegisterSets_h
578 - #define jit_RegisterSets_h
579 -
580 --#include "mozilla/Alignment.h"
581 - #include "mozilla/MathAlgorithms.h"
582 -
583 - #include "jit/JitAllocPolicy.h"
584 -@@ -26,8 +25,8 @@
585 - Code code_;
586 -
587 - public:
588 -- AnyRegister()
589 -- { }
590 -+ AnyRegister() = default;
591 -+
592 - explicit AnyRegister(Register gpr) {
593 - code_ = gpr.code();
594 - }
595 -@@ -156,7 +155,7 @@
596 - }
597 - #endif
598 -
599 -- ValueOperand() {}
600 -+ ValueOperand() = default;
601 - };
602 -
603 - // Registers to hold either either a typed or untyped value.
604 -@@ -165,46 +164,25 @@
605 - // Type of value being stored.
606 - MIRType type_;
607 -
608 -- // Space to hold either an AnyRegister or a ValueOperand.
609 - union U {
610 -- mozilla::AlignedStorage2<AnyRegister> typed;
611 -- mozilla::AlignedStorage2<ValueOperand> value;
612 -+ AnyRegister typed;
613 -+ ValueOperand value;
614 - } data;
615 -
616 -- AnyRegister& dataTyped() {
617 -- MOZ_ASSERT(hasTyped());
618 -- return *data.typed.addr();
619 -- }
620 -- ValueOperand& dataValue() {
621 -- MOZ_ASSERT(hasValue());
622 -- return *data.value.addr();
623 -- }
624 --
625 -- AnyRegister dataTyped() const {
626 -- MOZ_ASSERT(hasTyped());
627 -- return *data.typed.addr();
628 -- }
629 -- const ValueOperand& dataValue() const {
630 -- MOZ_ASSERT(hasValue());
631 -- return *data.value.addr();
632 -- }
633 --
634 - public:
635 -
636 -- TypedOrValueRegister()
637 -- : type_(MIRType_None)
638 -- {}
639 -+ TypedOrValueRegister() = default;
640 -
641 - TypedOrValueRegister(MIRType type, AnyRegister reg)
642 - : type_(type)
643 - {
644 -- dataTyped() = reg;
645 -+ data.typed = reg;
646 - }
647 -
648 - MOZ_IMPLICIT TypedOrValueRegister(ValueOperand value)
649 - : type_(MIRType_Value)
650 - {
651 -- dataValue() = value;
652 -+ data.value = value;
653 - }
654 -
655 - MIRType type() const {
656 -@@ -220,11 +198,13 @@
657 - }
658 -
659 - AnyRegister typedReg() const {
660 -- return dataTyped();
661 -+ MOZ_ASSERT(hasTyped());
662 -+ return data.typed;
663 - }
664 -
665 - ValueOperand valueReg() const {
666 -- return dataValue();
667 -+ MOZ_ASSERT(hasValue());
668 -+ return data.value;
669 - }
670 -
671 - AnyRegister scratchReg() {
672 -@@ -240,19 +220,18 @@
673 - // Whether a constant value is being stored.
674 - bool constant_;
675 -
676 -- // Space to hold either a Value or a TypedOrValueRegister.
677 - union U {
678 -- mozilla::AlignedStorage2<Value> constant;
679 -- mozilla::AlignedStorage2<TypedOrValueRegister> reg;
680 -+ Value constant;
681 -+ TypedOrValueRegister reg;
682 - } data;
683 -
684 - Value& dataValue() {
685 - MOZ_ASSERT(constant());
686 -- return *data.constant.addr();
687 -+ return data.constant;
688 - }
689 - TypedOrValueRegister& dataReg() {
690 - MOZ_ASSERT(!constant());
691 -- return *data.reg.addr();
692 -+ return data.reg;
693 - }
694 -
695 - public:
696
697 diff --git a/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch b/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch
698 deleted file mode 100644
699 index 7f352a795c8..00000000000
700 --- a/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch
701 +++ /dev/null
702 @@ -1,20 +0,0 @@
703 -Description: Copy headers on install instead of symlinking
704 -Author: Rico Tzschichholz <ricotz@××××××.com>
705 -Forwarded: no
706 -Last-Update: 2014-10-29
707 -
708 ----
709 -
710 -Index: b/python/mozbuild/mozbuild/backend/recursivemake.py
711 -===================================================================
712 ---- a/python/mozbuild/mozbuild/backend/recursivemake.py
713 -+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
714 -@@ -796,7 +796,7 @@
715 - return
716 -
717 - for source, dest, _ in self._walk_hierarchy(obj, exports):
718 -- self._install_manifests['dist_include'].add_symlink(source, dest)
719 -+ self._install_manifests['dist_include'].add_copy(source, dest)
720 -
721 - if not os.path.exists(source):
722 - raise Exception('File listed in EXPORTS does not exist: %s' % source)
723
724 diff --git a/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch b/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch
725 deleted file mode 100644
726 index 2197f617a04..00000000000
727 --- a/dev-lang/spidermonkey/files/mozjs38-fix-tracelogger.patch
728 +++ /dev/null
729 @@ -1,605 +0,0 @@
730 -from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch
731 -
732 -# === Fix the SM38 tracelogger ===
733 -# This patch is a squashed version of several patches that were adapted
734 -# to fix failing hunks.
735 -#
736 -# Applied in the following order, they are:
737 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767
738 -# Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210
739 -# Also fix stop-information to make reduce.py work correctly.
740 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914
741 -# Limit the memory tracelogger can take.
742 -# This causes tracelogger to flush data to the disk regularly and prevents out of
743 -# memory issues if a lot of data gets logged.
744 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618
745 -# Fix tracelogger destructor that touches possibly uninitialised hash table.
746 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636
747 -# Don't treat extraTextId as containing only extra ids.
748 -# This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp
749 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028
750 -# Fix when to keep the payload of a TraceLogger event.
751 -# This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h
752 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649
753 -# Handle failing to add to pointermap gracefully.
754 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648
755 -# Don't cache based on pointers to movable GC things.
756 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123
757 -# Fix the use of LastEntryId in tracelogger.h.
758 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170
759 -# Use size in debugger instead of the current id to track last logged item.
760 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844
761 -# Move TraceLogger_Invalidation to LOG_ITEM.
762 -# Add some debug checks to logTimestamp.
763 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766
764 -# Also mark resizing of memory.
765 -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403
766 -# Only increase capacity by multiples of 2.
767 -# Always make sure there are 3 free slots for events.
768 -# ===
769 -
770 -diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js
771 -new file mode 100644
772 -index 0000000..023e93e
773 ---- /dev/null
774 -+++ b/js/src/jit-test/tests/tracelogger/bug1231170.js
775 -@@ -0,0 +1,3 @@
776 -+var du = new Debugger();
777 -+if (typeof du.drainTraceLogger === "function")
778 -+ du.drainTraceLogger();
779 -diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js
780 -new file mode 100644
781 -index 0000000..81ae7ad
782 ---- /dev/null
783 -+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js
784 -@@ -0,0 +1,10 @@
785 -+
786 -+var du = new Debugger();
787 -+if (typeof du.setupTraceLogger === "function" &&
788 -+ typeof oomTest === 'function')
789 -+{
790 -+ du.setupTraceLogger({
791 -+ Scripts: true
792 -+ })
793 -+ oomTest(() => function(){});
794 -+}
795 -diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp
796 -index 93e2fda..09049d6 100644
797 ---- a/js/src/jit/Ion.cpp
798 -+++ b/js/src/jit/Ion.cpp
799 -@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script)
800 -
801 - script->destroyCaches();
802 - script->unlinkFromRuntime(fop);
803 -+ // Frees the potential event we have set.
804 -+ script->traceLoggerScriptEvent_ = TraceLoggerEvent();
805 - fop->free_(script);
806 - }
807 -
808 -diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
809 -index 26262fd..af7f313 100644
810 ---- a/js/src/vm/Debugger.cpp
811 -+++ b/js/src/vm/Debugger.cpp
812 -@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg)
813 - objects(cx),
814 - environments(cx),
815 - #ifdef NIGHTLY_BUILD
816 -- traceLoggerLastDrainedId(0),
817 -+ traceLoggerLastDrainedSize(0),
818 - traceLoggerLastDrainedIteration(0),
819 - #endif
820 -- traceLoggerScriptedCallsLastDrainedId(0),
821 -+ traceLoggerScriptedCallsLastDrainedSize(0),
822 - traceLoggerScriptedCallsLastDrainedIteration(0)
823 - {
824 - assertSameCompartment(cx, dbg);
825 -@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp)
826 - size_t num;
827 - TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
828 - bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration,
829 -- dbg->traceLoggerLastDrainedId);
830 -+ dbg->traceLoggerLastDrainedSize);
831 - EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration,
832 -- &dbg->traceLoggerLastDrainedId,
833 -+ &dbg->traceLoggerLastDrainedSize,
834 - &num);
835 -
836 - RootedObject array(cx, NewDenseEmptyArray(cx));
837 -@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
838 - size_t num;
839 - TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
840 - bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration,
841 -- dbg->traceLoggerScriptedCallsLastDrainedId);
842 -+ dbg->traceLoggerScriptedCallsLastDrainedSize);
843 - EventEntry* events = logger->getEventsStartingAt(
844 - &dbg->traceLoggerScriptedCallsLastDrainedIteration,
845 -- &dbg->traceLoggerScriptedCallsLastDrainedId,
846 -+ &dbg->traceLoggerScriptedCallsLastDrainedSize,
847 - &num);
848 -
849 - RootedObject array(cx, NewDenseEmptyArray(cx));
850 -diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h
851 -index 8cac36a..c92d685 100644
852 ---- a/js/src/vm/Debugger.h
853 -+++ b/js/src/vm/Debugger.h
854 -@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger>
855 - * lost events.
856 - */
857 - #ifdef NIGHTLY_BUILD
858 -- uint32_t traceLoggerLastDrainedId;
859 -+ uint32_t traceLoggerLastDrainedSize;
860 - uint32_t traceLoggerLastDrainedIteration;
861 - #endif
862 -- uint32_t traceLoggerScriptedCallsLastDrainedId;
863 -+ uint32_t traceLoggerScriptedCallsLastDrainedSize;
864 - uint32_t traceLoggerScriptedCallsLastDrainedIteration;
865 -
866 - class FrameRange;
867 -diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp
868 -index 6715b36..9766a6f 100644
869 ---- a/js/src/vm/TraceLogging.cpp
870 -+++ b/js/src/vm/TraceLogging.cpp
871 -@@ -131,7 +131,7 @@ TraceLoggerThread::init()
872 - {
873 - if (!pointerMap.init())
874 - return false;
875 -- if (!extraTextId.init())
876 -+ if (!textIdPayloads.init())
877 - return false;
878 - if (!events.init())
879 - return false;
880 -@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread()
881 - graph = nullptr;
882 - }
883 -
884 -- for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront())
885 -- js_delete(r.front().value());
886 -- extraTextId.finish();
887 -- pointerMap.finish();
888 -+ if (textIdPayloads.initialized()) {
889 -+ for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront())
890 -+ js_delete(r.front().value());
891 -+ }
892 - }
893 -
894 - bool
895 -@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id)
896 - if (id < TraceLogger_Last)
897 - return TLTextIdString(static_cast<TraceLoggerTextId>(id));
898 -
899 -- TextIdHashMap::Ptr p = extraTextId.lookup(id);
900 -+ TextIdHashMap::Ptr p = textIdPayloads.lookup(id);
901 - MOZ_ASSERT(p);
902 -
903 - return p->value()->string();
904 -@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename,
905 - TraceLoggerEventPayload*
906 - TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId)
907 - {
908 -- TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId);
909 -- if (p)
910 -+ TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId);
911 -+ if (p) {
912 -+ MOZ_ASSERT(p->value()->textId() == textId); // Sanity check.
913 - return p->value();
914 -+ }
915 -
916 - TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr);
917 -
918 -- if (!extraTextId.add(p, textId, payload))
919 -+ if (!textIdPayloads.add(p, textId, payload))
920 - return nullptr;
921 -
922 - return payload;
923 -@@ -357,8 +359,10 @@ TraceLoggerEventPayload*
924 - TraceLoggerThread::getOrCreateEventPayload(const char* text)
925 - {
926 - PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text);
927 -- if (p)
928 -+ if (p) {
929 -+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
930 - return p->value();
931 -+ }
932 -
933 - size_t len = strlen(text);
934 - char* str = js_pod_malloc<char>(len + 1);
935 -@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
936 - MOZ_ASSERT(ret == len);
937 - MOZ_ASSERT(strlen(str) == len);
938 -
939 -- uint32_t textId = extraTextId.count() + TraceLogger_Last;
940 -+ uint32_t textId = nextTextId;
941 -
942 - TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
943 - if (!payload) {
944 -@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
945 - return nullptr;
946 - }
947 -
948 -- if (!extraTextId.putNew(textId, payload)) {
949 -+ if (!textIdPayloads.putNew(textId, payload)) {
950 - js_delete(payload);
951 - return nullptr;
952 - }
953 -
954 -- if (!pointerMap.add(p, text, payload))
955 -- return nullptr;
956 --
957 - if (graph.get())
958 - graph->addTextId(textId, str);
959 -
960 -+ nextTextId++;
961 -+
962 -+ if (!pointerMap.add(p, text, payload))
963 -+ return nullptr;
964 -+
965 - return payload;
966 - }
967 -
968 -@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
969 - if (!traceLoggerState->isTextIdEnabled(type))
970 - return getOrCreateEventPayload(type);
971 -
972 -- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr);
973 -- if (p)
974 -- return p->value();
975 -+ PointerHashMap::AddPtr p;
976 -+ if (ptr) {
977 -+ p = pointerMap.lookupForAdd(ptr);
978 -+ if (p) {
979 -+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
980 -+ return p->value();
981 -+ }
982 -+ }
983 -
984 - // Compute the length of the string to create.
985 - size_t lenFilename = strlen(filename);
986 -@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
987 - MOZ_ASSERT(ret == len);
988 - MOZ_ASSERT(strlen(str) == len);
989 -
990 -- uint32_t textId = extraTextId.count() + TraceLogger_Last;
991 -+ uint32_t textId = nextTextId;
992 - TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
993 - if (!payload) {
994 - js_free(str);
995 - return nullptr;
996 - }
997 -
998 -- if (!extraTextId.putNew(textId, payload)) {
999 -+ if (!textIdPayloads.putNew(textId, payload)) {
1000 - js_delete(payload);
1001 - return nullptr;
1002 - }
1003 -
1004 -- if (!pointerMap.add(p, ptr, payload))
1005 -- return nullptr;
1006 --
1007 - if (graph.get())
1008 - graph->addTextId(textId, str);
1009 -
1010 -+ nextTextId++;
1011 -+
1012 -+ if (ptr) {
1013 -+ if (!pointerMap.add(p, ptr, payload))
1014 -+ return nullptr;
1015 -+ }
1016 -+
1017 - return payload;
1018 - }
1019 -
1020 -@@ -453,14 +468,14 @@ TraceLoggerEventPayload*
1021 - TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script)
1022 - {
1023 - return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(),
1024 -- script);
1025 -+ nullptr);
1026 - }
1027 -
1028 - TraceLoggerEventPayload*
1029 - TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type,
1030 - const JS::ReadOnlyCompileOptions& script)
1031 - {
1032 -- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script);
1033 -+ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr);
1034 - }
1035 -
1036 - void
1037 -@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id)
1038 - if (!traceLoggerState->isTextIdEnabled(id))
1039 - return;
1040 -
1041 -- logTimestamp(id);
1042 -+ log(id);
1043 - }
1044 -
1045 - void
1046 -@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id)
1047 - if (!traceLoggerState->isTextIdEnabled(id))
1048 - return;
1049 -
1050 -- logTimestamp(TraceLogger_Stop);
1051 -+ log(TraceLogger_Stop);
1052 - }
1053 -
1054 - void
1055 -@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id)
1056 - void
1057 - TraceLoggerThread::logTimestamp(uint32_t id)
1058 - {
1059 -+ MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last);
1060 -+ log(id);
1061 -+}
1062 -+
1063 -+void
1064 -+TraceLoggerThread::log(uint32_t id)
1065 -+{
1066 - if (enabled == 0)
1067 - return;
1068 -
1069 - MOZ_ASSERT(traceLoggerState);
1070 -- if (!events.ensureSpaceBeforeAdd()) {
1071 -+
1072 -+ // We request for 3 items to add, since if we don't have enough room
1073 -+ // we record the time it took to make more place. To log this information
1074 -+ // we need 2 extra free entries.
1075 -+ if (!events.hasSpaceForAdd(3)) {
1076 - uint64_t start = rdtsc() - traceLoggerState->startupTime;
1077 -
1078 -- if (graph.get())
1079 -- graph->log(events);
1080 -+ if (!events.ensureSpaceBeforeAdd(3)) {
1081 -+ if (graph.get())
1082 -+ graph->log(events);
1083 -+
1084 -+ iteration_++;
1085 -+ events.clear();
1086 -+
1087 -+ // Remove the item in the pointerMap for which the payloads
1088 -+ // have no uses anymore
1089 -+ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) {
1090 -+ if (e.front().value()->uses() != 0)
1091 -+ continue;
1092 -+
1093 -+ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId());
1094 -+ MOZ_ASSERT(p);
1095 -+ textIdPayloads.remove(p);
1096 -+
1097 -+ e.removeFront();
1098 -+ }
1099 -
1100 -- iteration_++;
1101 -- events.clear();
1102 -+ // Free all payloads that have no uses anymore.
1103 -+ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) {
1104 -+ if (e.front().value()->uses() == 0) {
1105 -+ js_delete(e.front().value());
1106 -+ e.removeFront();
1107 -+ }
1108 -+ }
1109 -+ }
1110 -
1111 - // Log the time it took to flush the events as being from the
1112 - // Tracelogger.
1113 - if (graph.get()) {
1114 -- MOZ_ASSERT(events.capacity() > 2);
1115 -+ MOZ_ASSERT(events.hasSpaceForAdd(2));
1116 - EventEntry& entryStart = events.pushUninitialized();
1117 - entryStart.time = start;
1118 - entryStart.textId = TraceLogger_Internal;
1119 -@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id)
1120 - entryStop.textId = TraceLogger_Stop;
1121 - }
1122 -
1123 -- // Free all TextEvents that have no uses anymore.
1124 -- for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) {
1125 -- if (e.front().value()->uses() == 0) {
1126 -- js_delete(e.front().value());
1127 -- e.removeFront();
1128 -- }
1129 -- }
1130 - }
1131 -
1132 - uint64_t time = rdtsc() - traceLoggerState->startupTime;
1133 -@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent()
1134 - if (payload_)
1135 - payload_->release();
1136 - }
1137 -+
1138 -+TraceLoggerEvent&
1139 -+TraceLoggerEvent::operator=(const TraceLoggerEvent& other)
1140 -+{
1141 -+ if (hasPayload())
1142 -+ payload()->release();
1143 -+ if (other.hasPayload())
1144 -+ other.payload()->use();
1145 -+
1146 -+ payload_ = other.payload_;
1147 -+
1148 -+ return *this;
1149 -+}
1150 -diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h
1151 -index a124dcb..91a1eb0 100644
1152 ---- a/js/src/vm/TraceLogging.h
1153 -+++ b/js/src/vm/TraceLogging.h
1154 -@@ -110,6 +110,9 @@ class TraceLoggerEvent {
1155 - bool hasPayload() const {
1156 - return !!payload_;
1157 - }
1158 -+
1159 -+ TraceLoggerEvent& operator=(const TraceLoggerEvent& other);
1160 -+ TraceLoggerEvent(const TraceLoggerEvent& event) = delete;
1161 - };
1162 -
1163 - /**
1164 -@@ -130,6 +133,10 @@ class TraceLoggerEventPayload {
1165 - uses_(0)
1166 - { }
1167 -
1168 -+ ~TraceLoggerEventPayload() {
1169 -+ MOZ_ASSERT(uses_ == 0);
1170 -+ }
1171 -+
1172 - uint32_t textId() {
1173 - return textId_;
1174 - }
1175 -@@ -166,7 +173,8 @@ class TraceLoggerThread
1176 - mozilla::UniquePtr<TraceLoggerGraph> graph;
1177 -
1178 - PointerHashMap pointerMap;
1179 -- TextIdHashMap extraTextId;
1180 -+ TextIdHashMap textIdPayloads;
1181 -+ uint32_t nextTextId;
1182 -
1183 - ContinuousSpace<EventEntry> events;
1184 -
1185 -@@ -181,6 +189,7 @@ class TraceLoggerThread
1186 - : enabled(0),
1187 - failed(false),
1188 - graph(),
1189 -+ nextTextId(TraceLogger_Last),
1190 - iteration_(0),
1191 - top(nullptr)
1192 - { }
1193 -@@ -195,22 +204,22 @@ class TraceLoggerThread
1194 - bool enable(JSContext* cx);
1195 - bool disable();
1196 -
1197 -- // Given the previous iteration and lastEntryId, return an array of events
1198 -+ // Given the previous iteration and size, return an array of events
1199 - // (there could be lost events). At the same time update the iteration and
1200 -- // lastEntry and gives back how many events there are.
1201 -- EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) {
1202 -+ // size and gives back how many events there are.
1203 -+ EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) {
1204 - EventEntry* start;
1205 - if (iteration_ == *lastIteration) {
1206 -- MOZ_ASSERT(events.lastEntryId() >= *lastEntryId);
1207 -- *num = events.lastEntryId() - *lastEntryId;
1208 -- start = events.data() + *lastEntryId + 1;
1209 -+ MOZ_ASSERT(*lastSize <= events.size());
1210 -+ *num = events.size() - *lastSize;
1211 -+ start = events.data() + *lastSize;
1212 - } else {
1213 -- *num = events.lastEntryId() + 1;
1214 -+ *num = events.size();
1215 - start = events.data();
1216 - }
1217 -
1218 - *lastIteration = iteration_;
1219 -- *lastEntryId = events.lastEntryId();
1220 -+ *lastSize = events.size();
1221 - return start;
1222 - }
1223 -
1224 -@@ -220,16 +229,16 @@ class TraceLoggerThread
1225 - const char** lineno, size_t* lineno_len, const char** colno,
1226 - size_t* colno_len);
1227 -
1228 -- bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) {
1229 -+ bool lostEvents(uint32_t lastIteration, uint32_t lastSize) {
1230 - // If still logging in the same iteration, there are no lost events.
1231 - if (lastIteration == iteration_) {
1232 -- MOZ_ASSERT(lastEntryId <= events.lastEntryId());
1233 -+ MOZ_ASSERT(lastSize <= events.size());
1234 - return false;
1235 - }
1236 -
1237 -- // When proceeded to the next iteration and lastEntryId points to
1238 -- // the maximum capacity there are no logs that are lost.
1239 -- if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity())
1240 -+ // If we are in a consecutive iteration we are only sure we didn't lose any events,
1241 -+ // when the lastSize equals the maximum size 'events' can get.
1242 -+ if (lastIteration == iteration_ - 1 && lastSize == events.maxSize())
1243 - return false;
1244 -
1245 - return true;
1246 -@@ -268,6 +277,7 @@ class TraceLoggerThread
1247 - void stopEvent(uint32_t id);
1248 - private:
1249 - void stopEvent();
1250 -+ void log(uint32_t id);
1251 -
1252 - public:
1253 - static unsigned offsetOfEnabled() {
1254 -diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp
1255 -index d1b7f2e..a4eb273 100644
1256 ---- a/js/src/vm/TraceLoggingGraph.cpp
1257 -+++ b/js/src/vm/TraceLoggingGraph.cpp
1258 -@@ -276,7 +276,7 @@ TraceLoggerGraph::flush()
1259 - if (bytesWritten < tree.size())
1260 - return false;
1261 -
1262 -- treeOffset += tree.lastEntryId();
1263 -+ treeOffset += tree.size();
1264 - tree.clear();
1265 - }
1266 -
1267 -@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp)
1268 -
1269 - if (parent.lastChildId() == 0) {
1270 - MOZ_ASSERT(!entry.hasChildren());
1271 -- MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset);
1272 -+ MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1);
1273 -
1274 - if (!updateHasChildren(parent.treeId()))
1275 - return false;
1276 -diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h
1277 -index f1c9d0c..10b76d6 100644
1278 ---- a/js/src/vm/TraceLoggingTypes.h
1279 -+++ b/js/src/vm/TraceLoggingTypes.h
1280 -@@ -21,7 +21,6 @@
1281 - _(Internal) \
1282 - _(Interpreter) \
1283 - _(InlinedScripts) \
1284 -- _(Invalidation) \
1285 - _(IonCompilation) \
1286 - _(IonCompilationPaused) \
1287 - _(IonLinking) \
1288 -@@ -60,6 +59,7 @@
1289 -
1290 - #define TRACELOGGER_LOG_ITEMS(_) \
1291 - _(Bailout) \
1292 -+ _(Invalidation) \
1293 - _(Disable) \
1294 - _(Enable) \
1295 - _(Stop)
1296 -@@ -130,6 +130,9 @@ class ContinuousSpace {
1297 - uint32_t size_;
1298 - uint32_t capacity_;
1299 -
1300 -+ // The maximum amount of ram memory a continuous space structure can take (in bytes).
1301 -+ static const uint32_t LIMIT = 200 * 1024 * 1024;
1302 -+
1303 - public:
1304 - ContinuousSpace ()
1305 - : data_(nullptr)
1306 -@@ -151,6 +154,10 @@ class ContinuousSpace {
1307 - data_ = nullptr;
1308 - }
1309 -
1310 -+ static uint32_t maxSize() {
1311 -+ return LIMIT / sizeof(T);
1312 -+ }
1313 -+
1314 - T* data() {
1315 - return data_;
1316 - }
1317 -@@ -187,11 +194,14 @@ class ContinuousSpace {
1318 - if (hasSpaceForAdd(count))
1319 - return true;
1320 -
1321 -+ // Limit the size of a continuous buffer.
1322 -+ if (size_ + count > maxSize())
1323 -+ return false;
1324 -+
1325 - uint32_t nCapacity = capacity_ * 2;
1326 -- if (size_ + count > nCapacity)
1327 -- nCapacity = size_ + count;
1328 -- T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
1329 -+ nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize();
1330 -
1331 -+ T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
1332 - if (!entries)
1333 - return false;
1334 -
1335
1336 diff --git a/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch b/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch
1337 deleted file mode 100644
1338 index 34a43d1f6df..00000000000
1339 --- a/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch
1340 +++ /dev/null
1341 @@ -1,22 +0,0 @@
1342 -Add major version to pkg-config filename.
1343 -Author: Rico Tzschichholz <ricotz@××××××.com>
1344 -Forwarded: no
1345 -Last-Update: 2015-05-04
1346 -
1347 -Index: b/js/src/Makefile.in
1348 -===================================================================
1349 ---- a/js/src/Makefile.in
1350 -+++ b/js/src/Makefile.in
1351 -@@ -214,10 +214,10 @@
1352 - $(JS_CONFIG_NAME): js-config
1353 - cp $^ $@
1354 -
1355 --$(LIBRARY_NAME).pc: js.pc
1356 -+$(JS_LIBRARY_NAME).pc: js.pc
1357 - cp $^ $@
1358 -
1359 --install:: $(LIBRARY_NAME).pc
1360 -+install:: $(JS_LIBRARY_NAME).pc
1361 - $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
1362 -
1363 - install:: js-config.h
1364
1365 diff --git a/dev-lang/spidermonkey/files/mozjs45-1266366.patch b/dev-lang/spidermonkey/files/mozjs45-1266366.patch
1366 deleted file mode 100644
1367 index 590f745d14d..00000000000
1368 --- a/dev-lang/spidermonkey/files/mozjs45-1266366.patch
1369 +++ /dev/null
1370 @@ -1,29 +0,0 @@
1371 -# HG changeset patch
1372 -# User Nicolas B. Pierron <nicolas.b.pierron@×××××××.com>
1373 -
1374 -Bug 1266366 - Add branch64 functions to the none-backend MacroAssembler. r=
1375 -
1376 -diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h
1377 -index 512ae81..4441d8d 100644
1378 ---- a/js/src/jit/none/MacroAssembler-none.h
1379 -+++ b/js/src/jit/none/MacroAssembler-none.h
1380 -@@ -254,16 +254,18 @@ class MacroAssemblerNone : public Assembler
1381 - template <typename T, typename S> void branchSub32(Condition, T, S, Label*) { MOZ_CRASH(); }
1382 - template <typename T, typename S> void branchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
1383 - template <typename T, typename S> void branchTestPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
1384 - template <typename T, typename S> void branchDouble(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
1385 - template <typename T, typename S> void branchFloat(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
1386 - template <typename T, typename S> void branchPrivatePtr(Condition, T, S, Label*) { MOZ_CRASH(); }
1387 - template <typename T, typename S> void decBranchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
1388 - template <typename T, typename S> void branchTest64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
1389 -+ template <typename T, typename S> void branch64(Condition, T, S, Label*) { MOZ_CRASH(); }
1390 -+ template <typename T, typename S> void branch64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
1391 - template <typename T, typename S> void mov(T, S) { MOZ_CRASH(); }
1392 - template <typename T, typename S> void movq(T, S) { MOZ_CRASH(); }
1393 - template <typename T, typename S> void movePtr(T, S) { MOZ_CRASH(); }
1394 - template <typename T, typename S> void move32(T, S) { MOZ_CRASH(); }
1395 - template <typename T, typename S> void moveFloat32(T, S) { MOZ_CRASH(); }
1396 - template <typename T, typename S> void moveDouble(T, S) { MOZ_CRASH(); }
1397 - template <typename T, typename S> void move64(T, S) { MOZ_CRASH(); }
1398 - template <typename T> CodeOffset movWithPatch(T, Register) { MOZ_CRASH(); }
1399 -
1400
1401 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch b/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch
1402 deleted file mode 100644
1403 index a5c4b47db52..00000000000
1404 --- a/dev-lang/spidermonkey/files/spidermonkey-1.5-build.patch
1405 +++ /dev/null
1406 @@ -1,138 +0,0 @@
1407 ---- js/src/Makefile.ref
1408 -+++ js/src/Makefile.ref
1409 -@@ -127,7 +127,7 @@ endif
1410 - ifdef JS_READLINE
1411 - # For those platforms with the readline library installed.
1412 - DEFINES += -DEDITLINE
1413 --PROG_LIBS += -lreadline -ltermcap
1414 -+PROG_LIBS += -lreadline
1415 - else
1416 - ifdef JS_EDITLINE
1417 - # Use the editline library, built locally.
1418 -@@ -370,3 +370,16 @@ TARFILES = files `cat files`
1419 - SUFFIXES: .i
1420 - %.i: %.c
1421 - $(CC) -C -E $(CFLAGS) $< > $*.i
1422 -+
1423 -+DESTDIR :=
1424 -+PREFIX := /usr
1425 -+BINDIR := $(PREFIX)/bin
1426 -+MY_LIBDIR := $(PREFIX)/$(LIBDIR)
1427 -+INCLUDEDIR := $(PREFIX)/include/js
1428 -+INSTALL := install -g 0 -o root
1429 -+install:
1430 -+ $(INSTALL) -m 755 -d $(DESTDIR)$(INCLUDEDIR) $(DESTDIR)$(MY_LIBDIR) $(DESTDIR)$(BINDIR)
1431 -+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DESTDIR)$(MY_LIBDIR)
1432 -+ $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(MY_LIBDIR)
1433 -+ $(INSTALL) -m 755 $(OBJDIR)/js $(OBJDIR)/jscpucfg $(DESTDIR)$(BINDIR)
1434 -+ $(INSTALL) -m 644 $(HFILES) $(DESTDIR)$(INCLUDEDIR)
1435 ---- js/src/config/Linux_All.mk
1436 -+++ js/src/config/Linux_All.mk
1437 -@@ -41,37 +41,15 @@
1438 - # Config for all versions of Linux
1439 - #
1440 -
1441 --CC = gcc
1442 --CCC = g++
1443 - CFLAGS += -Wall -Wno-format
1444 - OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
1445 -
1446 - RANLIB = echo
1447 --MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
1448 -+MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) -soname $(notdir $@)
1449 -
1450 - #.c.o:
1451 - # $(CC) -c -MD $*.d $(CFLAGS) $<
1452 -
1453 --CPU_ARCH = $(shell uname -m)
1454 --# don't filter in x86-64 architecture
1455 --ifneq (x86_64,$(CPU_ARCH))
1456 --ifeq (86,$(findstring 86,$(CPU_ARCH)))
1457 --CPU_ARCH = x86
1458 --OS_CFLAGS+= -DX86_LINUX
1459 --
1460 --ifeq (gcc, $(CC))
1461 --# if using gcc on x86, check version for opt bug
1462 --# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
1463 --GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
1464 --GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )
1465 --
1466 --ifeq (2.91.66, $(firstword $(GCC_LIST)))
1467 --CFLAGS+= -DGCC_OPT_BUG
1468 --endif
1469 --endif
1470 --endif
1471 --endif
1472 --
1473 - GFX_ARCH = x
1474 -
1475 - OS_LIBS = -lm -lc
1476 -@@ -88,16 +66,6 @@
1477 - endif
1478 -
1479 - # Use the editline library to provide line-editing support.
1480 --JS_EDITLINE = 1
1481 -+JS_READLINE = 1
1482 -
1483 --ifeq ($(CPU_ARCH),x86_64)
1484 --# Use VA_COPY() standard macro on x86-64
1485 --# FIXME: better use it everywhere
1486 - OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
1487 --endif
1488 --
1489 --ifeq ($(CPU_ARCH),x86_64)
1490 --# We need PIC code for shared libraries
1491 --# FIXME: better patch rules.mk & fdlibm/Makefile*
1492 --OS_CFLAGS += -DPIC -fPIC
1493 --endif
1494 ---- js/src/rules.mk
1495 -+++ js/src/rules.mk
1496 -@@ -82,6 +82,10 @@ $(OBJDIR)/%.o: %.c
1497 - @$(MAKE_OBJDIR)
1498 - $(CC) -o $@ -c $(CFLAGS) $*.c
1499 -
1500 -+$(OBJDIR)/%.lo: %.c
1501 -+ @$(MAKE_OBJDIR)
1502 -+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
1503 -+
1504 - $(OBJDIR)/%.o: %.s
1505 - @$(MAKE_OBJDIR)
1506 - $(AS) -o $@ $(ASFLAGS) $*.s
1507 -@@ -111,11 +115,12 @@ $(SHARED_LIBRARY): $(LIB_OBJS)
1508 - /implib:"$(OBJDIR)/$(@F:.dll=.lib)" $^
1509 - else
1510 - $(LIBRARY): $(LIB_OBJS)
1511 -- $(AR) rv $@ $?
1512 -+ $(AR) cr $@ $?
1513 - $(RANLIB) $@
1514 -
1515 --$(SHARED_LIBRARY): $(LIB_OBJS)
1516 -- $(MKSHLIB) -o $@ $(LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
1517 -+SHARED_LIB_OBJS := $(LIB_OBJS:.o=.lo)
1518 -+$(SHARED_LIBRARY): $(SHARED_LIB_OBJS)
1519 -+ $(MKSHLIB) -o $@ $(SHARED_LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
1520 - endif
1521 - endif
1522 -
1523 ---- js/src/fdlibm/Makefile.ref
1524 -+++ js/src/fdlibm/Makefile.ref
1525 -@@ -151,7 +151,7 @@
1526 -
1527 - $(OBJDIR)/%.o: %.c
1528 - @$(MAKE_OBJDIR)
1529 -- $(CC) -o $@ -c $(CFLAGS) $*.c
1530 -+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
1531 -
1532 - $(OBJDIR)/%.o: %.s
1533 - @$(MAKE_OBJDIR)
1534 ---- js/src/config.mk
1535 -+++ js/src/config.mk
1536 -@@ -112,6 +112,8 @@
1537 - CP = cp
1538 - endif
1539 -
1540 -+BUILD_OPT := 1
1541 -+
1542 - ifdef BUILD_OPT
1543 - OPTIMIZER = -O
1544 - DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(shell whoami)
1545
1546 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch b/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch
1547 deleted file mode 100644
1548 index df4cf7d5074..00000000000
1549 --- a/dev-lang/spidermonkey/files/spidermonkey-1.6-header.patch
1550 +++ /dev/null
1551 @@ -1,13 +0,0 @@
1552 -Index: src/Makefile.ref
1553 -===================================================================
1554 ---- src.orig/Makefile.ref
1555 -+++ src/Makefile.ref
1556 -@@ -185,6 +185,8 @@ JS_HFILES = \
1557 - jsstr.h \
1558 - jsxdrapi.h \
1559 - jsxml.h \
1560 -+ jsutil.h \
1561 -+ jsprf.h \
1562 - $(NULL)
1563 -
1564 - API_HFILES = \
1565
1566 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch b/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch
1567 deleted file mode 100644
1568 index 4ddc3461ea1..00000000000
1569 --- a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-ldflags.patch
1570 +++ /dev/null
1571 @@ -1,42 +0,0 @@
1572 -Respect LDFLAGS
1573 -
1574 -http://bugs.gentoo.org/show_bug.cgi?id=331129
1575 -
1576 ---- js/src/Makefile.ref
1577 -+++ js/src/Makefile.ref
1578 -@@ -87,7 +87,7 @@
1579 - LDFLAGS = $(XLDFLAGS)
1580 -
1581 - ifndef NO_LIBM
1582 --LDFLAGS += -lm
1583 -+OTHER_LIBS += -lm
1584 - endif
1585 -
1586 - # Prevent floating point errors caused by VC++ optimizations
1587 -@@ -325,7 +325,7 @@
1588 - $(CC) -o $@ -c $(CFLAGS) $<
1589 -
1590 - $(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX): $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
1591 -- $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $^
1592 -+ $(CC) $(HOST_LDFLAGS) -o $@ $(CFLAGS) $(OTHER_LIBS) $^
1593 -
1594 - endif
1595 -
1596 -@@ -338,7 +338,7 @@
1597 - link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
1598 - else
1599 - $(PROGRAM): $(PROG_OBJS) $(LIBRARY)
1600 -- $(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
1601 -+ $(CC) $(HOST_LDFLAGS) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(OTHER_LIBS) \
1602 - $(PROG_LIBS)
1603 - endif
1604 -
1605 -@@ -355,7 +355,7 @@
1606 - $(OBJDIR)/jscpucfg > $@
1607 -
1608 - $(OBJDIR)/jscpucfg: $(OBJDIR)/jscpucfg.o
1609 -- $(CC) -o $@ $(OBJDIR)/jscpucfg.o
1610 -+ $(CC) $(HOST_LDFLAGS) -o $@ $(OBJDIR)/jscpucfg.o
1611 -
1612 - # Add to TARGETS for clobber rule
1613 - TARGETS += $(OBJDIR)/jsautocfg.h $(OBJDIR)/jscpucfg \
1614
1615 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff b/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff
1616 deleted file mode 100644
1617 index 8728811fbfc..00000000000
1618 --- a/dev-lang/spidermonkey/files/spidermonkey-1.7.0-threadsafe.diff
1619 +++ /dev/null
1620 @@ -1,18 +0,0 @@
1621 -Index: src/Makefile.ref
1622 -===================================================================
1623 ---- src.orig/Makefile.ref
1624 -+++ src/Makefile.ref
1625 -@@ -63,11 +63,11 @@ INCLUDES += -I$(OBJDIR)
1626 -
1627 - ifdef JS_THREADSAFE
1628 - DEFINES += -DJS_THREADSAFE
1629 --INCLUDES += -I$(DIST)/include/nspr
1630 -+INCLUDES += -I/usr/include/nspr
1631 - ifdef USE_MSVC
1632 - OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
1633 - else
1634 --OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
1635 -+OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr$(NSPR_LIBSUFFIX)
1636 - endif
1637 - endif
1638 -
1639
1640 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
1641 deleted file mode 100644
1642 index ed497ceebb0..00000000000
1643 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-arm_respect_cflags-3.patch
1644 +++ /dev/null
1645 @@ -1,99 +0,0 @@
1646 ---- a/js-1.8.5/js/src/configure.in 2011-03-31 15:08:36.000000000 -0400
1647 -+++ b/js-1.8.5/js/src/configure.in 2012-11-02 15:32:38.000000000 -0400
1648 -@@ -3550,7 +3550,7 @@
1649 - _SAVE_CFLAGS="$CFLAGS"
1650 - if test "$GNU_CC"; then
1651 - # gcc needs -mfpu=neon to recognize NEON instructions
1652 -- CFLAGS="$CFLAGS -mfpu=neon -mfloat-abi=softfp"
1653 -+ CFLAGS="$CFLAGS -mfpu=neon"
1654 - fi
1655 - AC_TRY_COMPILE([],
1656 - [asm("vadd.i8 d0, d0, d0");],
1657 -@@ -4654,12 +4654,6 @@
1658 - dnl ========================================================
1659 - MOZ_ARG_HEADER(Individual module options)
1660 -
1661 --dnl Setup default CPU arch for arm target
1662 --case "$target_cpu" in
1663 -- arm*)
1664 -- MOZ_ARM_ARCH=armv7
1665 -- ;;
1666 --esac
1667 - dnl ========================================================
1668 - dnl = Enable building the Thumb2 instruction set
1669 - dnl ========================================================
1670 -@@ -4668,66 +4662,32 @@
1671 - MOZ_THUMB2=1,
1672 - MOZ_THUMB2=)
1673 - if test -n "$MOZ_THUMB2"; then
1674 -- MOZ_ARM_ARCH=armv7
1675 -+ AC_MSG_WARN([thumb2 enabled instead of autodetected -- hope you know what you are doing])
1676 -+else
1677 -+ AC_MSG_CHECKING([whether to build for thumb2])
1678 -+ AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
1679 -+ [MOZ_THUMB2=1
1680 -+ AC_MSG_RESULT([yes])],
1681 -+ [MOZ_THUMB2=
1682 -+ AC_MSG_RESULT([no])])
1683 - fi
1684 -
1685 - dnl ========================================================
1686 - dnl = Enable building for ARM specific CPU features
1687 - dnl ========================================================
1688 --MOZ_ARG_WITH_STRING(cpu-arch,
1689 --[ --with-cpu-arch=arch Use specific arm architecture CPU features, default armv7],
1690 -- MOZ_ARM_ARCH=$withval)
1691 --
1692 - if test -n "$MOZ_THUMB2"; then
1693 - case "$target_cpu" in
1694 - arm*)
1695 -- if test "$MOZ_ARM_ARCH" != "armv7"; then
1696 -- AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
1697 -- fi
1698 - if test "$GNU_CC"; then
1699 - AC_DEFINE(MOZ_THUMB2)
1700 -- AC_DEFINE(MOZ_ARM_ARCH)
1701 -- CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1702 -- CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1703 -- ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1704 - else
1705 - AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
1706 - fi
1707 - ;;
1708 -- *)
1709 -- AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
1710 -- ;;
1711 -- esac
1712 --elif test "$MOZ_ARM_ARCH" = "armv7"; then
1713 -- case "$target_cpu" in
1714 -- arm*)
1715 -- if test "$GNU_CC"; then
1716 -- AC_DEFINE(MOZ_ARM_ARCH)
1717 -- CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1718 -- CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1719 -- ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
1720 -- else
1721 -- AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
1722 -- fi
1723 -- ;;
1724 -- *)
1725 -- AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
1726 -- ;;
1727 -- esac
1728 --else
1729 -- case "$target_cpu" in
1730 -- arm*)
1731 -- if test "$GNU_CC"; then
1732 -- CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
1733 -- CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
1734 -- ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
1735 -- fi
1736 -- ;;
1737 - esac
1738 - fi
1739 -
1740 - AC_SUBST(MOZ_THUMB2)
1741 --AC_SUBST(MOZ_ARM_ARCH)
1742 -
1743 - dnl ========================================================
1744 - dnl =
1745
1746 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
1747 deleted file mode 100644
1748 index c867e45ee4f..00000000000
1749 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-install-symlinks.patch
1750 +++ /dev/null
1751 @@ -1,15 +0,0 @@
1752 -https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
1753 -
1754 ---- js/src/Makefile.in
1755 -+++ js/src/Makefile.in
1756 -@@ -888,8 +888,8 @@
1757 - ifeq (,$(HOST_BIN_SUFFIX))
1758 - mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
1759 - @[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
1760 -- ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
1761 -- ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
1762 -+ ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
1763 -+ ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
1764 - endif
1765 - endif
1766 - ifneq (,$(IMPORT_LIBRARY))
1767
1768 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
1769 deleted file mode 100644
1770 index 3927c871793..00000000000
1771 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-fix-ppc64.patch
1772 +++ /dev/null
1773 @@ -1,61 +0,0 @@
1774 -# HG changeset patch
1775 -# User Mike Hommey <mh+mozilla@××××××××.org>
1776 -# Date 1303461188 -7200
1777 -# Node ID 59771590e9203d48ef8cbcd7eaf2f8ae45dbb1c1
1778 -# Parent c4b82ec27d6d6e1c02ef0abb3b6e805bfdd092ec
1779 -Bug 638056 - Avoid "The cacheFlush support is missing on this platform" error on exotic platforms. r=cdleary
1780 -
1781 -diff --git a/js/src/Makefile.in b/js/src/Makefile.in
1782 ---- a/js/src/Makefile.in
1783 -+++ b/js/src/Makefile.in
1784 -@@ -383,17 +383,17 @@ CPPSRCS += checks.cc \
1785 - platform.cc \
1786 - utils.cc \
1787 - $(NONE)
1788 -
1789 - #
1790 - # END enclude sources for V8 dtoa
1791 - #############################################
1792 -
1793 --ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
1794 -+ifeq (,$(filter arm% %86 x86_64,$(TARGET_CPU)))
1795 -
1796 - VPATH += $(srcdir)/assembler \
1797 - $(srcdir)/assembler/wtf \
1798 - $(srcdir)/yarr/pcre \
1799 - $(NULL)
1800 -
1801 - CPPSRCS += pcre_compile.cpp \
1802 - pcre_exec.cpp \
1803 -
1804 -# HG changeset patch
1805 -# User Luke Wagner <lw@×××××××.com>
1806 -# Date 1299520258 28800
1807 -# Node ID 68203913d04cf5be53fd16278816183d5670ba5c
1808 -# Parent 27e5814815491ebb68e474e453aff6c2ea908c43
1809 -Bug 618485 - Add missing 64-bit big-endian jsval_layout field (r=luke)
1810 -
1811 -diff --git a/js/src/jsval.h b/js/src/jsval.h
1812 ---- a/js/src/jsval.h
1813 -+++ b/js/src/jsval.h
1814 -@@ -342,16 +342,17 @@ typedef union jsval_layout
1815 - JSValueTag tag : 17;
1816 - uint64 payload47 : 47;
1817 - } debugView;
1818 - struct {
1819 - union {
1820 - int32 i32;
1821 - uint32 u32;
1822 - JSWhyMagic why;
1823 -+ jsuword word;
1824 - } payload;
1825 - } s;
1826 - double asDouble;
1827 - void *asPtr;
1828 - } jsval_layout;
1829 - # endif /* JS_BITS_PER_WORD */
1830 - #endif /* defined(IS_LITTLE_ENDIAN) */
1831 -
1832 -
1833 -
1834 -
1835
1836 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch
1837 deleted file mode 100644
1838 index ab2181faf63..00000000000
1839 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-gcc6.patch
1840 +++ /dev/null
1841 @@ -1,144 +0,0 @@
1842 -diff -upr a/js/src/jsapi.cpp b/js/src/jsapi.cpp
1843 ---- a/js/src/jsapi.cpp 2011-03-31 14:08:36.000000000 -0500
1844 -+++ b/js/src/jsapi.cpp 2016-02-29 18:10:49.302307353 -0600
1845 -@@ -3985,7 +3985,7 @@ JS_Enumerate(JSContext *cx, JSObject *ob
1846 - AutoIdVector props(cx);
1847 - JSIdArray *ida;
1848 - if (!GetPropertyNames(cx, obj, JSITER_OWNONLY, &props) || !VectorToIdArray(cx, props, &ida))
1849 -- return false;
1850 -+ return NULL;
1851 - for (size_t n = 0; n < size_t(ida->length); ++n)
1852 - JS_ASSERT(js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]);
1853 - return ida;
1854 -diff -upr a/js/src/jsfun.cpp b/js/src/jsfun.cpp
1855 ---- a/js/src/jsfun.cpp 2011-03-31 14:08:36.000000000 -0500
1856 -+++ b/js/src/jsfun.cpp 2016-02-29 18:21:45.249674890 -0600
1857 -@@ -2051,7 +2051,7 @@ fun_toStringHelper(JSContext *cx, JSObje
1858 -
1859 - JSString *str = JS_DecompileFunction(cx, fun, indent);
1860 - if (!str)
1861 -- return false;
1862 -+ return NULL;
1863 -
1864 - if (!indent)
1865 - cx->compartment->toSourceCache.put(fun, str);
1866 -@@ -2657,7 +2657,7 @@ LookupInterpretedFunctionPrototype(JSCon
1867 - const Shape *shape = funobj->nativeLookup(id);
1868 - if (!shape) {
1869 - if (!ResolveInterpretedFunctionPrototype(cx, funobj))
1870 -- return false;
1871 -+ return NULL;
1872 - shape = funobj->nativeLookup(id);
1873 - }
1874 - JS_ASSERT(!shape->configurable());
1875 -diff -upr a/js/src/jsiter.cpp b/js/src/jsiter.cpp
1876 ---- a/js/src/jsiter.cpp 2011-03-31 14:08:36.000000000 -0500
1877 -+++ b/js/src/jsiter.cpp 2016-02-29 18:24:22.494659919 -0600
1878 -@@ -425,7 +425,7 @@ NewIteratorObject(JSContext *cx, uintN f
1879 - */
1880 - JSObject *obj = js_NewGCObject(cx, FINALIZE_OBJECT0);
1881 - if (!obj)
1882 -- return false;
1883 -+ return NULL;
1884 - obj->init(cx, &js_IteratorClass, NULL, NULL, NULL, false);
1885 - obj->setMap(cx->compartment->emptyEnumeratorShape);
1886 - return obj;
1887 -diff -upr a/js/src/jsparse.cpp b/js/src/jsparse.cpp
1888 ---- a/js/src/jsparse.cpp 2011-03-31 14:08:36.000000000 -0500
1889 -+++ b/js/src/jsparse.cpp 2016-02-29 18:29:03.997437475 -0600
1890 -@@ -3352,7 +3352,7 @@ Parser::functionDef(JSAtom *funAtom, Fun
1891 - if (!outertc->inFunction() && bodyLevel && funAtom && !lambda && outertc->compiling()) {
1892 - JS_ASSERT(pn->pn_cookie.isFree());
1893 - if (!DefineGlobal(pn, outertc->asCodeGenerator(), funAtom))
1894 -- return false;
1895 -+ return NULL;
1896 - }
1897 -
1898 - pn->pn_blockid = outertc->blockid();
1899 -diff -upr a/js/src/jsstr.cpp b/js/src/jsstr.cpp
1900 ---- a/js/src/jsstr.cpp 2011-03-31 14:08:36.000000000 -0500
1901 -+++ b/js/src/jsstr.cpp 2016-02-29 19:01:45.857779836 -0600
1902 -@@ -1734,7 +1734,7 @@ class RegExpGuard
1903 - if (flat) {
1904 - patstr = flattenPattern(cx, fm.patstr);
1905 - if (!patstr)
1906 -- return false;
1907 -+ return NULL;
1908 - } else {
1909 - patstr = fm.patstr;
1910 - }
1911 -@@ -3400,7 +3400,7 @@ js_InitStringClass(JSContext *cx, JSObje
1912 - UndefinedValue(), NULL, NULL,
1913 - JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED, 0, 0,
1914 - NULL)) {
1915 -- return JS_FALSE;
1916 -+ return NULL;
1917 - }
1918 -
1919 - return proto;
1920 -diff -upr a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
1921 ---- a/js/src/jstypedarray.cpp 2011-03-31 14:08:36.000000000 -0500
1922 -+++ b/js/src/jstypedarray.cpp 2016-02-29 19:08:53.541136191 -0600
1923 -@@ -1334,7 +1334,7 @@ class TypedArrayTemplate
1924 - if (size != 0 && count >= INT32_MAX / size) {
1925 - JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
1926 - JSMSG_NEED_DIET, "size and count");
1927 -- return false;
1928 -+ return NULL;
1929 - }
1930 -
1931 - int32 bytelen = size * count;
1932 -@@ -1668,7 +1668,7 @@ TypedArrayConstruct(JSContext *cx, jsint
1933 -
1934 - default:
1935 - JS_NOT_REACHED("shouldn't have gotten here");
1936 -- return false;
1937 -+ return NULL;
1938 - }
1939 - }
1940 -
1941 -diff -upr a/js/src/jsxml.cpp b/js/src/jsxml.cpp
1942 ---- a/js/src/jsxml.cpp 2011-03-31 14:08:36.000000000 -0500
1943 -+++ b/js/src/jsxml.cpp 2016-02-29 19:17:10.363279731 -0600
1944 -@@ -282,7 +282,7 @@ NewXMLNamespace(JSContext *cx, JSLinearS
1945 -
1946 - obj = NewBuiltinClassInstanceXML(cx, &js_NamespaceClass);
1947 - if (!obj)
1948 -- return JS_FALSE;
1949 -+ return NULL;
1950 - JS_ASSERT(JSVAL_IS_VOID(obj->getNamePrefixVal()));
1951 - JS_ASSERT(JSVAL_IS_VOID(obj->getNameURIVal()));
1952 - JS_ASSERT(JSVAL_IS_VOID(obj->getNamespaceDeclared()));
1953 -@@ -431,7 +431,7 @@ ConvertQNameToString(JSContext *cx, JSOb
1954 - size_t length = str->length();
1955 - jschar *chars = (jschar *) cx->malloc((length + 2) * sizeof(jschar));
1956 - if (!chars)
1957 -- return JS_FALSE;
1958 -+ return NULL;
1959 - *chars = '@';
1960 - const jschar *strChars = str->getChars(cx);
1961 - if (!strChars) {
1962 -diff -upr a/js/src/methodjit/InvokeHelpers.cpp b/js/src/methodjit/InvokeHelpers.cpp
1963 ---- a/js/src/methodjit/InvokeHelpers.cpp 2011-03-31 14:08:36.000000000 -0500
1964 -+++ b/js/src/methodjit/InvokeHelpers.cpp 2016-02-29 20:34:14.496983346 -0600
1965 -@@ -728,7 +728,7 @@ AtSafePoint(JSContext *cx)
1966 - {
1967 - JSStackFrame *fp = cx->fp();
1968 - if (fp->hasImacropc())
1969 -- return false;
1970 -+ return NULL;
1971 -
1972 - JSScript *script = fp->script();
1973 - return script->maybeNativeCodeForPC(fp->isConstructing(), cx->regs->pc);
1974 -diff -upr a/js/src/nanojit/NativeX64.cpp b/js/src/nanojit/NativeX64.cpp
1975 ---- a/js/src/nanojit/NativeX64.cpp 2011-03-31 14:08:36.000000000 -0500
1976 -+++ b/js/src/nanojit/NativeX64.cpp 2016-02-29 20:19:56.487934808 -0600
1977 -@@ -1899,7 +1899,7 @@ namespace nanojit
1978 - }
1979 - }
1980 -
1981 -- static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0};
1982 -+ static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {int64_t(0x8000000000000000LL),0};
1983 -
1984 - void Assembler::asm_fneg(LIns *ins) {
1985 - Register rr, ra;
1986
1987 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
1988 deleted file mode 100644
1989 index bebe5587180..00000000000
1990 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch
1991 +++ /dev/null
1992 @@ -1,53 +0,0 @@
1993 -https://bugzilla.mozilla.org/show_bug.cgi?id=589735
1994 -
1995 ---- a/js/src/jsgcchunk.cpp 2011-03-31 21:08:36.000000000 +0200
1996 -+++ b/js/src/jsgcchunk.cpp 2012-11-02 10:36:08.324453878 +0100
1997 -@@ -318,15 +318,48 @@
1998 - static void *
1999 - MapPages(void *addr, size_t size)
2000 - {
2001 -+#if defined(__ia64__)
2002 -+ /*
2003 -+ * The JS engine assumes that all allocated pointers have their high 17 bits clear,
2004 -+ * which ia64's mmap doesn't support directly. However, we can emulate it by passing
2005 -+ * mmap an "addr" parameter with those bits clear. The mmap will return that address,
2006 -+ * or the nearest available memory above that address, providing a near-guarantee
2007 -+ * that those bits are clear. If they are not, we return NULL below to indicate
2008 -+ * out-of-memory.
2009 -+ *
2010 -+ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
2011 -+ * address space.
2012 -+ *
2013 -+ * See Bug 589735 for more information.
2014 -+ */
2015 -+#endif
2016 -+
2017 - /*
2018 - * We don't use MAP_FIXED here, because it can cause the *replacement*
2019 - * of existing mappings, and we only want to create new mappings.
2020 - */
2021 -+#if defined(__ia64__)
2022 -+ void *p = mmap(addr ? addr : (void*)0x0000070000000000,
2023 -+ size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
2024 -+ -1, 0);
2025 -+#else
2026 - void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
2027 - -1, 0);
2028 -+#endif
2029 - if (p == MAP_FAILED)
2030 - return NULL;
2031 -+#if defined(__ia64__)
2032 -+ /*
2033 -+ * If the caller requested a specific memory location, verify that's what mmap returned.
2034 -+ * Otherwise: If the allocated memory doesn't have its upper 17 bits clear, consider it
2035 -+ * as out of memory.
2036 -+ */
2037 -+ if (addr && p != addr
2038 -+ || !addr && ((long long)p & 0xffff800000000000)) {
2039 -+#else
2040 -+ /* If the caller requested a specific memory location, verify that's what mmap returned. */
2041 - if (addr && p != addr) {
2042 -+#endif
2043 - /* We succeeded in mapping memory, but not in the right place. */
2044 - JS_ALWAYS_TRUE(munmap(p, size) == 0);
2045 - return NULL;
2046
2047 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
2048 deleted file mode 100644
2049 index 5cfed32ae68..00000000000
2050 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch
2051 +++ /dev/null
2052 @@ -1,381 +0,0 @@
2053 -https://bugzilla.mozilla.org/show_bug.cgi?id=589735
2054 -
2055 ---- a/js/src/jsatom.cpp 2011-03-31 21:08:36.000000000 +0200
2056 -+++ b/js/src/jsatom.cpp 2012-11-02 10:43:16.970562590 +0100
2057 -@@ -603,11 +603,13 @@
2058 - JSString str, *str2;
2059 - JSAtomState *state;
2060 -
2061 -+#ifdef JS_HAS_STATIC_STRINGS
2062 - if (length == 1) {
2063 - jschar c = *chars;
2064 - if (c < UNIT_STRING_LIMIT)
2065 - return STRING_TO_ATOM(JSString::unitString(c));
2066 - }
2067 -+#endif
2068 -
2069 - str.initFlatNotTerminated((jschar *)chars, length);
2070 - state = &cx->runtime->atomState;
2071 ---- a/js/src/jsiter.cpp 2011-03-31 21:08:36.000000000 +0200
2072 -+++ b/js/src/jsiter.cpp 2012-11-02 10:43:16.974562590 +0100
2073 -@@ -1002,9 +1002,12 @@
2074 -
2075 - JSString *str;
2076 - jsint i;
2077 -+#ifdef JS_HAS_STATIC_STRINGS
2078 - if (rval->isInt32() && (jsuint(i = rval->toInt32()) < INT_STRING_LIMIT)) {
2079 - str = JSString::intString(i);
2080 -- } else {
2081 -+ } else
2082 -+#endif
2083 -+ {
2084 - str = js_ValueToString(cx, *rval);
2085 - if (!str)
2086 - return false;
2087 ---- a/js/src/jsnum.cpp 2011-03-31 21:08:36.000000000 +0200
2088 -+++ b/js/src/jsnum.cpp 2012-11-02 10:43:16.982562589 +0100
2089 -@@ -605,8 +605,10 @@
2090 - {
2091 - uint32 ui;
2092 - if (si >= 0) {
2093 -+#ifdef JS_HAS_STATIC_STRINGS
2094 - if (si < INT_STRING_LIMIT)
2095 - return JSString::intString(si);
2096 -+#endif
2097 - ui = si;
2098 - } else {
2099 - ui = uint32(-si);
2100 -@@ -1169,6 +1171,7 @@
2101 -
2102 - int32_t i;
2103 - if (JSDOUBLE_IS_INT32(d, &i)) {
2104 -+#ifdef JS_HAS_STATIC_STRINGS
2105 - if (base == 10 && jsuint(i) < INT_STRING_LIMIT)
2106 - return JSString::intString(i);
2107 - if (jsuint(i) < jsuint(base)) {
2108 -@@ -1176,6 +1179,7 @@
2109 - return JSString::intString(i);
2110 - return JSString::unitString(jschar('a' + i - 10));
2111 - }
2112 -+#endif
2113 -
2114 - if (JSString *str = c->dtoaCache.lookup(base, d))
2115 - return str;
2116 ---- a/js/src/jsstr.cpp 2011-03-31 21:08:36.000000000 +0200
2117 -+++ b/js/src/jsstr.cpp 2012-11-02 10:43:16.990562588 +0100
2118 -@@ -3121,6 +3121,8 @@
2119 - JS_FS_END
2120 - };
2121 -
2122 -+#ifdef JS_HAS_STATIC_STRINGS
2123 -+
2124 - /*
2125 - * Set up some tools to make it easier to generate large tables. After constant
2126 - * folding, for each n, Rn(0) is the comma-separated list R(0), R(1), ..., R(2^n-1).
2127 -@@ -3291,6 +3293,8 @@
2128 - #undef R3
2129 - #undef R7
2130 -
2131 -+#endif /* defined(JS_HAS_STATIC_STRINGS) */
2132 -+
2133 - JSBool
2134 - js_String(JSContext *cx, uintN argc, Value *vp)
2135 - {
2136 -@@ -3331,6 +3335,7 @@
2137 - uint16_t code;
2138 - if (!ValueToUint16(cx, argv[0], &code))
2139 - return JS_FALSE;
2140 -+#ifdef JS_HAS_STATIC_STRINGS
2141 - if (code < UNIT_STRING_LIMIT) {
2142 - str = JSString::unitString(code);
2143 - if (!str)
2144 -@@ -3338,6 +3343,7 @@
2145 - vp->setString(str);
2146 - return JS_TRUE;
2147 - }
2148 -+#endif
2149 - argv[0].setInt32(code);
2150 - }
2151 - chars = (jschar *) cx->malloc((argc + 1) * sizeof(jschar));
2152 -@@ -3367,8 +3373,10 @@
2153 - {
2154 - JS_ASSERT(JS_ON_TRACE(cx));
2155 - jschar c = (jschar)i;
2156 -+#ifdef JS_HAS_STATIC_STRINGS
2157 - if (c < UNIT_STRING_LIMIT)
2158 - return JSString::unitString(c);
2159 -+#endif
2160 - return js_NewStringCopyN(cx, &c, 1);
2161 - }
2162 - #endif
2163 ---- a/js/src/jsstr.h 2011-03-31 21:08:36.000000000 +0200
2164 -+++ b/js/src/jsstr.h 2012-11-02 10:43:16.998562587 +0100
2165 -@@ -57,6 +57,15 @@
2166 - #include "jsvalue.h"
2167 - #include "jscell.h"
2168 -
2169 -+#if !defined(__ia64__)
2170 -+/*
2171 -+ * Don't use static strings on ia64 since the compiler may put the static
2172 -+ * memory out of the acceptable 47-bit jsval pointer range.
2173 -+ */
2174 -+# define JS_HAS_STATIC_STRINGS
2175 -+#endif
2176 -+
2177 -+#ifdef JS_HAS_STATIC_STRINGS
2178 - enum {
2179 - UNIT_STRING_LIMIT = 256U,
2180 - SMALL_CHAR_LIMIT = 128U, /* Bigger chars cannot be in a length-2 string. */
2181 -@@ -64,6 +73,7 @@
2182 - INT_STRING_LIMIT = 256U,
2183 - NUM_HUNDRED_STRINGS = 156U
2184 - };
2185 -+#endif
2186 -
2187 - extern jschar *
2188 - js_GetDependentStringChars(JSString *str);
2189 -@@ -380,10 +390,15 @@
2190 - typedef uint8 SmallChar;
2191 -
2192 - static inline bool fitsInSmallChar(jschar c) {
2193 -+#ifdef JS_HAS_STATIC_STRINGS
2194 - return c < SMALL_CHAR_LIMIT && toSmallChar[c] != INVALID_SMALL_CHAR;
2195 -+#else
2196 -+ return false;
2197 -+#endif
2198 - }
2199 -
2200 - static inline bool isUnitString(void *ptr) {
2201 -+#ifdef JS_HAS_STATIC_STRINGS
2202 - jsuword delta = reinterpret_cast<jsuword>(ptr) -
2203 - reinterpret_cast<jsuword>(unitStringTable);
2204 - if (delta >= UNIT_STRING_LIMIT * sizeof(JSString))
2205 -@@ -392,9 +407,13 @@
2206 - /* If ptr points inside the static array, it must be well-aligned. */
2207 - JS_ASSERT(delta % sizeof(JSString) == 0);
2208 - return true;
2209 -+#else
2210 -+ return false;
2211 -+#endif
2212 - }
2213 -
2214 - static inline bool isLength2String(void *ptr) {
2215 -+#ifdef JS_HAS_STATIC_STRINGS
2216 - jsuword delta = reinterpret_cast<jsuword>(ptr) -
2217 - reinterpret_cast<jsuword>(length2StringTable);
2218 - if (delta >= NUM_SMALL_CHARS * NUM_SMALL_CHARS * sizeof(JSString))
2219 -@@ -403,9 +422,13 @@
2220 - /* If ptr points inside the static array, it must be well-aligned. */
2221 - JS_ASSERT(delta % sizeof(JSString) == 0);
2222 - return true;
2223 -+#else
2224 -+ return false;
2225 -+#endif
2226 - }
2227 -
2228 - static inline bool isHundredString(void *ptr) {
2229 -+#ifdef JS_HAS_STATIC_STRINGS
2230 - jsuword delta = reinterpret_cast<jsuword>(ptr) -
2231 - reinterpret_cast<jsuword>(hundredStringTable);
2232 - if (delta >= NUM_HUNDRED_STRINGS * sizeof(JSString))
2233 -@@ -414,6 +437,9 @@
2234 - /* If ptr points inside the static array, it must be well-aligned. */
2235 - JS_ASSERT(delta % sizeof(JSString) == 0);
2236 - return true;
2237 -+#else
2238 -+ return false;
2239 -+#endif
2240 - }
2241 -
2242 - static inline bool isStatic(void *ptr) {
2243 -@@ -424,6 +450,7 @@
2244 - #pragma align 8 (__1cIJSStringPunitStringTable_, __1cIJSStringSlength2StringTable_, __1cIJSStringShundredStringTable_)
2245 - #endif
2246 -
2247 -+#ifdef JS_HAS_STATIC_STRINGS
2248 - static const SmallChar INVALID_SMALL_CHAR = -1;
2249 -
2250 - static const jschar fromSmallChar[];
2251 -@@ -436,6 +463,7 @@
2252 - * strings, we keep a table to map from integer to the correct string.
2253 - */
2254 - static const JSString *const intStringTable[];
2255 -+#endif
2256 -
2257 - static JSFlatString *unitString(jschar c);
2258 - static JSLinearString *getUnitString(JSContext *cx, JSString *str, size_t index);
2259 ---- a/js/src/jsstrinlines.h 2011-03-31 21:08:36.000000000 +0200
2260 -+++ b/js/src/jsstrinlines.h 2012-11-02 10:43:17.010562586 +0100
2261 -@@ -215,52 +215,75 @@
2262 - inline JSFlatString *
2263 - JSString::unitString(jschar c)
2264 - {
2265 -+#ifdef JS_HAS_STATIC_STRINGS
2266 - JS_ASSERT(c < UNIT_STRING_LIMIT);
2267 - return const_cast<JSString *>(&unitStringTable[c])->assertIsFlat();
2268 -+#else
2269 -+ JS_NOT_REACHED("no static strings");
2270 -+ return NULL;
2271 -+#endif
2272 - }
2273 -
2274 - inline JSLinearString *
2275 - JSString::getUnitString(JSContext *cx, JSString *str, size_t index)
2276 - {
2277 - JS_ASSERT(index < str->length());
2278 -+#ifdef JS_HAS_STATIC_STRINGS
2279 - const jschar *chars = str->getChars(cx);
2280 - if (!chars)
2281 - return NULL;
2282 - jschar c = chars[index];
2283 - if (c < UNIT_STRING_LIMIT)
2284 - return unitString(c);
2285 -+#endif
2286 - return js_NewDependentString(cx, str, index, 1);
2287 - }
2288 -
2289 - inline JSFlatString *
2290 - JSString::length2String(jschar c1, jschar c2)
2291 - {
2292 -+#ifdef JS_HAS_STATIC_STRINGS
2293 - JS_ASSERT(fitsInSmallChar(c1));
2294 - JS_ASSERT(fitsInSmallChar(c2));
2295 - return const_cast<JSString *> (
2296 - &length2StringTable[(((size_t)toSmallChar[c1]) << 6) + toSmallChar[c2]]
2297 - )->assertIsFlat();
2298 -+#else
2299 -+ JS_NOT_REACHED("no static strings");
2300 -+ return NULL;
2301 -+#endif
2302 - }
2303 -
2304 - inline JSFlatString *
2305 - JSString::length2String(uint32 i)
2306 - {
2307 -+#ifdef JS_HAS_STATIC_STRINGS
2308 - JS_ASSERT(i < 100);
2309 - return length2String('0' + i / 10, '0' + i % 10);
2310 -+#else
2311 -+ JS_NOT_REACHED("no static strings");
2312 -+ return NULL;
2313 -+#endif
2314 - }
2315 -
2316 - inline JSFlatString *
2317 - JSString::intString(jsint i)
2318 - {
2319 -+#ifdef JS_HAS_STATIC_STRINGS
2320 - jsuint u = jsuint(i);
2321 - JS_ASSERT(u < INT_STRING_LIMIT);
2322 - return const_cast<JSString *>(JSString::intStringTable[u])->assertIsFlat();
2323 -+#else
2324 -+ JS_NOT_REACHED("no static strings");
2325 -+ return NULL;
2326 -+#endif
2327 - }
2328 -
2329 - /* Get a static atomized string for chars if possible. */
2330 - inline JSFlatString *
2331 - JSString::lookupStaticString(const jschar *chars, size_t length)
2332 - {
2333 -+#ifdef JS_HAS_STATIC_STRINGS
2334 - if (length == 1) {
2335 - if (chars[0] < UNIT_STRING_LIMIT)
2336 - return unitString(chars[0]);
2337 -@@ -290,6 +313,7 @@
2338 - return intString(i);
2339 - }
2340 - }
2341 -+#endif
2342 -
2343 - return NULL;
2344 - }
2345 ---- a/js/src/jstracer.cpp 2011-03-31 21:08:36.000000000 +0200
2346 -+++ b/js/src/jstracer.cpp 2012-11-02 10:43:17.022562584 +0100
2347 -@@ -11505,6 +11505,7 @@
2348 - }
2349 - if (vp[1].isString()) {
2350 - JSString *str = vp[1].toString();
2351 -+#ifdef JS_HAS_STATIC_STRINGS
2352 - if (native == js_str_charAt) {
2353 - jsdouble i = vp[2].toNumber();
2354 - if (JSDOUBLE_IS_NaN(i))
2355 -@@ -11518,7 +11519,9 @@
2356 - set(&vp[0], char_ins);
2357 - pendingSpecializedNative = IGNORE_NATIVE_CALL_COMPLETE_CALLBACK;
2358 - return RECORD_CONTINUE;
2359 -- } else if (native == js_str_charCodeAt) {
2360 -+ } else
2361 -+#endif
2362 -+ if (native == js_str_charCodeAt) {
2363 - jsdouble i = vp[2].toNumber();
2364 - if (JSDOUBLE_IS_NaN(i))
2365 - i = 0;
2366 -@@ -12967,6 +12970,7 @@
2367 - JS_STATIC_ASSERT(sizeof(JSString) == 16 || sizeof(JSString) == 32);
2368 -
2369 -
2370 -+#ifdef JS_HAS_STATIC_STRINGS
2371 - JS_REQUIRES_STACK LIns*
2372 - TraceRecorder::getUnitString(LIns* str_ins, LIns* idx_ins)
2373 - {
2374 -@@ -13010,6 +13014,7 @@
2375 - }
2376 - return RECORD_CONTINUE;
2377 - }
2378 -+#endif
2379 -
2380 - // Typed array tracing depends on EXPANDED_LOADSTORE and F2I
2381 - #if NJ_EXPANDED_LOADSTORE_SUPPORTED && NJ_F2I_SUPPORTED
2382 -@@ -13044,6 +13049,7 @@
2383 - LIns* obj_ins = get(&lval);
2384 - LIns* idx_ins = get(&idx);
2385 -
2386 -+#ifdef JS_HAS_STATIC_STRINGS
2387 - // Special case for array-like access of strings.
2388 - if (lval.isString() && hasInt32Repr(idx)) {
2389 - if (call)
2390 -@@ -13056,6 +13062,7 @@
2391 - set(&lval, char_ins);
2392 - return ARECORD_CONTINUE;
2393 - }
2394 -+#endif
2395 -
2396 - if (lval.isPrimitive())
2397 - RETURN_STOP_A("JSOP_GETLEM on a primitive");
2398 ---- a/js/src/jstracer.h 2011-03-31 21:08:36.000000000 +0200
2399 -+++ b/js/src/jstracer.h 2012-11-02 10:43:17.034562582 +0100
2400 -@@ -1394,10 +1394,12 @@
2401 - JS_REQUIRES_STACK RecordingStatus getCharCodeAt(JSString *str,
2402 - nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
2403 - nanojit::LIns** out_ins);
2404 -+#ifdef JS_HAS_STATIC_STRINGS
2405 - JS_REQUIRES_STACK nanojit::LIns* getUnitString(nanojit::LIns* str_ins, nanojit::LIns* idx_ins);
2406 - JS_REQUIRES_STACK RecordingStatus getCharAt(JSString *str,
2407 - nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
2408 - JSOp mode, nanojit::LIns** out_ins);
2409 -+#endif
2410 -
2411 - JS_REQUIRES_STACK RecordingStatus initOrSetPropertyByName(nanojit::LIns* obj_ins,
2412 - Value* idvalp, Value* rvalp,
2413 ---- a/js/src/tracejit/Writer.cpp 2011-03-31 21:08:36.000000000 +0200
2414 -+++ b/js/src/tracejit/Writer.cpp 2012-11-02 10:43:17.038562582 +0100
2415 -@@ -246,7 +246,9 @@
2416 - // ins = andq ins_oprnd1, ins_oprnd2
2417 - ret = true;
2418 - #endif
2419 -- } else if (ins->isop(LIR_addp) &&
2420 -+ }
2421 -+#ifdef JS_HAS_STATIC_STRINGS
2422 -+ else if (ins->isop(LIR_addp) &&
2423 - ((ins->oprnd1()->isImmP() &&
2424 - (void *)ins->oprnd1()->immP() == JSString::unitStringTable) ||
2425 - (ins->oprnd2()->isImmP() &&
2426 -@@ -258,6 +260,7 @@
2427 - // ins = addp JSString::unitStringTable, ...
2428 - ret = true;
2429 - }
2430 -+#endif
2431 -
2432 - return ret;
2433 - }
2434
2435 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch
2436 deleted file mode 100644
2437 index edf4d01e64b..00000000000
2438 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-isfinite.patch
2439 +++ /dev/null
2440 @@ -1,11 +0,0 @@
2441 ---- js/src/jsnum.h 2011-03-03 05:43:06.000000000 -0500
2442 -+++ js/src/jsnum.h.new 2012-08-16 14:58:04.000000000 -0400
2443 -@@ -97,6 +97,8 @@
2444 - {
2445 - #ifdef WIN32
2446 - return _finite(d);
2447 -+#elif defined(__UCLIBC__)
2448 -+ return isfinite(d);
2449 - #else
2450 - return finite(d);
2451 - #endif
2452
2453 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
2454 deleted file mode 100644
2455 index 66475b6c34c..00000000000
2456 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-perf_event-check.patch
2457 +++ /dev/null
2458 @@ -1,21 +0,0 @@
2459 ---- a/js/src/configure.in 2012-11-01 19:42:20.130330321 +0100
2460 -+++ b/js/src/configure.in 2012-11-01 20:34:03.561351492 +0100
2461 -@@ -3477,7 +3477,16 @@
2462 - esac
2463 -
2464 - dnl Performance measurement headers.
2465 --AC_CHECK_HEADER(linux/perf_event.h, HAVE_LINUX_PERF_EVENT_H=1)
2466 -+AC_CHECK_HEADER(linux/perf_event.h,
2467 -+ [AC_CACHE_CHECK(for perf_event_open system call,ac_cv_perf_event_open,
2468 -+ [AC_TRY_COMPILE([#include <sys/syscall.h>],[return sizeof(__NR_perf_event_open);],
2469 -+ ac_cv_perf_event_open=yes,
2470 -+ ac_cv_perf_event_open=no)])])
2471 -+if test "$ac_cv_perf_event_open" = "yes"; then
2472 -+ HAVE_LINUX_PERF_EVENT_H=1
2473 -+else
2474 -+ HAVE_LINUX_PERF_EVENT_H=
2475 -+fi
2476 - AC_SUBST(HAVE_LINUX_PERF_EVENT_H)
2477 -
2478 - dnl Checks for libraries.
2479 -
2480
2481 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
2482 deleted file mode 100644
2483 index 460394d33f1..00000000000
2484 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-symbol-versions.patch
2485 +++ /dev/null
2486 @@ -1,32 +0,0 @@
2487 -diff -Naur js/src/configure.in js.new/src/configure.in
2488 ---- a/js/src/symverscript.in 2012-11-07 09:36:16.000000000 -0500
2489 -+++ b/js/src/symverscript.in 2012-11-07 09:37:05.000000000 -0500
2490 -@@ -0,0 +1,4 @@
2491 -+mozjs185 {
2492 -+ global: *;
2493 -+};
2494 -+
2495 -diff -Naur js/src/Makefile.in js.new/src/Makefile.in
2496 ---- a/js/src/Makefile.in 2012-11-07 09:36:16.000000000 -0500
2497 -+++ b/js/src/Makefile.in 2012-11-07 09:37:09.000000000 -0500
2498 -@@ -837,7 +837,10 @@
2499 - mozjs185.pc \
2500 - $(NULL)
2501 -
2502 --GARBAGE += $(pkg_config_files)
2503 -+symverscript: symverscript.in
2504 -+ cat $< > $@
2505 -+
2506 -+GARBAGE += $(pkg_config_files) symverscript
2507 -
2508 - %.pc: $(srcdir)/%.pc.in Makefile
2509 - cat $< | sed \
2510 -@@ -872,6 +875,8 @@
2511 - SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_ABI_VERSION)
2512 - SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_VERSION)
2513 - $(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-soname,$(notdir $(SHLIB_ABI_VER))
2514 -+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-version-script,symverscript
2515 -+$(SHARED_LIBRARY): symverscript
2516 - endif
2517 - endif
2518 -
2519
2520 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
2521 deleted file mode 100644
2522 index 4324df0d609..00000000000
2523 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-freebsd-pthreads.patch
2524 +++ /dev/null
2525 @@ -1,11 +0,0 @@
2526 ---- a/js/src/config/system-headers
2527 -+++ b/js/src/config/system-headers
2528 -@@ -595,6 +595,7 @@ proto/exec.h
2529 - psap.h
2530 - Pt.h
2531 - pthread.h
2532 -+pthread_np.h
2533 - pwd.h
2534 - Python.h
2535 - QDOffscreen.h
2536 -
2537
2538 diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch
2539 deleted file mode 100644
2540 index f14a269ee3f..00000000000
2541 --- a/dev-lang/spidermonkey/files/spidermonkey-1.8.7-x32.patch
2542 +++ /dev/null
2543 @@ -1,25 +0,0 @@
2544 ---- a/js/src/jslock.cpp 2012-04-06 16:24:51.000000000 -0500
2545 -+++ b/js/src/jslock.cpp 2012-06-21 20:57:00.877937542 -0500
2546 -@@ -150,17 +150,22 @@
2547 -
2548 - static JS_ALWAYS_INLINE int
2549 - NativeCompareAndSwap(volatile jsword *w, jsword ov, jsword nv)
2550 - {
2551 - unsigned int res;
2552 -
2553 - __asm__ __volatile__ (
2554 - "lock\n"
2555 -+/* GCC's x32 abi support */
2556 -+#if defined(__LP64__)
2557 - "cmpxchgq %2, (%1)\n"
2558 -+#else
2559 -+ "cmpxchg %2, (%1)\n"
2560 -+#endif
2561 - "sete %%al\n"
2562 - "movzbl %%al, %%eax\n"
2563 - : "=a" (res)
2564 - : "r" (w), "r" (nv), "a" (ov)
2565 - : "cc", "memory");
2566 - return (int)res;
2567 - }
2568 -
2569
2570 diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch b/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch
2571 deleted file mode 100644
2572 index 062bd06b777..00000000000
2573 --- a/dev-lang/spidermonkey/files/spidermonkey-17-clang.patch
2574 +++ /dev/null
2575 @@ -1,18 +0,0 @@
2576 -Fix compilation of spidermonkey-17 with clang
2577 -
2578 -Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=458142
2579 -Upstream-Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=887645
2580 -
2581 -b/js/src/js-config.in
2582 ---- a/js/src/jsinterp.cpp 2016-06-03 00:08:04.376312080 -0500
2583 -+++ b/js/src/jsinterp.cpp 2016-06-03 00:12:17.740329180 -0500
2584 -@@ -3664,7 +3664,9 @@
2585 - BEGIN_CASE(JSOP_LEAVEFORLETIN)
2586 - BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
2587 - {
2588 -+ #ifdef DEBUG
2589 - DebugOnly<uint32_t> blockDepth = regs.fp()->blockChain().stackDepth();
2590 -+ #endif
2591 -
2592 - regs.fp()->popBlock(cx);
2593 -
2594
2595 diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch b/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch
2596 deleted file mode 100644
2597 index da6a49f637c..00000000000
2598 --- a/dev-lang/spidermonkey/files/spidermonkey-17-fix_pointer_dereference.patch
2599 +++ /dev/null
2600 @@ -1,30 +0,0 @@
2601 -# HG changeset patch
2602 -# User Mike Hommey <mh+mozilla@××××××××.org>
2603 -# Date 1373958382 -32400
2604 -# Tue Jul 16 16:06:22 2013 +0900
2605 -# Node ID 1880537f26d2ce22866974a8cdf1927dc66f6dbc
2606 -# Parent 673ea5cd6ba7fc37086d1dab71ee4a6d6a77a1ab
2607 -Bug 894240 - Fix pointer dereference in js::cli::OptionParser::extractValue
2608 -
2609 -diff --git a/js/src/shell/jsoptparse.cpp b/js/src/shell/jsoptparse.cpp
2610 ---- a/js/src/shell/jsoptparse.cpp
2611 -+++ b/js/src/shell/jsoptparse.cpp
2612 -@@ -248,17 +248,17 @@ OptionParser::printHelp(const char *prog
2613 -
2614 - OptionParser::Result
2615 - OptionParser::extractValue(size_t argc, char **argv, size_t *i, char **value)
2616 - {
2617 - JS_ASSERT(*i < argc);
2618 - char *eq = strchr(argv[*i], '=');
2619 - if (eq) {
2620 - *value = eq + 1;
2621 -- if (value[0] == '\0')
2622 -+ if (*value[0] == '\0')
2623 - return error("A value is required for option %.*s", eq - argv[*i], argv[*i]);
2624 - return Okay;
2625 - }
2626 -
2627 - if (argc == *i + 1)
2628 - return error("Expected a value for option %s", argv[*i]);
2629 -
2630 - *i += 1;
2631
2632 diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch b/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch
2633 deleted file mode 100644
2634 index 7adbd118d40..00000000000
2635 --- a/dev-lang/spidermonkey/files/spidermonkey-17-ia64-mmap.patch
2636 +++ /dev/null
2637 @@ -1,67 +0,0 @@
2638 ---- a/js/src/gc/Memory.cpp 2013-02-11 17:33:22.000000000 -0500
2639 -+++ b/js/src/gc/Memory.cpp 2014-01-08 12:36:29.406851422 -0500
2640 -@@ -302,10 +302,46 @@
2641 - void
2642 - InitMemorySubsystem()
2643 - {
2644 -+#if !defined(__ia64__)
2645 - if (size_t(sysconf(_SC_PAGESIZE)) != PageSize)
2646 - MOZ_CRASH();
2647 -+#endif
2648 - }
2649 -
2650 -+static inline void *
2651 -+MapMemory(size_t length, int prot, int flags, int fd, off_t offset)
2652 -+{
2653 -+#if defined(__ia64__)
2654 -+ /*
2655 -+ * The JS engine assumes that all allocated pointers have their high 17 bits clear,
2656 -+ * which ia64's mmap doesn't support directly. However, we can emulate it by passing
2657 -+ * mmap an "addr" parameter with those bits clear. The mmap will return that address,
2658 -+ * or the nearest available memory above that address, providing a near-guarantee
2659 -+ * that those bits are clear. If they are not, we return NULL below to indicate
2660 -+ * out-of-memory.
2661 -+ *
2662 -+ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
2663 -+ * address space.
2664 -+ *
2665 -+ * See Bug 589735 for more information.
2666 -+ */
2667 -+ void *region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset);
2668 -+ if (region == MAP_FAILED)
2669 -+ return MAP_FAILED;
2670 -+ /*
2671 -+ * If the allocated memory doesn't have its upper 17 bits clear, consider it
2672 -+ * as out of memory.
2673 -+ */
2674 -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
2675 -+ JS_ALWAYS_TRUE(0 == munmap(region, length));
2676 -+ return MAP_FAILED;
2677 -+ }
2678 -+ return region;
2679 -+#else
2680 -+ return mmap(NULL, length, prot, flags, fd, offset);
2681 -+#endif
2682 -+}
2683 -+
2684 - void *
2685 - MapAlignedPages(size_t size, size_t alignment)
2686 - {
2687 -@@ -319,12 +353,15 @@
2688 -
2689 - /* Special case: If we want page alignment, no further work is needed. */
2690 - if (alignment == PageSize) {
2691 -- return mmap(NULL, size, prot, flags, -1, 0);
2692 -+ void *region = MapMemory(size, prot, flags, -1, 0);
2693 -+ if (region == MAP_FAILED)
2694 -+ return NULL;
2695 -+ return region;
2696 - }
2697 -
2698 - /* Overallocate and unmap the region's edges. */
2699 - size_t reqSize = Min(size + 2 * alignment, 2 * size);
2700 -- void *region = mmap(NULL, reqSize, prot, flags, -1, 0);
2701 -+ void *region = MapMemory(reqSize, prot, flags, -1, 0);
2702 - if (region == MAP_FAILED)
2703 - return NULL;
2704 -
2705
2706 diff --git a/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch b/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch
2707 deleted file mode 100644
2708 index ec77b236828..00000000000
2709 --- a/dev-lang/spidermonkey/files/spidermonkey-17-js-config-shebang.patch
2710 +++ /dev/null
2711 @@ -1,22 +0,0 @@
2712 ---- a/js/src/js-config.in 2013-03-25 16:34:20.000000000 -0400
2713 -+++ b/js/src/js-config.in 2013-08-09 22:15:29.000901763 -0400
2714 -@@ -2,7 +2,7 @@
2715 - # This Source Code Form is subject to the terms of the Mozilla Public
2716 - # License, v. 2.0. If a copy of the MPL was not distributed with this
2717 - # file, You can obtain one at http://mozilla.org/MPL/2.0/.
2718 --#filter substitution
2719 -+%filter substitution
2720 -
2721 - prefix='@prefix@'
2722 - mozilla_version='@MOZILLA_VERSION@'
2723 ---- a/js/src/Makefile.in 2013-03-25 16:34:20.000000000 -0400
2724 -+++ b/js/src/Makefile.in 2013-08-09 22:17:20.211903793 -0400
2725 -@@ -778,7 +778,7 @@
2726 -
2727 - $(JS_CONFIG_NAME): js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
2728 - $(RM) $@.tmp
2729 -- $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@.tmp \
2730 -+ $(PYTHON) $(topsrcdir)/config/Preprocessor.py --marker="%" $(JS_CONFIG_SUBSTITUTIONS) $< > $@.tmp \
2731 - && mv $@.tmp $@ && chmod +x $@
2732 -
2733 - SCRIPTS = $(JS_CONFIG_NAME)
2734
2735 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
2736 deleted file mode 100644
2737 index f4eee930542..00000000000
2738 --- a/dev-lang/spidermonkey/files/spidermonkey-17.0.0-fix-file-permissions.patch
2739 +++ /dev/null
2740 @@ -1,37 +0,0 @@
2741 -diff -urN a/js/src/Makefile.in b/js/src/Makefile.in
2742 ---- a/js/src/Makefile.in 2013-03-25 15:34:20.000000000 -0500
2743 -+++ b/js/src/Makefile.in 2014-03-08 08:26:36.726979744 -0600
2744 -@@ -788,7 +788,7 @@
2745 - $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
2746 -
2747 - install:: $(LIBRARY_NAME).pc
2748 -- $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
2749 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(libdir)/pkgconfig
2750 -
2751 - ######################################################
2752 - # BEGIN SpiderMonkey header installation
2753 -@@ -836,19 +836,19 @@
2754 - #
2755 -
2756 - install:: $(INSTALLED_HEADERS)
2757 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)
2758 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)
2759 -
2760 - install:: $(EXPORTS_ds)
2761 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/ds
2762 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/ds
2763 -
2764 - install:: $(EXPORTS_gc)
2765 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/gc
2766 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/gc
2767 -
2768 - install:: $(EXPORTS_js)
2769 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/js
2770 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/js
2771 -
2772 - install:: $(EXPORTS_mozilla)
2773 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)/mozilla
2774 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(MODULE)/mozilla
2775 -
2776 - #
2777 - # END SpiderMonkey header installation
2778
2779 diff --git a/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch b/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch
2780 deleted file mode 100644
2781 index 59ba0c958ea..00000000000
2782 --- a/dev-lang/spidermonkey/files/spidermonkey-24-system-icu.patch
2783 +++ /dev/null
2784 @@ -1,199 +0,0 @@
2785 -diff --git a/js/src/Makefile.in b/js/src/Makefile.in
2786 -index 4944d31..4176e14 100644
2787 ---- a/js/src/Makefile.in
2788 -+++ b/js/src/Makefile.in
2789 -@@ -237,12 +237,17 @@ endif
2790 - # ICU headers need to be available whether we build with the complete
2791 - # Internationalization API or not - ICU stubs rely on them.
2792 -
2793 -+ifdef MOZ_NATIVE_ICU
2794 -+LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
2795 -+else
2796 - LOCAL_INCLUDES += \
2797 - -I$(topsrcdir)/../../intl/icu/source/common \
2798 - -I$(topsrcdir)/../../intl/icu/source/i18n \
2799 - $(NULL)
2800 -+endif
2801 -
2802 - ifdef ENABLE_INTL_API
2803 -+ifndef MOZ_NATIVE_ICU
2804 -
2805 - ifeq ($(OS_ARCH),WINNT)
2806 - # Parallel gmake is buggy on Windows
2807 -@@ -271,6 +276,7 @@ distclean clean::
2808 - $(call SUBMAKE,$@,intl/icu)
2809 -
2810 - endif
2811 -+endif
2812 -
2813 - #
2814 - # END ECMAScript Internationalization API
2815 -@@ -403,7 +409,11 @@ ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS))
2816 - DEFINES += -DUSE_ZLIB
2817 - endif
2818 -
2819 --SHARED_LIBRARY_LIBS += $(ICU_LIBS)
2820 -+ifdef MOZ_NATIVE_ICU
2821 -+EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
2822 -+else
2823 -+SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
2824 -+endif
2825 -
2826 - # Prevent floating point errors caused by VC++ optimizations
2827 - ifdef _MSC_VER
2828 -diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in
2829 -index 5f60d15..e1fe1f8 100644
2830 ---- a/js/src/config/Makefile.in
2831 -+++ b/js/src/config/Makefile.in
2832 -@@ -59,6 +59,7 @@ export:: \
2833 - $(call mkdir_deps,system_wrappers_js) \
2834 - $(NULL)
2835 - $(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \
2836 -+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
2837 - $(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js
2838 - $(INSTALL) system_wrappers_js $(DIST)
2839 -
2840 -diff --git a/js/src/config/system-headers b/js/src/config/system-headers
2841 -index b52aed6..1ca7420 100644
2842 ---- a/js/src/config/system-headers
2843 -+++ b/js/src/config/system-headers
2844 -@@ -1132,3 +1132,14 @@ kvm.h
2845 - spawn.h
2846 - err.h
2847 - xlocale.h
2848 -+#if MOZ_NATIVE_ICU==1
2849 -+unicode/locid.h
2850 -+unicode/numsys.h
2851 -+unicode/ucal.h
2852 -+unicode/ucol.h
2853 -+unicode/udat.h
2854 -+unicode/udatpg.h
2855 -+unicode/uenum.h
2856 -+unicode/unum.h
2857 -+unicode/ustring.h
2858 -+#endif
2859 -diff --git a/js/src/configure.in b/js/src/configure.in
2860 -index 4bccbe3..d535491 100644
2861 ---- a/js/src/configure.in
2862 -+++ b/js/src/configure.in
2863 -@@ -4409,6 +4409,16 @@ fi
2864 - dnl ========================================================
2865 - dnl ECMAScript Internationalization API Support (uses ICU)
2866 - dnl ========================================================
2867 -+ICU_LIB_NAMES=
2868 -+MOZ_NATIVE_ICU=
2869 -+MOZ_ARG_WITH_BOOL(system-icu,
2870 -+[ --with-system-icu
2871 -+ Use system icu (located with pkgconfig)],
2872 -+ MOZ_NATIVE_ICU=1)
2873 -+
2874 -+if test -n "$MOZ_NATIVE_ICU"; then
2875 -+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
2876 -+fi
2877 -
2878 - if test -n "$JS_STANDALONE"; then
2879 - ENABLE_INTL_API=1
2880 -@@ -4421,37 +4431,34 @@ MOZ_ARG_ENABLE_BOOL(intl-api,
2881 - dnl Settings for the implementation of the ECMAScript Internationalization API
2882 - if test -n "$ENABLE_INTL_API"; then
2883 - AC_DEFINE(ENABLE_INTL_API)
2884 -- # We build ICU as a static library.
2885 -- AC_DEFINE(U_STATIC_IMPLEMENTATION)
2886 --
2887 -- case "$OS_TARGET" in
2888 -- WINNT)
2889 -- ICU_LIB_NAMES="icuin icuuc icudt"
2890 -- ;;
2891 -- Darwin|Linux)
2892 -- ICU_LIB_NAMES="icui18n icuuc icudata"
2893 -- ;;
2894 -- *)
2895 -- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
2896 -- esac
2897 --
2898 -- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
2899 --else
2900 -- ICU_LIB_NAMES=
2901 -- ICU_LIBS=
2902 -+ if test -z "$MOZ_NATIVE_ICU"; then
2903 -+ case "$OS_TARGET" in
2904 -+ WINNT)
2905 -+ ICU_LIB_NAMES="icuin icuuc icudt"
2906 -+ ;;
2907 -+ Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
2908 -+ ICU_LIB_NAMES="icui18n icuuc icudata"
2909 -+ ;;
2910 -+ *)
2911 -+ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
2912 -+ esac
2913 -+ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
2914 -+ fi
2915 - fi
2916 -
2917 - AC_SUBST(ENABLE_INTL_API)
2918 - AC_SUBST(ICU_LIB_NAMES)
2919 --AC_SUBST(ICU_LIBS)
2920 --
2921 --dnl Source files that use ICU should have control over which parts of the ICU
2922 --dnl namespace they want to use.
2923 --AC_DEFINE(U_USING_ICU_NAMESPACE,0)
2924 --
2925 -+AC_SUBST(MOZ_ICU_LIBS)
2926 -+AC_SUBST(MOZ_NATIVE_ICU)
2927 -
2928 - dnl Settings for ICU
2929 --if test -n "$ENABLE_INTL_API" ; then
2930 -+if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
2931 -+ dnl We build ICU as a static library.
2932 -+ AC_DEFINE(U_STATIC_IMPLEMENTATION)
2933 -+
2934 -+ dnl Source files that use ICU should have control over which parts of the ICU
2935 -+ dnl namespace they want to use.
2936 -+ AC_DEFINE(U_USING_ICU_NAMESPACE,0)
2937 - # Set ICU compile options
2938 - ICU_CPPFLAGS=""
2939 - # don't use icu namespace automatically in client code
2940 -diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in
2941 -index 288934a..a582dfe 100644
2942 ---- a/js/src/gdb/Makefile.in
2943 -+++ b/js/src/gdb/Makefile.in
2944 -@@ -19,6 +19,10 @@ LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIB
2945 -
2946 - LOCAL_INCLUDES += -I$(topsrcdir) -I..
2947 -
2948 -+ifdef MOZ_NATIVE_ICU
2949 -+EXTRA_LIBS += $(MOZ_ICU_LIBS)
2950 -+endif
2951 -+
2952 - EXTRA_LIBS += $(MOZ_FFI_LIBS)
2953 -
2954 - # Place a GDB Python auto-load file next to the gdb-tests executable, both
2955 -diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in
2956 -index 5f7d594..10d7054 100644
2957 ---- a/js/src/jsapi-tests/Makefile.in
2958 -+++ b/js/src/jsapi-tests/Makefile.in
2959 -@@ -20,6 +20,10 @@ LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLI
2960 -
2961 - LOCAL_INCLUDES += -I$(topsrcdir) -I..
2962 -
2963 -+ifdef MOZ_NATIVE_ICU
2964 -+EXTRA_LIBS += $(MOZ_ICU_LIBS)
2965 -+endif
2966 -+
2967 - EXTRA_LIBS += $(MOZ_FFI_LIBS)
2968 -
2969 - ifdef QEMU_EXE
2970 -diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
2971 -index 2e1df09..db66c69 100644
2972 ---- a/js/src/shell/Makefile.in
2973 -+++ b/js/src/shell/Makefile.in
2974 -@@ -27,6 +27,9 @@ LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_
2975 - ifdef MOZ_NATIVE_FFI
2976 - EXTRA_LIBS += $(MOZ_FFI_LIBS)
2977 - endif
2978 -+ifdef MOZ_NATIVE_ICU
2979 -+EXTRA_LIBS += $(MOZ_ICU_LIBS)
2980 -+endif
2981 -
2982 - LOCAL_INCLUDES += -I$(topsrcdir) -I..
2983 -
2984
2985 diff --git a/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch b/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch
2986 deleted file mode 100644
2987 index 70963627bcc..00000000000
2988 --- a/dev-lang/spidermonkey/files/spidermonkey-24-upward-growing-stack.patch
2989 +++ /dev/null
2990 @@ -1,41 +0,0 @@
2991 -diff -Naur mozjs-24.2.0/js/src/gc/RootMarking.cpp mozjs-24.2.0.new/js/src/gc/RootMarking.cpp
2992 ---- mozjs-24.2.0/js/src/gc/RootMarking.cpp 2013-10-29 16:40:26.000000000 -0400
2993 -+++ mozjs-24.2.0.new/js/src/gc/RootMarking.cpp 2014-05-05 16:16:15.570098309 -0400
2994 -@@ -320,7 +320,7 @@
2995 -
2996 - uintptr_t *stackMin, *stackEnd;
2997 - #if JS_STACK_GROWTH_DIRECTION > 0
2998 -- stackMin = rt->nativeStackBase;
2999 -+ stackMin = reinterpret_cast<uintptr_t *>(rt->nativeStackBase);
3000 - stackEnd = cgcd->nativeStackTop;
3001 - #else
3002 - stackMin = cgcd->nativeStackTop + 1;
3003 -diff -Naur mozjs-24.2.0/js/src/jsapi.cpp mozjs-24.2.0.new/js/src/jsapi.cpp
3004 ---- mozjs-24.2.0/js/src/jsapi.cpp 2013-12-06 17:52:35.000000000 -0500
3005 -+++ mozjs-24.2.0.new/js/src/jsapi.cpp 2014-05-05 16:17:01.330099145 -0400
3006 -@@ -863,10 +863,6 @@
3007 -
3008 - PodZero(&debugHooks);
3009 - PodZero(&atomState);
3010 --
3011 --#if JS_STACK_GROWTH_DIRECTION > 0
3012 -- nativeStackLimit = UINTPTR_MAX;
3013 --#endif
3014 - }
3015 -
3016 - bool
3017 -diff -Naur mozjs-24.2.0/js/src/jsfriendapi.cpp mozjs-24.2.0.new/js/src/jsfriendapi.cpp
3018 ---- mozjs-24.2.0/js/src/jsfriendapi.cpp 2013-10-29 16:40:20.000000000 -0400
3019 -+++ mozjs-24.2.0.new/js/src/jsfriendapi.cpp 2014-05-05 16:18:30.350100769 -0400
3020 -@@ -32,7 +32,11 @@
3021 - PerThreadDataFriendFields::RuntimeMainThreadOffset);
3022 -
3023 - PerThreadDataFriendFields::PerThreadDataFriendFields()
3024 -+#if JS_STACK_GROWTH_DIRECTION > 0
3025 -+ : nativeStackLimit(UINTPTR_MAX)
3026 -+#else
3027 - : nativeStackLimit(0)
3028 -+#endif
3029 - {
3030 - #if defined(JSGC_ROOT_ANALYSIS) || defined(JSGC_USE_EXACT_ROOTING)
3031 - PodArrayZero(thingGCRooters);
3032
3033 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
3034 deleted file mode 100644
3035 index a2247164111..00000000000
3036 --- a/dev-lang/spidermonkey/files/spidermonkey-24.2.0-fix-file-permissions.patch
3037 +++ /dev/null
3038 @@ -1,29 +0,0 @@
3039 -diff -urN a/js/src/Makefile.in b/js/src/Makefile.in
3040 ---- a/js/src/Makefile.in 2013-11-19 13:42:43.000000000 -0600
3041 -+++ b/js/src/Makefile.in 2014-03-08 08:07:28.331006149 -0600
3042 -@@ -542,7 +542,7 @@
3043 - $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
3044 -
3045 - install:: $(LIBRARY_NAME).pc
3046 -- $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
3047 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(libdir)/pkgconfig
3048 -
3049 - ######################################################
3050 - # BEGIN SpiderMonkey header installation
3051 -@@ -569,13 +569,13 @@
3052 - #
3053 -
3054 - install:: $(EXPORTS)
3055 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)
3056 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)
3057 -
3058 - install:: $(EXPORTS_js)
3059 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/js
3060 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/js
3061 -
3062 - install:: $(EXPORTS_mozilla)
3063 -- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/mozilla
3064 -+ $(SYSINSTALL) -m 0644 $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)/mozilla
3065 -
3066 - #
3067 - # END SpiderMonkey header installation
3068
3069 diff --git a/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch b/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch
3070 deleted file mode 100644
3071 index 8b023fd3180..00000000000
3072 --- a/dev-lang/spidermonkey/files/spidermonkey-38-jsapi-tests.patch
3073 +++ /dev/null
3074 @@ -1,16 +0,0 @@
3075 ---- a/js/src/jsapi-tests/testPreserveJitCode.cpp 2015-09-17 16:12:22.000000000 -0400
3076 -+++ b/js/src/jsapi-tests/testPreserveJitCode.cpp 2017-02-27 16:30:28.899191525 -0500
3077 -@@ -16,8 +16,12 @@
3078 -
3079 - BEGIN_TEST(test_PreserveJitCode)
3080 - {
3081 -+#ifndef JS_CODEGEN_NONE
3082 - CHECK(testPreserveJitCode(false, 0));
3083 - CHECK(testPreserveJitCode(true, 1));
3084 -+#else
3085 -+ printf("*JIT is disabled, therefore CANNOT preserve jit code - skipping.\n");
3086 -+#endif
3087 - return true;
3088 - }
3089 -
3090 -
3091
3092 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
3093 deleted file mode 100644
3094 index 061e8a572db..00000000000
3095 --- a/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch
3096 +++ /dev/null
3097 @@ -1,21 +0,0 @@
3098 ---- a/python/mozbuild/mozbuild/backend/recursivemake.py 2016-04-14 13:55:21.000000000 -0400
3099 -+++ b/python/mozbuild/mozbuild/backend/recursivemake.py 2017-02-28 14:43:09.431448016 -0500
3100 -@@ -1301,17 +1301,17 @@
3101 -
3102 - for path, files in files.walk():
3103 - target_var = (mozpath.join(target, path)
3104 - if path else target).replace('/', '_')
3105 - have_objdir_files = False
3106 - for f in files:
3107 - if not isinstance(f, ObjDirPath):
3108 - dest = mozpath.join(reltarget, path, mozpath.basename(f))
3109 -- install_manifest.add_symlink(f.full_path, dest)
3110 -+ install_manifest.add_copy(f.full_path, dest)
3111 - else:
3112 - backend_file.write('%s_FILES += %s\n' % (
3113 - target_var, self._pretty_path(f, backend_file)))
3114 - have_objdir_files = True
3115 - if have_objdir_files:
3116 - backend_file.write('%s_DEST := $(DEPTH)/%s\n'
3117 - % (target_var,
3118 - mozpath.join(target, path)))
3119
3120 diff --git a/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild b/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
3121 index 7df8506f512..e66d66acb10 100644
3122 --- a/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
3123 +++ b/dev-lang/spidermonkey/spidermonkey-1.7.0-r3.ebuild
3124 @@ -1,4 +1,4 @@
3125 -# Copyright 1999-2015 Gentoo Foundation
3126 +# Copyright 1999-2017 Gentoo Foundation
3127 # Distributed under the terms of the GNU General Public License v2
3128
3129 EAPI="5"
3130 @@ -8,7 +8,9 @@ inherit eutils toolchain-funcs multilib flag-o-matic
3131 MY_P="js-${PV}"
3132 DESCRIPTION="Stand-alone JavaScript C library"
3133 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3134 -SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.gz"
3135 +SRC_URI="http://archive.mozilla.org/pub/js/${MY_P}.tar.gz
3136 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
3137 + "
3138
3139 LICENSE="NPL-1.1"
3140 SLOT="0/js"
3141 @@ -21,10 +23,10 @@ RDEPEND="threadsafe? ( dev-libs/nspr )"
3142 DEPEND="${RDEPEND}"
3143
3144 src_prepare() {
3145 - epatch "${FILESDIR}/${PN}-1.5-build.patch"
3146 - epatch "${FILESDIR}/${PN}-1.6-header.patch"
3147 - epatch "${FILESDIR}/${P}-threadsafe.diff" \
3148 - "${FILESDIR}"/${P}-ldflags.patch
3149 + epatch "${WORKDIR}"/sm0/${PN}-1.5-build.patch \
3150 + "${WORKDIR}"/sm0/${PN}-1.6-header.patch \
3151 + "${WORKDIR}"/sm0/${P}-threadsafe.diff \
3152 + "${WORKDIR}"/sm0/${P}-ldflags.patch
3153
3154 # don't force owner for Prefix
3155 sed -i -e '/^INSTALL :=/s/-g 0 -o root//' Makefile.ref || die
3156
3157 diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
3158 index 5d181130fcd..a5e340c2686 100644
3159 --- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
3160 +++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild
3161 @@ -1,4 +1,4 @@
3162 -# Copyright 1999-2016 Gentoo Foundation
3163 +# Copyright 1999-2017 Gentoo Foundation
3164 # Distributed under the terms of the GNU General Public License v2
3165
3166 EAPI="5"
3167 @@ -13,7 +13,8 @@ MY_P="${MY_PN}-${PV}"
3168 TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
3169 DESCRIPTION="Stand-alone JavaScript C library"
3170 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3171 -SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
3172 +SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
3173 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz"
3174
3175 LICENSE="NPL-1.1"
3176 SLOT="0/mozjs185"
3177 @@ -39,23 +40,23 @@ pkg_setup(){
3178
3179 src_prepare() {
3180 # https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
3181 - epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
3182 + epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
3183 # https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
3184 - epatch "${FILESDIR}/${P}-fix-ppc64.patch"
3185 + epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
3186 # https://bugs.gentoo.org/show_bug.cgi?id=400727
3187 # https://bugs.gentoo.org/show_bug.cgi?id=420471
3188 - epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
3189 + epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
3190 # https://bugs.gentoo.org/show_bug.cgi?id=438746
3191 - epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
3192 + epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
3193 # https://bugs.gentoo.org/show_bug.cgi?id=441928
3194 - epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
3195 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
3196 # https://bugs.gentoo.org/show_bug.cgi?id=439260
3197 - epatch "${FILESDIR}"/${P}-symbol-versions.patch
3198 + epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
3199 # https://bugs.gentoo.org/show_bug.cgi?id=441934
3200 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
3201 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
3202 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
3203 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
3204 # https://bugs.gentoo.org/show_bug.cgi?id=431560
3205 - epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
3206 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
3207 # https://bugs.gentoo.org/show_bug.cgi?id=552786
3208 epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3209
3210
3211 diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild
3212 deleted file mode 100644
3213 index c9ca487769f..00000000000
3214 --- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r5.ebuild
3215 +++ /dev/null
3216 @@ -1,146 +0,0 @@
3217 -# Copyright 1999-2016 Gentoo Foundation
3218 -# Distributed under the terms of the GNU General Public License v2
3219 -
3220 -EAPI="5"
3221 -WANT_AUTOCONF="2.1"
3222 -PYTHON_COMPAT=( python2_7 )
3223 -PYTHON_REQ_USE="threads"
3224 -inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
3225 -
3226 -MY_PN="js"
3227 -TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
3228 -MY_P="${MY_PN}-${PV}"
3229 -TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
3230 -DESCRIPTION="Stand-alone JavaScript C library"
3231 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3232 -SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
3233 -
3234 -LICENSE="NPL-1.1"
3235 -SLOT="0/mozjs185"
3236 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
3237 -IUSE="debug minimal static-libs test"
3238 -
3239 -S="${WORKDIR}/${MY_P}"
3240 -BUILDDIR="${S}/js/src"
3241 -
3242 -RDEPEND=">=dev-libs/nspr-4.7.0
3243 - sys-libs/readline:0=
3244 - x64-macos? ( dev-libs/jemalloc )"
3245 -DEPEND="${RDEPEND}
3246 - ${PYTHON_DEPS}
3247 - app-arch/zip
3248 - virtual/pkgconfig"
3249 -
3250 -pkg_setup(){
3251 - if [[ ${MERGE_TYPE} != "binary" ]]; then
3252 - export LC_ALL="C"
3253 - fi
3254 -}
3255 -
3256 -src_prepare() {
3257 - # https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
3258 - epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
3259 - # https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
3260 - epatch "${FILESDIR}/${P}-fix-ppc64.patch"
3261 - # https://bugs.gentoo.org/show_bug.cgi?id=400727
3262 - # https://bugs.gentoo.org/show_bug.cgi?id=420471
3263 - epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
3264 - # https://bugs.gentoo.org/show_bug.cgi?id=438746
3265 - epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
3266 - # https://bugs.gentoo.org/show_bug.cgi?id=441928
3267 - epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
3268 - # https://bugs.gentoo.org/show_bug.cgi?id=439260
3269 - epatch "${FILESDIR}"/${P}-symbol-versions.patch
3270 - # https://bugs.gentoo.org/show_bug.cgi?id=441934
3271 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
3272 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
3273 - # https://bugs.gentoo.org/show_bug.cgi?id=431560
3274 - epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
3275 - # https://bugs.gentoo.org/show_bug.cgi?id=552786
3276 - epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3277 - # https://bugs.gentoo.org/show_bug.cgi?id=439558
3278 - epatch "${FILESDIR}"/${PN}-1.8.7-x32.patch
3279 -
3280 - epatch_user
3281 -
3282 - cd "${BUILDDIR}" || die
3283 - eautoconf
3284 -}
3285 -
3286 -src_configure() {
3287 - cd "${BUILDDIR}" || die
3288 -
3289 - CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
3290 - AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
3291 - LD="$(tc-getLD)" \
3292 - econf \
3293 - ${myopts} \
3294 - --enable-jemalloc \
3295 - --enable-readline \
3296 - --enable-threadsafe \
3297 - --with-system-nspr \
3298 - --disable-optimize \
3299 - --disable-profile-guided-optimization \
3300 - $(use_enable debug) \
3301 - $(use_enable static-libs static) \
3302 - $(use_enable test tests)
3303 -}
3304 -
3305 -cross_make() {
3306 - emake \
3307 - CFLAGS="${BUILD_CFLAGS}" \
3308 - CXXFLAGS="${BUILD_CXXFLAGS}" \
3309 - AR="${BUILD_AR}" \
3310 - CC="${BUILD_CC}" \
3311 - CXX="${BUILD_CXX}" \
3312 - RANLIB="${BUILD_RANLIB}" \
3313 - "$@"
3314 -}
3315 -src_compile() {
3316 - cd "${BUILDDIR}" || die
3317 - if tc-is-cross-compiler; then
3318 - tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
3319 - cross_make jscpucfg host_jsoplengen host_jskwgen
3320 - cross_make -C config nsinstall
3321 - mv {,native-}jscpucfg || die
3322 - mv {,native-}host_jskwgen || die
3323 - mv {,native-}host_jsoplengen || die
3324 - mv config/{,native-}nsinstall || die
3325 - sed -i \
3326 - -e 's@./jscpucfg@./native-jscpucfg@' \
3327 - -e 's@./host_jskwgen@./native-host_jskwgen@' \
3328 - -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
3329 - Makefile || die
3330 - sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
3331 - rm -f config/host_nsinstall.o \
3332 - config/host_pathsub.o \
3333 - host_jskwgen.o \
3334 - host_jsoplengen.o || die
3335 - fi
3336 - emake
3337 -}
3338 -
3339 -src_test() {
3340 - cd "${BUILDDIR}/jsapi-tests" || die
3341 - # for bug 415791
3342 - pax-mark mr jsapi-tests
3343 - emake check
3344 -}
3345 -
3346 -src_install() {
3347 - cd "${BUILDDIR}" || die
3348 - emake DESTDIR="${D}" install
3349 - # bug 437520 , exclude js shell for small systems
3350 - if ! use minimal ; then
3351 - dobin shell/js
3352 - pax-mark m "${ED}/usr/bin/js"
3353 - fi
3354 - dodoc ../../README
3355 - dohtml README.html
3356 -
3357 - if ! use static-libs; then
3358 - # We can't actually disable building of static libraries
3359 - # They're used by the tests and in a few other places
3360 - find "${D}" -iname '*.a' -delete || die
3361 - fi
3362 -}
3363
3364 diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
3365 index 1ae283e263a..7cb19fe5087 100644
3366 --- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
3367 +++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r6.ebuild
3368 @@ -13,7 +13,9 @@ MY_P="${MY_PN}-${PV}"
3369 TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
3370 DESCRIPTION="Stand-alone JavaScript C library"
3371 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3372 -SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz"
3373 +SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
3374 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
3375 + "
3376
3377 LICENSE="NPL-1.1"
3378 SLOT="0/mozjs185"
3379 @@ -39,29 +41,29 @@ pkg_setup(){
3380
3381 src_prepare() {
3382 # https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
3383 - epatch "${FILESDIR}/${P}-fix-install-symlinks.patch"
3384 + epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
3385 # https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
3386 - epatch "${FILESDIR}/${P}-fix-ppc64.patch"
3387 + epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
3388 # https://bugs.gentoo.org/show_bug.cgi?id=400727
3389 # https://bugs.gentoo.org/show_bug.cgi?id=420471
3390 - epatch "${FILESDIR}/${P}-arm_respect_cflags-3.patch"
3391 + epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
3392 # https://bugs.gentoo.org/show_bug.cgi?id=438746
3393 - epatch "${FILESDIR}"/${PN}-1.8.7-freebsd-pthreads.patch
3394 + epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
3395 # https://bugs.gentoo.org/show_bug.cgi?id=441928
3396 - epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch
3397 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
3398 # https://bugs.gentoo.org/show_bug.cgi?id=439260
3399 - epatch "${FILESDIR}"/${P}-symbol-versions.patch
3400 + epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
3401 # https://bugs.gentoo.org/show_bug.cgi?id=441934
3402 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch
3403 - epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch
3404 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
3405 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
3406 # https://bugs.gentoo.org/show_bug.cgi?id=431560
3407 - epatch "${FILESDIR}"/${PN}-1.8.5-isfinite.patch
3408 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
3409 # https://bugs.gentoo.org/show_bug.cgi?id=552786
3410 epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3411 # https://bugs.gentoo.org/show_bug.cgi?id=439558
3412 - epatch "${FILESDIR}"/${PN}-1.8.7-x32.patch
3413 + epatch "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
3414 # https://bugs.gentoo.org/show_bug.cgi?id=582478
3415 - epatch "${FILESDIR}"/${PN}-1.8.5-gcc6.patch
3416 + epatch "${WORKDIR}"/sm0/${PN}-1.8.5-gcc6.patch
3417
3418 epatch_user
3419
3420
3421 diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
3422 index 3a77b714665..06416bed528 100644
3423 --- a/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
3424 +++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r4.ebuild
3425 @@ -1,4 +1,4 @@
3426 -# Copyright 1999-2016 Gentoo Foundation
3427 +# Copyright 1999-2017 Gentoo Foundation
3428 # Distributed under the terms of the GNU General Public License v2
3429
3430 EAPI="5"
3431 @@ -11,7 +11,8 @@ MY_PN="mozjs"
3432 MY_P="${MY_PN}${PV}"
3433 DESCRIPTION="Stand-alone JavaScript C library"
3434 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3435 -SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/js/${MY_PN}${PV}.tar.gz"
3436 +SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
3437 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
3438
3439 LICENSE="NPL-1.1"
3440 SLOT="17"
3441 @@ -42,9 +43,9 @@ pkg_setup(){
3442 }
3443
3444 src_prepare() {
3445 - epatch "${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
3446 - epatch "${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
3447 - epatch "${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
3448 + epatch "${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
3449 + epatch "${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
3450 + epatch "${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
3451 # https://bugs.gentoo.org/show_bug.cgi?id=552786
3452 epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3453
3454
3455 diff --git a/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
3456 index 24aaa1cd227..6a67fe8f8d5 100644
3457 --- a/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
3458 +++ b/dev-lang/spidermonkey/spidermonkey-17.0.0-r5.ebuild
3459 @@ -11,7 +11,8 @@ MY_PN="mozjs"
3460 MY_P="${MY_PN}${PV}"
3461 DESCRIPTION="Stand-alone JavaScript C library"
3462 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3463 -SRC_URI="http://ftp.mozilla.org/pub/mozilla.org/js/${MY_PN}${PV}.tar.gz"
3464 +SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
3465 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
3466
3467 LICENSE="NPL-1.1"
3468 SLOT="17"
3469 @@ -42,12 +43,12 @@ pkg_setup(){
3470 }
3471
3472 PATCHES=(
3473 - "${FILESDIR}"/${PN}-${SLOT}-js-config-shebang.patch
3474 - "${FILESDIR}"/${PN}-${SLOT}-ia64-mmap.patch
3475 - "${FILESDIR}"/${PN}-17.0.0-fix-file-permissions.patch
3476 - "${FILESDIR}"/${PN}-17-clang.patch
3477 + "${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
3478 + "${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
3479 + "${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
3480 + "${WORKDIR}"/sm17/${PN}-17-clang.patch
3481 "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3482 - "${FILESDIR}"/${PN}-17-fix_pointer_dereference.patch
3483 + "${WORKDIR}"/sm17/${PN}-17-fix_pointer_dereference.patch
3484 )
3485
3486 src_prepare() {
3487
3488 diff --git a/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild b/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
3489 index 9779ba987f8..3d94feba95d 100644
3490 --- a/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
3491 +++ b/dev-lang/spidermonkey/spidermonkey-24.2.0-r3.ebuild
3492 @@ -1,4 +1,4 @@
3493 -# Copyright 1999-2016 Gentoo Foundation
3494 +# Copyright 1999-2017 Gentoo Foundation
3495 # Distributed under the terms of the GNU General Public License v2
3496
3497 EAPI="5"
3498 @@ -11,7 +11,8 @@ MY_PN="mozjs"
3499 MY_P="${MY_PN}-${PV/_/.}"
3500 DESCRIPTION="Stand-alone JavaScript C library"
3501 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3502 -SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.bz2"
3503 +SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
3504 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
3505
3506 LICENSE="NPL-1.1"
3507 SLOT="24"
3508 @@ -41,9 +42,9 @@ pkg_setup(){
3509 }
3510
3511 src_prepare() {
3512 - epatch "${FILESDIR}"/${PN}-${SLOT}-system-icu.patch
3513 - epatch "${FILESDIR}"/${PN}-24.2.0-fix-file-permissions.patch
3514 - epatch "${FILESDIR}"/${PN}-${SLOT}-upward-growing-stack.patch
3515 + epatch "${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
3516 + epatch "${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
3517 + epatch "${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
3518 # https://bugs.gentoo.org/show_bug.cgi?id=552786
3519 epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3520 epatch_user
3521
3522 diff --git a/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
3523 index 1e3f7b5b040..edee003c55b 100644
3524 --- a/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
3525 +++ b/dev-lang/spidermonkey/spidermonkey-24.2.0-r4.ebuild
3526 @@ -11,7 +11,8 @@ MY_PN="mozjs"
3527 MY_P="${MY_PN}-${PV/_/.}"
3528 DESCRIPTION="Stand-alone JavaScript C library"
3529 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3530 -SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${MY_P}.tar.bz2"
3531 +SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
3532 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
3533
3534 LICENSE="NPL-1.1"
3535 SLOT="24"
3536 @@ -34,11 +35,11 @@ DEPEND="${RDEPEND}
3537 virtual/pkgconfig"
3538
3539 PATCHES=(
3540 - "${FILESDIR}"/${PN}-${SLOT}-system-icu.patch
3541 - "${FILESDIR}"/${PN}-24.2.0-fix-file-permissions.patch
3542 - "${FILESDIR}"/${PN}-${SLOT}-upward-growing-stack.patch
3543 + "${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
3544 + "${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
3545 + "${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
3546 "${FILESDIR}"/${PN}-perl-defined-array-check.patch
3547 - "${FILESDIR}"/${PN}-17-fix_pointer_dereference.patch
3548 + "${WORKDIR}"/sm24/${PN}-17-fix_pointer_dereference.patch
3549 )
3550
3551 pkg_setup(){
3552
3553 diff --git a/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild b/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
3554 index 42e2c0460c4..c55476923b0 100644
3555 --- a/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
3556 +++ b/dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
3557 @@ -9,7 +9,8 @@ MY_PN="mozjs"
3558 MY_P="${MY_PN}-${PV/_/.}"
3559 DESCRIPTION="Stand-alone JavaScript C library"
3560 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3561 -SRC_URI="https://people.mozilla.org/~sstangl/${MY_P}.tar.bz2"
3562 +SRC_URI="https://people.mozilla.org/~sstangl/${MY_P}.tar.bz2
3563 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot38-patches-01.tar.xz"
3564
3565 LICENSE="NPL-1.1"
3566 SLOT="38"
3567 @@ -36,12 +37,12 @@ pkg_setup(){
3568 }
3569
3570 src_prepare() {
3571 - eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
3572 - "${FILESDIR}"/mozjs38-1269317.patch \
3573 - "${FILESDIR}"/mozjs38-fix-tracelogger.patch \
3574 - "${FILESDIR}"/mozjs38-copy-headers.patch \
3575 - "${FILESDIR}"/mozjs38-pkg-config-version.patch \
3576 - "${FILESDIR}"/mozilla_configure_regexp_esr38.patch
3577 + eapply "${WORKDIR}"/sm38/${PN}-38-jsapi-tests.patch \
3578 + "${WORKDIR}"/sm38/mozjs38-1269317.patch \
3579 + "${WORKDIR}"/sm38/mozjs38-fix-tracelogger.patch \
3580 + "${WORKDIR}"/sm38/mozjs38-copy-headers.patch \
3581 + "${WORKDIR}"/sm38/mozjs38-pkg-config-version.patch \
3582 + "${WORKDIR}"/sm38/mozilla_configure_regexp_esr38.patch
3583
3584 eapply_user
3585
3586
3587 diff --git a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
3588 index 26f88cce97f..2602ecc5e97 100644
3589 --- a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
3590 +++ b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
3591 @@ -9,7 +9,8 @@ MY_PN="mozjs"
3592 MY_P="${MY_PN}-${PV/_/.}"
3593 DESCRIPTION="Stand-alone JavaScript C library"
3594 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
3595 -SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2"
3596 +SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2
3597 + https://dev.gentoo.org/~axs/distfiles/${PN}-slot45-patches-01.tar.xz"
3598
3599 LICENSE="NPL-1.1"
3600 SLOT="45"
3601 @@ -35,14 +36,14 @@ pkg_setup(){
3602 }
3603
3604 src_prepare() {
3605 - eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
3606 - "${FILESDIR}"/mozjs45-1266366.patch \
3607 - "${FILESDIR}"/mozjs38-pkg-config-version.patch \
3608 - "${FILESDIR}"/mozilla_configure_regexp_esr.patch \
3609 - "${FILESDIR}"/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
3610 + eapply "${WORKDIR}"/sm45/${PN}-38-jsapi-tests.patch \
3611 + "${WORKDIR}"/sm45/mozjs45-1266366.patch \
3612 + "${WORKDIR}"/sm45/mozjs38-pkg-config-version.patch \
3613 + "${WORKDIR}"/sm45/mozilla_configure_regexp_esr.patch \
3614 + "${WORKDIR}"/sm45/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
3615
3616 # apply relevant (modified) patches from gentoo's firefox-45 patchset
3617 - eapply "${FILESDIR}"/ff45
3618 + eapply "${WORKDIR}"/sm45/ff45
3619
3620 eapply_user