Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/
Date: Fri, 01 Jul 2022 07:08:09
Message-Id: 1656659164.35ef05aa45e698ef23a61f6e4a74b771b235b0c6.juippis@gentoo
1 commit: 35ef05aa45e698ef23a61f6e4a74b771b235b0c6
2 Author: Joonas Niilola <juippis <AT> gentoo <DOT> org>
3 AuthorDate: Fri Jul 1 07:06:04 2022 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Fri Jul 1 07:06:04 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35ef05aa
7
8 dev-lang/spidermonkey: security cleanup
9
10 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
11
12 dev-lang/spidermonkey/Manifest | 5 -
13 dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild | 452 ---------------------
14 dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild | 457 ----------------------
15 dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild | 452 ---------------------
16 4 files changed, 1366 deletions(-)
17
18 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
19 index 3e492b12b977..2a4c50a486f6 100644
20 --- a/dev-lang/spidermonkey/Manifest
21 +++ b/dev-lang/spidermonkey/Manifest
22 @@ -2,12 +2,7 @@ DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551
23 DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
24 DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378
25 DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a695f52c4712f3b28733648fcd7dac5a599613f4c3d2cfa169266dc62b65619b7f28c0e06d32317adb8ec0056ca79c87e9f6 SHA512 3c81dadc9bf74207c4e361605127ef6141d77700c5c54f1f9cd5ad3be13df9f73c6eec2f51d779558e4bdad1e7395c6aa8943a93415bd1786d461042bc03550a
26 -DIST firefox-91.10.0esr.source.tar.xz 380454768 BLAKE2B a28103041af99732545dcf5ff0c6ea999252f7006602b9f74c388afadb32f98927ec10fb1f5ff30029c18a0f7d26dd27584f4d129de6671d6728a49ade07b451 SHA512 8344b829d7bd86250afdd4cb582e27ed5705b3ef48aec50b9a39abc17deba86c9fd721f4667f5c2155e3d7cd1d6e1f82ff8e218ced3a16a4e06bb414ee0690f8
27 DIST firefox-91.11.0esr.source.tar.xz 384459848 BLAKE2B cff327378a1712d0dfb99e1a67bd63e958987e3147279af5f98ee9318fe91f42823bbc9afb0308638e42de789451b04ea895320a8c674cc221e0d4b0b1d80f38 SHA512 bff3a399c03bd1cdaaec0b6963b1558aa35b6338b6c02042ffd65fec0aedd344d01718692e881332f5f352c32da15ba09a20a09ee072200b47ae840bc0585a96
28 -DIST firefox-91.8.0esr.source.tar.xz 380325092 BLAKE2B 9bc470d0e8c65517d67f4075be2aece6e82af7dc89c40018359d3dd53d45d67424db8ed4614dd3dde430e08ec6ffff29f4ecc81e1990e05abd05804c6a2b5891 SHA512 edea2c7d4d3d0322091b20b623019ef041090d9f89f33c8e3140f66a54624261f278257393db70d2038154de8ee02da0bee6ecf85c281f3558338da71fc173c3
29 -DIST firefox-91.9.1esr.source.tar.xz 378762560 BLAKE2B 6a29d262396ec63718d4569f37f14f496c46530a3997e05c41c69163e65f2deb382b983cac7adbd2246be9922a644af03a927328cb424bb1e138e87f49208b5d SHA512 d432d559f2c5f4b0bc66a755db7d61585e24a727cd8d18630854b3fb8633d54baf61ed65b580345b13d52b66288aa15ca8ca5cfcde8231e88108241f0b007683
30 -DIST firefox-91esr-patches-05j.tar.xz 17116 BLAKE2B 5db6d2d3d5432369d2cfcda1a2b542d70ac18c1af7013d91984054c9658d7e3f989527c3a248de53f2e8dc51a852a46477f9ad75e98db28f50f8609fcafe547c SHA512 42080a8e28014d5f8de7ff45e0128ab71747faad7a92f0f7094686125835c168751794bd0229f77290f075502c271af0171ffae2863325d10cc6e8a853a90d3e
31 -DIST firefox-91esr-patches-07j.tar.xz 18900 BLAKE2B ace76bc00c3053e60c39186e460b0b422a24bb3393091324470045707dc18c631c41d5d4e61b67dca6dc2e881b7dcffce256f5b897766f994ad46b23df96b77a SHA512 2fca4a5fec8fb79541b9dddec5a632a9a88fca845cac15aa963ab686eb80e8e5ad23186166f97ed88327e6c5bd7bae6178b32760f26d560c0b685ef3b3f638f4
32 DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c
33 DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
34 DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0
35
36 diff --git a/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild b/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild
37 deleted file mode 100644
38 index 2fd53d058fbe..000000000000
39 --- a/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild
40 +++ /dev/null
41 @@ -1,452 +0,0 @@
42 -# Copyright 1999-2022 Gentoo Authors
43 -# Distributed under the terms of the GNU General Public License v2
44 -
45 -EAPI="8"
46 -
47 -# Patch version
48 -FIREFOX_PATCHSET="firefox-91esr-patches-07j.tar.xz"
49 -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz"
50 -
51 -LLVM_MAX_SLOT=14
52 -
53 -PYTHON_COMPAT=( python3_{8..10} )
54 -PYTHON_REQ_USE="ssl,xml(+)"
55 -
56 -WANT_AUTOCONF="2.1"
57 -
58 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
59 -
60 -MY_PN="mozjs"
61 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
62 -
63 -MY_MAJOR=$(ver_cut 1)
64 -
65 -MOZ_ESR=yes
66 -
67 -MOZ_PV=${PV}
68 -MOZ_PV_SUFFIX=
69 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
70 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
71 -
72 - # Convert the ebuild version to the upstream Mozilla version
73 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
74 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
75 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
76 -fi
77 -
78 -if [[ -n ${MOZ_ESR} ]] ; then
79 - # ESR releases have slightly different version numbers
80 - MOZ_PV="${MOZ_PV}esr"
81 -fi
82 -
83 -MOZ_PN="firefox"
84 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
85 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
86 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
87 -
88 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
89 -
90 -if [[ ${PV} == *_rc* ]] ; then
91 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
92 -fi
93 -
94 -PATCH_URIS=(
95 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
96 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
97 -)
98 -
99 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
100 - ${PATCH_URIS[@]}"
101 -
102 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
103 -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
104 -
105 -KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86"
106 -
107 -SLOT="91"
108 -LICENSE="MPL-2.0"
109 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
110 -
111 -#RESTRICT="test"
112 -RESTRICT="!test? ( test )"
113 -
114 -BDEPEND="${PYTHON_DEPS}
115 - >=virtual/rust-1.51.0
116 - virtual/pkgconfig
117 - test? (
118 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
119 - )
120 - || (
121 - (
122 - sys-devel/llvm:14
123 - clang? (
124 - sys-devel/clang:14
125 - lto? ( =sys-devel/lld-14* )
126 - )
127 - )
128 - (
129 - sys-devel/llvm:13
130 - clang? (
131 - sys-devel/clang:13
132 - lto? ( =sys-devel/lld-13* )
133 - )
134 - )
135 - (
136 - sys-devel/llvm:12
137 - clang? (
138 - sys-devel/clang:12
139 - lto? ( =sys-devel/lld-12* )
140 - )
141 - )
142 - )"
143 -DEPEND=">=dev-libs/icu-69.1:=
144 - dev-libs/nspr
145 - sys-libs/readline:0=
146 - sys-libs/zlib"
147 -RDEPEND="${DEPEND}"
148 -
149 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
150 -
151 -llvm_check_deps() {
152 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
153 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
154 - return 1
155 - fi
156 -
157 - if use clang ; then
158 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
159 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
160 - return 1
161 - fi
162 -
163 - if use lto ; then
164 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
165 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
166 - return 1
167 - fi
168 - fi
169 - fi
170 -
171 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
172 -}
173 -
174 -python_check_deps() {
175 - if use test ; then
176 - has_version "dev-python/six[${PYTHON_USEDEP}]"
177 - fi
178 -}
179 -
180 -pkg_pretend() {
181 - if use test ; then
182 - CHECKREQS_DISK_BUILD="7600M"
183 - else
184 - CHECKREQS_DISK_BUILD="6400M"
185 - fi
186 -
187 - check-reqs_pkg_pretend
188 -}
189 -
190 -pkg_setup() {
191 - if [[ ${MERGE_TYPE} != binary ]] ; then
192 - if use test ; then
193 - CHECKREQS_DISK_BUILD="7600M"
194 - else
195 - CHECKREQS_DISK_BUILD="6400M"
196 - fi
197 -
198 - check-reqs_pkg_setup
199 -
200 - llvm_pkg_setup
201 -
202 - if use clang && use lto ; then
203 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
204 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
205 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
206 -
207 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
208 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
209 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
210 -
211 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
212 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
213 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
214 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
215 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
216 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
217 - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
218 - eerror " llvm/clang/lld/rust chain depending on your @world updates)"
219 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
220 - fi
221 - fi
222 -
223 - python-any-r1_pkg_setup
224 -
225 - # Build system is using /proc/self/oom_score_adj, bug #604394
226 - addpredict /proc/self/oom_score_adj
227 -
228 - if ! mountpoint -q /dev/shm ; then
229 - # If /dev/shm is not available, configure is known to fail with
230 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
231 - ewarn "/dev/shm is not mounted -- expect build failures!"
232 - fi
233 -
234 - # Ensure we use C locale when building, bug #746215
235 - export LC_ALL=C
236 - fi
237 -}
238 -
239 -src_prepare() {
240 - pushd ../.. &>/dev/null || die
241 -
242 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
243 -
244 - eapply "${WORKDIR}"/firefox-patches
245 - eapply "${WORKDIR}"/spidermonkey-patches
246 -
247 - default
248 -
249 - # Make cargo respect MAKEOPTS
250 - export CARGO_BUILD_JOBS="$(makeopts_jobs)"
251 -
252 - # sed-in toolchain prefix
253 - sed -i \
254 - -e "s/objdump/${CHOST}-objdump/" \
255 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
256 - || die "sed failed to set toolchain prefix"
257 -
258 - # use prefix shell in wrapper linker scripts, bug #789660
259 - hprefixify "${S}"/../../build/cargo-{,host-}linker
260 -
261 - einfo "Removing pre-built binaries ..."
262 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
263 -
264 - MOZJS_BUILDDIR="${WORKDIR}/build"
265 - mkdir "${MOZJS_BUILDDIR}" || die
266 -
267 - popd &>/dev/null || die
268 - eautoconf
269 -}
270 -
271 -src_configure() {
272 - # Show flags set at the beginning
273 - einfo "Current CFLAGS: ${CFLAGS}"
274 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
275 - einfo "Current LDFLAGS: ${LDFLAGS}"
276 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
277 -
278 - local have_switched_compiler=
279 - if use clang && ! tc-is-clang ; then
280 - # Force clang
281 - einfo "Enforcing the use of clang due to USE=clang ..."
282 - have_switched_compiler=yes
283 - AR=llvm-ar
284 - CC=${CHOST}-clang
285 - CXX=${CHOST}-clang++
286 - NM=llvm-nm
287 - RANLIB=llvm-ranlib
288 - elif ! use clang && ! tc-is-gcc ; then
289 - # Force gcc
290 - have_switched_compiler=yes
291 - einfo "Enforcing the use of gcc due to USE=-clang ..."
292 - AR=gcc-ar
293 - CC=${CHOST}-gcc
294 - CXX=${CHOST}-g++
295 - NM=gcc-nm
296 - RANLIB=gcc-ranlib
297 - fi
298 -
299 - if [[ -n "${have_switched_compiler}" ]] ; then
300 - # Because we switched active compiler we have to ensure
301 - # that no unsupported flags are set
302 - strip-unsupported-flags
303 - fi
304 -
305 - # Ensure we use correct toolchain
306 - export HOST_CC="$(tc-getBUILD_CC)"
307 - export HOST_CXX="$(tc-getBUILD_CXX)"
308 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
309 -
310 - cd "${MOZJS_BUILDDIR}" || die
311 -
312 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
313 - export SHELL="${EPREFIX}/bin/bash"
314 -
315 - local -a myeconfargs=(
316 - --host="${CBUILD:-${CHOST}}"
317 - --target="${CHOST}"
318 - --disable-ctype
319 - --disable-jemalloc
320 - --disable-optimize
321 - --disable-smoosh
322 - --disable-strip
323 - --enable-readline
324 - --enable-release
325 - --enable-shared-js
326 - --with-intl-api
327 - --with-system-icu
328 - --with-system-nspr
329 - --with-system-zlib
330 - --with-toolchain-prefix="${CHOST}-"
331 - $(use_enable debug)
332 - $(use_enable jit)
333 - $(use_enable test tests)
334 - )
335 -
336 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
337 - myeconfargs+=( --enable-rust-simd )
338 - fi
339 -
340 - # Modifications to better support ARM, bug 717344
341 - if use cpu_flags_arm_neon ; then
342 - myeconfargs+=( --with-fpu=neon )
343 -
344 - if ! tc-is-clang ; then
345 - # thumb options aren't supported when using clang, bug 666966
346 - myeconfargs+=( --with-thumb=yes )
347 - myeconfargs+=( --with-thumb-interwork=no )
348 - fi
349 - fi
350 -
351 - # Tell build system that we want to use LTO
352 - if use lto ; then
353 - if use clang ; then
354 - myeconfargs+=( --enable-linker=lld )
355 - myeconfargs+=( --enable-lto=cross )
356 - else
357 - myeconfargs+=( --enable-linker=bfd )
358 - myeconfargs+=( --enable-lto )
359 - fi
360 - fi
361 -
362 - # LTO flag was handled via configure
363 - filter-flags '-flto*'
364 -
365 - if tc-is-gcc ; then
366 - if ver_test $(gcc-fullversion) -ge 10 ; then
367 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
368 - append-cxxflags -fno-tree-loop-vectorize
369 - fi
370 - fi
371 -
372 - export MACH_USE_SYSTEM_PYTHON=1
373 - export PIP_NO_CACHE_DIR=off
374 -
375 - # Show flags we will use
376 - einfo "Build CFLAGS: ${CFLAGS}"
377 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
378 - einfo "Build LDFLAGS: ${LDFLAGS}"
379 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
380 -
381 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
382 - # and other minor arches
383 - ECONF_SOURCE="${S}" \
384 - econf \
385 - ${myeconfargs[@]} \
386 - XARGS="${EPREFIX}/usr/bin/xargs"
387 -}
388 -
389 -src_compile() {
390 - cd "${MOZJS_BUILDDIR}" || die
391 - default
392 -}
393 -
394 -src_test() {
395 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
396 - einfo "Smoke-test successful, continuing with full test suite"
397 - else
398 - die "Smoke-test failed: did interpreter initialization fail?"
399 - fi
400 -
401 - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die
402 -
403 - # bgo #827960
404 - if use ppc; then
405 - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list
406 - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list
407 - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
408 - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list
409 - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
410 - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list
411 - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
412 - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list
413 - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
414 - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list
415 - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
416 - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list
417 - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
418 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list
419 - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list
420 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list
421 - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list
422 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list
423 - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
424 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list
425 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list
426 - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list
427 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list
428 - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list
429 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list
430 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list
431 - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list
432 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list
433 - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list
434 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list
435 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list
436 - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
437 - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list
438 - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
439 - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list
440 - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list
441 - fi
442 -
443 - if use x86 ; then
444 - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
445 - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list
446 - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
447 - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
448 - fi
449 -
450 - if [[ $(tc-endian) == "big" ]] ; then
451 - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
452 - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
453 - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
454 - fi
455 -
456 - ${EPYTHON} \
457 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
458 - --exclude-file="${T}"/known_failures.list \
459 - "${MOZJS_BUILDDIR}"/js/src/js \
460 - || die
461 -
462 - if use jit ; then
463 - ${EPYTHON} \
464 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
465 - --exclude-file="${T}"/known_failures.list \
466 - "${MOZJS_BUILDDIR}"/js/src/js basic \
467 - || die
468 - fi
469 -}
470 -
471 -src_install() {
472 - cd "${MOZJS_BUILDDIR}" || die
473 - default
474 -
475 - # fix soname links
476 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
477 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
478 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
479 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
480 - popd &>/dev/null || die
481 -
482 - # remove unneeded files
483 - rm \
484 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
485 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
486 - || die
487 -
488 - # fix permissions
489 - chmod -x \
490 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
491 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
492 - || die
493 -}
494
495 diff --git a/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild b/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild
496 deleted file mode 100644
497 index 0bac2948ede3..000000000000
498 --- a/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild
499 +++ /dev/null
500 @@ -1,457 +0,0 @@
501 -# Copyright 1999-2022 Gentoo Authors
502 -# Distributed under the terms of the GNU General Public License v2
503 -
504 -EAPI="7"
505 -
506 -# Patch version
507 -FIREFOX_PATCHSET="firefox-91esr-patches-05j.tar.xz"
508 -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz"
509 -
510 -LLVM_MAX_SLOT=14
511 -
512 -PYTHON_COMPAT=( python3_{8..10} )
513 -PYTHON_REQ_USE="ssl,xml(+)"
514 -
515 -WANT_AUTOCONF="2.1"
516 -
517 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
518 -
519 -MY_PN="mozjs"
520 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
521 -
522 -MY_MAJOR=$(ver_cut 1)
523 -
524 -MOZ_ESR=yes
525 -
526 -MOZ_PV=${PV}
527 -MOZ_PV_SUFFIX=
528 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
529 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
530 -
531 - # Convert the ebuild version to the upstream Mozilla version
532 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
533 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
534 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
535 -fi
536 -
537 -if [[ -n ${MOZ_ESR} ]] ; then
538 - # ESR releases have slightly different version numbers
539 - MOZ_PV="${MOZ_PV}esr"
540 -fi
541 -
542 -MOZ_PN="firefox"
543 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
544 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
545 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
546 -
547 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
548 -
549 -if [[ ${PV} == *_rc* ]] ; then
550 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
551 -fi
552 -
553 -PATCH_URIS=(
554 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
555 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
556 -)
557 -
558 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
559 - ${PATCH_URIS[@]}"
560 -
561 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
562 -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
563 -
564 -KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv x86"
565 -
566 -SLOT="91"
567 -LICENSE="MPL-2.0"
568 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
569 -
570 -#RESTRICT="test"
571 -RESTRICT="!test? ( test )"
572 -
573 -BDEPEND="${PYTHON_DEPS}
574 - >=virtual/rust-1.51.0
575 - virtual/pkgconfig
576 - test? (
577 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
578 - )
579 - || (
580 - (
581 - sys-devel/llvm:14
582 - clang? (
583 - sys-devel/clang:14
584 - lto? ( =sys-devel/lld-14* )
585 - )
586 - )
587 - (
588 - sys-devel/llvm:13
589 - clang? (
590 - sys-devel/clang:13
591 - lto? ( =sys-devel/lld-13* )
592 - )
593 - )
594 - (
595 - sys-devel/llvm:12
596 - clang? (
597 - sys-devel/clang:12
598 - lto? ( =sys-devel/lld-12* )
599 - )
600 - )
601 - (
602 - sys-devel/llvm:11
603 - clang? (
604 - sys-devel/clang:11
605 - lto? ( =sys-devel/lld-11* )
606 - )
607 - )
608 - )"
609 -DEPEND=">=dev-libs/icu-69.1:=
610 - dev-libs/nspr
611 - sys-libs/readline:0=
612 - sys-libs/zlib"
613 -RDEPEND="${DEPEND}"
614 -
615 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
616 -
617 -llvm_check_deps() {
618 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
619 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
620 - return 1
621 - fi
622 -
623 - if use clang ; then
624 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
625 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
626 - return 1
627 - fi
628 -
629 - if use lto ; then
630 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
631 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
632 - return 1
633 - fi
634 - fi
635 - fi
636 -
637 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
638 -}
639 -
640 -python_check_deps() {
641 - if use test ; then
642 - has_version "dev-python/six[${PYTHON_USEDEP}]"
643 - fi
644 -}
645 -
646 -pkg_pretend() {
647 - if use test ; then
648 - CHECKREQS_DISK_BUILD="7600M"
649 - else
650 - CHECKREQS_DISK_BUILD="6400M"
651 - fi
652 -
653 - check-reqs_pkg_pretend
654 -}
655 -
656 -pkg_setup() {
657 - if [[ ${MERGE_TYPE} != binary ]] ; then
658 - if use test ; then
659 - CHECKREQS_DISK_BUILD="7600M"
660 - else
661 - CHECKREQS_DISK_BUILD="6400M"
662 - fi
663 -
664 - check-reqs_pkg_setup
665 -
666 - llvm_pkg_setup
667 -
668 - if use clang && use lto ; then
669 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
670 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
671 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
672 -
673 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
674 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
675 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
676 -
677 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
678 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
679 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
680 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
681 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
682 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
683 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
684 - fi
685 - fi
686 -
687 - python-any-r1_pkg_setup
688 -
689 - # Build system is using /proc/self/oom_score_adj, bug #604394
690 - addpredict /proc/self/oom_score_adj
691 -
692 - if ! mountpoint -q /dev/shm ; then
693 - # If /dev/shm is not available, configure is known to fail with
694 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
695 - ewarn "/dev/shm is not mounted -- expect build failures!"
696 - fi
697 -
698 - # Ensure we use C locale when building, bug #746215
699 - export LC_ALL=C
700 - fi
701 -}
702 -
703 -src_prepare() {
704 - pushd ../.. &>/dev/null || die
705 -
706 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
707 -
708 - eapply "${WORKDIR}"/firefox-patches
709 - eapply "${WORKDIR}"/spidermonkey-patches
710 -
711 - default
712 -
713 - # Make cargo respect MAKEOPTS
714 - export CARGO_BUILD_JOBS="$(makeopts_jobs)"
715 -
716 - # sed-in toolchain prefix
717 - sed -i \
718 - -e "s/objdump/${CHOST}-objdump/" \
719 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
720 - || die "sed failed to set toolchain prefix"
721 -
722 - # use prefix shell in wrapper linker scripts, bug #789660
723 - hprefixify "${S}"/../../build/cargo-{,host-}linker
724 -
725 - einfo "Removing pre-built binaries ..."
726 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
727 -
728 - MOZJS_BUILDDIR="${WORKDIR}/build"
729 - mkdir "${MOZJS_BUILDDIR}" || die
730 -
731 - popd &>/dev/null || die
732 - eautoconf
733 -}
734 -
735 -src_configure() {
736 - # Show flags set at the beginning
737 - einfo "Current CFLAGS: ${CFLAGS}"
738 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
739 - einfo "Current LDFLAGS: ${LDFLAGS}"
740 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
741 -
742 - local have_switched_compiler=
743 - if use clang && ! tc-is-clang ; then
744 - # Force clang
745 - einfo "Enforcing the use of clang due to USE=clang ..."
746 - have_switched_compiler=yes
747 - AR=llvm-ar
748 - CC=${CHOST}-clang
749 - CXX=${CHOST}-clang++
750 - NM=llvm-nm
751 - RANLIB=llvm-ranlib
752 - elif ! use clang && ! tc-is-gcc ; then
753 - # Force gcc
754 - have_switched_compiler=yes
755 - einfo "Enforcing the use of gcc due to USE=-clang ..."
756 - AR=gcc-ar
757 - CC=${CHOST}-gcc
758 - CXX=${CHOST}-g++
759 - NM=gcc-nm
760 - RANLIB=gcc-ranlib
761 - fi
762 -
763 - if [[ -n "${have_switched_compiler}" ]] ; then
764 - # Because we switched active compiler we have to ensure
765 - # that no unsupported flags are set
766 - strip-unsupported-flags
767 - fi
768 -
769 - # Ensure we use correct toolchain
770 - export HOST_CC="$(tc-getBUILD_CC)"
771 - export HOST_CXX="$(tc-getBUILD_CXX)"
772 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
773 -
774 - cd "${MOZJS_BUILDDIR}" || die
775 -
776 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
777 - export SHELL="${EPREFIX}/bin/bash"
778 -
779 - local -a myeconfargs=(
780 - --host="${CBUILD:-${CHOST}}"
781 - --target="${CHOST}"
782 - --disable-ctype
783 - --disable-jemalloc
784 - --disable-optimize
785 - --disable-smoosh
786 - --disable-strip
787 - --enable-readline
788 - --enable-release
789 - --enable-shared-js
790 - --with-intl-api
791 - --with-system-icu
792 - --with-system-nspr
793 - --with-system-zlib
794 - --with-toolchain-prefix="${CHOST}-"
795 - $(use_enable debug)
796 - $(use_enable jit)
797 - $(use_enable test tests)
798 - )
799 -
800 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
801 - myeconfargs+=( --enable-rust-simd )
802 - fi
803 -
804 - # Modifications to better support ARM, bug 717344
805 - if use cpu_flags_arm_neon ; then
806 - myeconfargs+=( --with-fpu=neon )
807 -
808 - if ! tc-is-clang ; then
809 - # thumb options aren't supported when using clang, bug 666966
810 - myeconfargs+=( --with-thumb=yes )
811 - myeconfargs+=( --with-thumb-interwork=no )
812 - fi
813 - fi
814 -
815 - # Tell build system that we want to use LTO
816 - if use lto ; then
817 - if use clang ; then
818 - myeconfargs+=( --enable-linker=lld )
819 - myeconfargs+=( --enable-lto=cross )
820 - else
821 - myeconfargs+=( --enable-linker=bfd )
822 - myeconfargs+=( --enable-lto )
823 - fi
824 - fi
825 -
826 - # LTO flag was handled via configure
827 - filter-flags '-flto*'
828 -
829 - if tc-is-gcc ; then
830 - if ver_test $(gcc-fullversion) -ge 10 ; then
831 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
832 - append-cxxflags -fno-tree-loop-vectorize
833 - fi
834 - fi
835 -
836 - export MACH_USE_SYSTEM_PYTHON=1
837 - export PIP_NO_CACHE_DIR=off
838 -
839 - # Show flags we will use
840 - einfo "Build CFLAGS: ${CFLAGS}"
841 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
842 - einfo "Build LDFLAGS: ${LDFLAGS}"
843 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
844 -
845 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
846 - # and other minor arches
847 - ECONF_SOURCE="${S}" \
848 - econf \
849 - ${myeconfargs[@]} \
850 - XARGS="${EPREFIX}/usr/bin/xargs"
851 -}
852 -
853 -src_compile() {
854 - cd "${MOZJS_BUILDDIR}" || die
855 - default
856 -}
857 -
858 -src_test() {
859 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
860 - einfo "Smoke-test successful, continuing with full test suite"
861 - else
862 - die "Smoke-test failed: did interpreter initialization fail?"
863 - fi
864 -
865 - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die
866 -
867 - # bgo #827960
868 - if use ppc; then
869 - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list
870 - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list
871 - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
872 - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list
873 - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
874 - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list
875 - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
876 - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list
877 - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
878 - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list
879 - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
880 - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list
881 - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
882 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list
883 - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list
884 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list
885 - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list
886 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list
887 - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
888 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list
889 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list
890 - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list
891 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list
892 - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list
893 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list
894 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list
895 - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list
896 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list
897 - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list
898 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list
899 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list
900 - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
901 - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list
902 - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
903 - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list
904 - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list
905 - fi
906 -
907 - if use x86 ; then
908 - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
909 - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list
910 - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
911 - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
912 - fi
913 -
914 - if [[ $(tc-endian) == "big" ]] ; then
915 - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
916 - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
917 - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
918 - fi
919 -
920 - ${EPYTHON} \
921 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
922 - --exclude-file="${T}"/known_failures.list \
923 - "${MOZJS_BUILDDIR}"/js/src/js \
924 - || die
925 -
926 - if use jit ; then
927 - ${EPYTHON} \
928 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
929 - --exclude-file="${T}"/known_failures.list \
930 - "${MOZJS_BUILDDIR}"/js/src/js basic \
931 - || die
932 - fi
933 -}
934 -
935 -src_install() {
936 - cd "${MOZJS_BUILDDIR}" || die
937 - default
938 -
939 - # fix soname links
940 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
941 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
942 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
943 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
944 - popd &>/dev/null || die
945 -
946 - # remove unneeded files
947 - rm \
948 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
949 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
950 - || die
951 -
952 - # fix permissions
953 - chmod -x \
954 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
955 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
956 - || die
957 -}
958
959 diff --git a/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild
960 deleted file mode 100644
961 index 4f0988ba35ec..000000000000
962 --- a/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild
963 +++ /dev/null
964 @@ -1,452 +0,0 @@
965 -# Copyright 1999-2022 Gentoo Authors
966 -# Distributed under the terms of the GNU General Public License v2
967 -
968 -EAPI="8"
969 -
970 -# Patch version
971 -FIREFOX_PATCHSET="firefox-91esr-patches-05j.tar.xz"
972 -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz"
973 -
974 -LLVM_MAX_SLOT=14
975 -
976 -PYTHON_COMPAT=( python3_{8..10} )
977 -PYTHON_REQ_USE="ssl,xml(+)"
978 -
979 -WANT_AUTOCONF="2.1"
980 -
981 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
982 -
983 -MY_PN="mozjs"
984 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
985 -
986 -MY_MAJOR=$(ver_cut 1)
987 -
988 -MOZ_ESR=yes
989 -
990 -MOZ_PV=${PV}
991 -MOZ_PV_SUFFIX=
992 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
993 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
994 -
995 - # Convert the ebuild version to the upstream Mozilla version
996 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
997 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
998 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
999 -fi
1000 -
1001 -if [[ -n ${MOZ_ESR} ]] ; then
1002 - # ESR releases have slightly different version numbers
1003 - MOZ_PV="${MOZ_PV}esr"
1004 -fi
1005 -
1006 -MOZ_PN="firefox"
1007 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
1008 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
1009 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
1010 -
1011 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
1012 -
1013 -if [[ ${PV} == *_rc* ]] ; then
1014 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
1015 -fi
1016 -
1017 -PATCH_URIS=(
1018 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
1019 - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
1020 -)
1021 -
1022 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
1023 - ${PATCH_URIS[@]}"
1024 -
1025 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
1026 -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
1027 -
1028 -KEYWORDS="amd64 ~arm arm64 ~mips ~ppc ppc64 ~riscv x86"
1029 -
1030 -SLOT="91"
1031 -LICENSE="MPL-2.0"
1032 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
1033 -
1034 -#RESTRICT="test"
1035 -RESTRICT="!test? ( test )"
1036 -
1037 -BDEPEND="${PYTHON_DEPS}
1038 - >=virtual/rust-1.51.0
1039 - virtual/pkgconfig
1040 - test? (
1041 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
1042 - )
1043 - || (
1044 - (
1045 - sys-devel/llvm:14
1046 - clang? (
1047 - sys-devel/clang:14
1048 - lto? ( =sys-devel/lld-14* )
1049 - )
1050 - )
1051 - (
1052 - sys-devel/llvm:13
1053 - clang? (
1054 - sys-devel/clang:13
1055 - lto? ( =sys-devel/lld-13* )
1056 - )
1057 - )
1058 - (
1059 - sys-devel/llvm:12
1060 - clang? (
1061 - sys-devel/clang:12
1062 - lto? ( =sys-devel/lld-12* )
1063 - )
1064 - )
1065 - )"
1066 -DEPEND=">=dev-libs/icu-69.1:=
1067 - dev-libs/nspr
1068 - sys-libs/readline:0=
1069 - sys-libs/zlib"
1070 -RDEPEND="${DEPEND}"
1071 -
1072 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
1073 -
1074 -llvm_check_deps() {
1075 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
1076 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1077 - return 1
1078 - fi
1079 -
1080 - if use clang ; then
1081 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
1082 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1083 - return 1
1084 - fi
1085 -
1086 - if use lto ; then
1087 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
1088 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1089 - return 1
1090 - fi
1091 - fi
1092 - fi
1093 -
1094 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
1095 -}
1096 -
1097 -python_check_deps() {
1098 - if use test ; then
1099 - has_version "dev-python/six[${PYTHON_USEDEP}]"
1100 - fi
1101 -}
1102 -
1103 -pkg_pretend() {
1104 - if use test ; then
1105 - CHECKREQS_DISK_BUILD="7600M"
1106 - else
1107 - CHECKREQS_DISK_BUILD="6400M"
1108 - fi
1109 -
1110 - check-reqs_pkg_pretend
1111 -}
1112 -
1113 -pkg_setup() {
1114 - if [[ ${MERGE_TYPE} != binary ]] ; then
1115 - if use test ; then
1116 - CHECKREQS_DISK_BUILD="7600M"
1117 - else
1118 - CHECKREQS_DISK_BUILD="6400M"
1119 - fi
1120 -
1121 - check-reqs_pkg_setup
1122 -
1123 - llvm_pkg_setup
1124 -
1125 - if use clang && use lto ; then
1126 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
1127 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
1128 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
1129 -
1130 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
1131 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
1132 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
1133 -
1134 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
1135 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
1136 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
1137 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
1138 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
1139 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
1140 - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
1141 - eerror " llvm/clang/lld/rust chain depending on your @world updates)"
1142 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
1143 - fi
1144 - fi
1145 -
1146 - python-any-r1_pkg_setup
1147 -
1148 - # Build system is using /proc/self/oom_score_adj, bug #604394
1149 - addpredict /proc/self/oom_score_adj
1150 -
1151 - if ! mountpoint -q /dev/shm ; then
1152 - # If /dev/shm is not available, configure is known to fail with
1153 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
1154 - ewarn "/dev/shm is not mounted -- expect build failures!"
1155 - fi
1156 -
1157 - # Ensure we use C locale when building, bug #746215
1158 - export LC_ALL=C
1159 - fi
1160 -}
1161 -
1162 -src_prepare() {
1163 - pushd ../.. &>/dev/null || die
1164 -
1165 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
1166 -
1167 - eapply "${WORKDIR}"/firefox-patches
1168 - eapply "${WORKDIR}"/spidermonkey-patches
1169 -
1170 - default
1171 -
1172 - # Make cargo respect MAKEOPTS
1173 - export CARGO_BUILD_JOBS="$(makeopts_jobs)"
1174 -
1175 - # sed-in toolchain prefix
1176 - sed -i \
1177 - -e "s/objdump/${CHOST}-objdump/" \
1178 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
1179 - || die "sed failed to set toolchain prefix"
1180 -
1181 - # use prefix shell in wrapper linker scripts, bug #789660
1182 - hprefixify "${S}"/../../build/cargo-{,host-}linker
1183 -
1184 - einfo "Removing pre-built binaries ..."
1185 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
1186 -
1187 - MOZJS_BUILDDIR="${WORKDIR}/build"
1188 - mkdir "${MOZJS_BUILDDIR}" || die
1189 -
1190 - popd &>/dev/null || die
1191 - eautoconf
1192 -}
1193 -
1194 -src_configure() {
1195 - # Show flags set at the beginning
1196 - einfo "Current CFLAGS: ${CFLAGS}"
1197 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
1198 - einfo "Current LDFLAGS: ${LDFLAGS}"
1199 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
1200 -
1201 - local have_switched_compiler=
1202 - if use clang && ! tc-is-clang ; then
1203 - # Force clang
1204 - einfo "Enforcing the use of clang due to USE=clang ..."
1205 - have_switched_compiler=yes
1206 - AR=llvm-ar
1207 - CC=${CHOST}-clang
1208 - CXX=${CHOST}-clang++
1209 - NM=llvm-nm
1210 - RANLIB=llvm-ranlib
1211 - elif ! use clang && ! tc-is-gcc ; then
1212 - # Force gcc
1213 - have_switched_compiler=yes
1214 - einfo "Enforcing the use of gcc due to USE=-clang ..."
1215 - AR=gcc-ar
1216 - CC=${CHOST}-gcc
1217 - CXX=${CHOST}-g++
1218 - NM=gcc-nm
1219 - RANLIB=gcc-ranlib
1220 - fi
1221 -
1222 - if [[ -n "${have_switched_compiler}" ]] ; then
1223 - # Because we switched active compiler we have to ensure
1224 - # that no unsupported flags are set
1225 - strip-unsupported-flags
1226 - fi
1227 -
1228 - # Ensure we use correct toolchain
1229 - export HOST_CC="$(tc-getBUILD_CC)"
1230 - export HOST_CXX="$(tc-getBUILD_CXX)"
1231 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
1232 -
1233 - cd "${MOZJS_BUILDDIR}" || die
1234 -
1235 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
1236 - export SHELL="${EPREFIX}/bin/bash"
1237 -
1238 - local -a myeconfargs=(
1239 - --host="${CBUILD:-${CHOST}}"
1240 - --target="${CHOST}"
1241 - --disable-ctype
1242 - --disable-jemalloc
1243 - --disable-optimize
1244 - --disable-smoosh
1245 - --disable-strip
1246 - --enable-readline
1247 - --enable-release
1248 - --enable-shared-js
1249 - --with-intl-api
1250 - --with-system-icu
1251 - --with-system-nspr
1252 - --with-system-zlib
1253 - --with-toolchain-prefix="${CHOST}-"
1254 - $(use_enable debug)
1255 - $(use_enable jit)
1256 - $(use_enable test tests)
1257 - )
1258 -
1259 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
1260 - myeconfargs+=( --enable-rust-simd )
1261 - fi
1262 -
1263 - # Modifications to better support ARM, bug 717344
1264 - if use cpu_flags_arm_neon ; then
1265 - myeconfargs+=( --with-fpu=neon )
1266 -
1267 - if ! tc-is-clang ; then
1268 - # thumb options aren't supported when using clang, bug 666966
1269 - myeconfargs+=( --with-thumb=yes )
1270 - myeconfargs+=( --with-thumb-interwork=no )
1271 - fi
1272 - fi
1273 -
1274 - # Tell build system that we want to use LTO
1275 - if use lto ; then
1276 - if use clang ; then
1277 - myeconfargs+=( --enable-linker=lld )
1278 - myeconfargs+=( --enable-lto=cross )
1279 - else
1280 - myeconfargs+=( --enable-linker=bfd )
1281 - myeconfargs+=( --enable-lto )
1282 - fi
1283 - fi
1284 -
1285 - # LTO flag was handled via configure
1286 - filter-flags '-flto*'
1287 -
1288 - if tc-is-gcc ; then
1289 - if ver_test $(gcc-fullversion) -ge 10 ; then
1290 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1291 - append-cxxflags -fno-tree-loop-vectorize
1292 - fi
1293 - fi
1294 -
1295 - export MACH_USE_SYSTEM_PYTHON=1
1296 - export PIP_NO_CACHE_DIR=off
1297 -
1298 - # Show flags we will use
1299 - einfo "Build CFLAGS: ${CFLAGS}"
1300 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
1301 - einfo "Build LDFLAGS: ${LDFLAGS}"
1302 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
1303 -
1304 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
1305 - # and other minor arches
1306 - ECONF_SOURCE="${S}" \
1307 - econf \
1308 - ${myeconfargs[@]} \
1309 - XARGS="${EPREFIX}/usr/bin/xargs"
1310 -}
1311 -
1312 -src_compile() {
1313 - cd "${MOZJS_BUILDDIR}" || die
1314 - default
1315 -}
1316 -
1317 -src_test() {
1318 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
1319 - einfo "Smoke-test successful, continuing with full test suite"
1320 - else
1321 - die "Smoke-test failed: did interpreter initialization fail?"
1322 - fi
1323 -
1324 - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die
1325 -
1326 - # bgo #827960
1327 - if use ppc; then
1328 - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list
1329 - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list
1330 - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1331 - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list
1332 - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1333 - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list
1334 - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1335 - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list
1336 - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1337 - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list
1338 - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1339 - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list
1340 - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1341 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list
1342 - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list
1343 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list
1344 - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list
1345 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list
1346 - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1347 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list
1348 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list
1349 - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list
1350 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list
1351 - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list
1352 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list
1353 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list
1354 - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list
1355 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list
1356 - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list
1357 - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list
1358 - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list
1359 - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1360 - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list
1361 - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list
1362 - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list
1363 - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list
1364 - fi
1365 -
1366 - if use x86 ; then
1367 - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
1368 - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list
1369 - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
1370 - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
1371 - fi
1372 -
1373 - if [[ $(tc-endian) == "big" ]] ; then
1374 - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
1375 - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
1376 - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
1377 - fi
1378 -
1379 - ${EPYTHON} \
1380 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1381 - --exclude-file="${T}"/known_failures.list \
1382 - "${MOZJS_BUILDDIR}"/js/src/js \
1383 - || die
1384 -
1385 - if use jit ; then
1386 - ${EPYTHON} \
1387 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1388 - --exclude-file="${T}"/known_failures.list \
1389 - "${MOZJS_BUILDDIR}"/js/src/js basic \
1390 - || die
1391 - fi
1392 -}
1393 -
1394 -src_install() {
1395 - cd "${MOZJS_BUILDDIR}" || die
1396 - default
1397 -
1398 - # fix soname links
1399 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
1400 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
1401 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
1402 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
1403 - popd &>/dev/null || die
1404 -
1405 - # remove unneeded files
1406 - rm \
1407 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
1408 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
1409 - || die
1410 -
1411 - # fix permissions
1412 - chmod -x \
1413 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
1414 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
1415 - || die
1416 -}