Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/spidermonkey/
Date: Wed, 29 Dec 2021 17:27:43
Message-Id: 1640798771.e9df07cfae192b06d332c8bc16103224d73bfbb9.mattst88@gentoo
1 commit: e9df07cfae192b06d332c8bc16103224d73bfbb9
2 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
3 AuthorDate: Wed Dec 29 17:26:11 2021 +0000
4 Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
5 CommitDate: Wed Dec 29 17:26:11 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9df07cf
7
8 dev-lang/spidermonkey: Drop old versions
9
10 Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
11
12 dev-lang/spidermonkey/Manifest | 10 -
13 dev-lang/spidermonkey/spidermonkey-78.10.1.ebuild | 454 ----------------------
14 dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild | 454 ----------------------
15 dev-lang/spidermonkey/spidermonkey-78.12.0.ebuild | 454 ----------------------
16 dev-lang/spidermonkey/spidermonkey-78.13.0.ebuild | 454 ----------------------
17 dev-lang/spidermonkey/spidermonkey-78.14.0.ebuild | 454 ----------------------
18 6 files changed, 2280 deletions(-)
19
20 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
21 index 97782a8de472..8163aaf96444 100644
22 --- a/dev-lang/spidermonkey/Manifest
23 +++ b/dev-lang/spidermonkey/Manifest
24 @@ -1,16 +1,6 @@
25 DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
26 DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
27 -DIST firefox-78.10.1esr.source.tar.xz 334444960 BLAKE2B 76f9bae7f9fddbf3ab14293d1ec9e51b173961d0d5e0e1ef98b65328294f520369b89fb300a91d9f502b93215a15c228925a469b7b14ec576c9a9be874a6561a SHA512 a22773d9b3f0dca253805257f358a906769d23f15115e3a8851024f701e27dee45f056f7d34ebf1fcde0a3f91ec299639c2a12556e938a232cdea9e59835fde1
28 -DIST firefox-78.11.0esr.source.tar.xz 333002576 BLAKE2B a8268886f86afb41b86d227f8a8f642674ea9c0a85365acb517c6997099dbddad9779efa772cce645da6443a78d6e94c89a750152386f8dff7bbbf31bf5df129 SHA512 d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4
29 -DIST firefox-78.12.0esr.source.tar.xz 333737488 BLAKE2B 775a55511a48f4210807d2648833bca6f95d9f4cd48b5d0de8cf0bf2609590c1615fca7ff855ae3643a25466d131e15dc293e6a57aa05e1d91d2cf819b0b89ca SHA512 646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a
30 -DIST firefox-78.13.0esr.source.tar.xz 333506484 BLAKE2B 1922e2f6b2ada46e581e4eaaa388873d31c6a922e5165ba225eeaccde5c1c6d7369a57ecf8e89371a34f692dca5754a461abb7d1c9bfda9cbc4f021d39549439 SHA512 78a5dc8713ab879ebfc3b8fd7a8219844d06f0d897342fdf9a11471633d98e148ff85cf10e561899df4910b94a33b57709b64788df4621a8c0b83eb9a7102cef
31 -DIST firefox-78.14.0esr.source.tar.xz 340771180 BLAKE2B 7b83bf081138fbf2367116099839c6d05ec5ade58f183ba033c5167d503a2a1f40976f88bdba680a7a8df7c66ac32449004e58a5211f16086b792a2b41e27c67 SHA512 5d5e4b1197f87b458a8ab14a62701fa0f3071e9facbb4fba71a64ef69abf31edbb4c5efa6c20198de573216543b5289270b5929c6e917f01bb165ce8c139c1ac
32 DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378
33 -DIST firefox-78esr-patches-13.tar.xz 83664 BLAKE2B 92250d5bc3821ee1ff032236bd00e01a53e0af4f9e39696a634edb39f0a182bf5ff74b7fc0f107c9c53136c64485c398391e3a857c8b2b904115fd13d17e2a4f SHA512 96739811bea833a6a9cb09075dfe49c6fa7f613e8bd41e1d830d6ae6851ce8e2f5d27c87d0035b6f3a099340dfd7eebe6ecb930ff25079e76cea92a7610293ca
34 -DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26
35 -DIST firefox-78esr-patches-15.tar.xz 65604 BLAKE2B 86e421e555ffd5f7f201d0f1a1c446c649739c67cdf8dca536efa115e09d9c357ce1551b7270c77e8bfe7dd53e0f3e6386496283879cf5e0c59b3c864951ebb3 SHA512 b229e895f083a0404cda1da0d8ae937429d5975ac52ab20e8b15611d9c737381a1076ebfa8c8a127dacac0e12a2a905ffd579facde2d80c6facc911e5739e34b
36 -DIST firefox-78esr-patches-16.tar.xz 55964 BLAKE2B 79d3a465c69656bb55ee7c1e9060606464b6404435b92f534db275521ac2343e045feae1fff6166fde9e2599a82cd982b0b2395271b1033f0f784e745e2c6965 SHA512 3aa971c726646cbf37a14a0dba6c4ac966b88db655cd8b730c5572543bfbf682991ee7c139889541e4f6936c13f27233dc1837fbdb9ee340b33ebb2cec59b01f
37 -DIST firefox-78esr-patches-17.tar.xz 56004 BLAKE2B 01d2ded2658c24176a3d13d0267d1c4df4ef0113c5c40b1002acd39a0f04db35b773bc617afed1c681df3ec38120621a5c3753ba2d36688d7d5926233bfb8501 SHA512 43b372b848c1f30e02505d06bbb11f5b80d976fe7ee39c0d2aacf60d48bc1d3e378c325f4e2fd4730b971e88c3bd902539a7b81874f53b8b92369f876e05be5e
38 DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a695f52c4712f3b28733648fcd7dac5a599613f4c3d2cfa169266dc62b65619b7f28c0e06d32317adb8ec0056ca79c87e9f6 SHA512 3c81dadc9bf74207c4e361605127ef6141d77700c5c54f1f9cd5ad3be13df9f73c6eec2f51d779558e4bdad1e7395c6aa8943a93415bd1786d461042bc03550a
39 DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
40 DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
41
42 diff --git a/dev-lang/spidermonkey/spidermonkey-78.10.1.ebuild b/dev-lang/spidermonkey/spidermonkey-78.10.1.ebuild
43 deleted file mode 100644
44 index 3e0a2584eef4..000000000000
45 --- a/dev-lang/spidermonkey/spidermonkey-78.10.1.ebuild
46 +++ /dev/null
47 @@ -1,454 +0,0 @@
48 -# Copyright 1999-2021 Gentoo Authors
49 -# Distributed under the terms of the GNU General Public License v2
50 -
51 -EAPI="7"
52 -
53 -# Patch version
54 -FIREFOX_PATCHSET="firefox-78esr-patches-13.tar.xz"
55 -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
56 -
57 -LLVM_MAX_SLOT=12
58 -
59 -PYTHON_COMPAT=( python3_{7..9} )
60 -
61 -WANT_AUTOCONF="2.1"
62 -
63 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
64 -
65 -MY_PN="mozjs"
66 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
67 -
68 -MY_MAJOR=$(ver_cut 1)
69 -
70 -MOZ_ESR=yes
71 -
72 -MOZ_PV=${PV}
73 -MOZ_PV_SUFFIX=
74 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
75 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
76 -
77 - # Convert the ebuild version to the upstream Mozilla version
78 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
79 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
80 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
81 -fi
82 -
83 -if [[ -n ${MOZ_ESR} ]] ; then
84 - # ESR releases have slightly different version numbers
85 - MOZ_PV="${MOZ_PV}esr"
86 -fi
87 -
88 -MOZ_PN="firefox"
89 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
90 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
91 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
92 -
93 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
94 -
95 -if [[ ${PV} == *_rc* ]] ; then
96 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
97 -fi
98 -
99 -PATCH_URIS=(
100 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
101 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
102 -)
103 -
104 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
105 - ${PATCH_URIS[@]}"
106 -
107 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
108 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
109 -
110 -KEYWORDS="amd64 arm arm64 ~mips ppc64 ~riscv ~s390 x86"
111 -
112 -SLOT="78"
113 -LICENSE="MPL-2.0"
114 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
115 -
116 -RESTRICT="!test? ( test )"
117 -
118 -BDEPEND="${PYTHON_DEPS}
119 - >=virtual/rust-1.41.0
120 - virtual/pkgconfig
121 - || (
122 - (
123 - sys-devel/llvm:12
124 - clang? (
125 - sys-devel/clang:12
126 - lto? ( =sys-devel/lld-12* )
127 - )
128 - )
129 - (
130 - sys-devel/llvm:11
131 - clang? (
132 - sys-devel/clang:11
133 - lto? ( =sys-devel/lld-11* )
134 - )
135 - )
136 - (
137 - sys-devel/llvm:10
138 - clang? (
139 - sys-devel/clang:10
140 - lto? ( =sys-devel/lld-10* )
141 - )
142 - )
143 - )
144 - lto? (
145 - !clang? ( sys-devel/binutils[gold] )
146 - )"
147 -
148 -CDEPEND=">=dev-libs/icu-67.1:=
149 - >=dev-libs/nspr-4.25
150 - sys-libs/readline:0=
151 - >=sys-libs/zlib-1.2.3"
152 -
153 -DEPEND="${CDEPEND}
154 - test? (
155 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
156 - )"
157 -
158 -RDEPEND="${CDEPEND}"
159 -
160 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
161 -
162 -llvm_check_deps() {
163 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
164 - ewarn "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
165 - return 1
166 - fi
167 -
168 - if use clang ; then
169 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
170 - ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
171 - return 1
172 - fi
173 -
174 - if use lto ; then
175 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
176 - ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
177 - return 1
178 - fi
179 - fi
180 - fi
181 -
182 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
183 -}
184 -
185 -python_check_deps() {
186 - if use test ; then
187 - has_version "dev-python/six[${PYTHON_USEDEP}]"
188 - fi
189 -}
190 -
191 -pkg_pretend() {
192 - if use test ; then
193 - CHECKREQS_DISK_BUILD="7600M"
194 - else
195 - CHECKREQS_DISK_BUILD="6400M"
196 - fi
197 -
198 - check-reqs_pkg_pretend
199 -}
200 -
201 -pkg_setup() {
202 - if [[ ${MERGE_TYPE} != binary ]] ; then
203 - if use test ; then
204 - CHECKREQS_DISK_BUILD="7600M"
205 - else
206 - CHECKREQS_DISK_BUILD="6400M"
207 - fi
208 -
209 - check-reqs_pkg_setup
210 -
211 - llvm_pkg_setup
212 -
213 - if use clang && use lto ; then
214 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
215 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
216 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
217 -
218 - # temp fix for https://bugs.gentoo.org/768543
219 - # we can assume that rust 1.{49,50}.0 always uses llvm 11
220 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
221 - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
222 - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
223 -
224 - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
225 - local version_llvm_rust="11"
226 - else
227 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
228 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
229 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
230 - fi
231 -
232 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
233 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
234 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
235 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
236 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
237 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
238 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
239 - fi
240 - fi
241 -
242 - python-any-r1_pkg_setup
243 -
244 - # Build system is using /proc/self/oom_score_adj, bug #604394
245 - addpredict /proc/self/oom_score_adj
246 -
247 - if ! mountpoint -q /dev/shm ; then
248 - # If /dev/shm is not available, configure is known to fail with
249 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
250 - ewarn "/dev/shm is not mounted -- expect build failures!"
251 - fi
252 -
253 - # Ensure we use C locale when building, bug #746215
254 - export LC_ALL=C
255 - fi
256 -}
257 -
258 -src_prepare() {
259 - pushd ../.. &>/dev/null || die
260 -
261 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
262 -
263 - eapply "${WORKDIR}"/firefox-patches
264 - eapply "${WORKDIR}"/spidermonkey-patches
265 -
266 - default
267 -
268 - # Make LTO respect MAKEOPTS
269 - sed -i \
270 - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
271 - build/moz.configure/lto-pgo.configure \
272 - || die "sed failed to set num_cores"
273 -
274 - # sed-in toolchain prefix
275 - sed -i \
276 - -e "s/objdump/${CHOST}-objdump/" \
277 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
278 - || die "sed failed to set toolchain prefix"
279 -
280 - # use prefix shell in wrapper linker scripts, bug #789660
281 - hprefixify "${S}"/../../build/cargo-{,host-}linker
282 -
283 - einfo "Removing pre-built binaries ..."
284 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
285 -
286 - MOZJS_BUILDDIR="${WORKDIR}/build"
287 - mkdir "${MOZJS_BUILDDIR}" || die
288 -
289 - popd &>/dev/null || die
290 - eautoconf
291 -}
292 -
293 -src_configure() {
294 - # Show flags set at the beginning
295 - einfo "Current CFLAGS: ${CFLAGS}"
296 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
297 - einfo "Current LDFLAGS: ${LDFLAGS}"
298 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
299 -
300 - local have_switched_compiler=
301 - if use clang && ! tc-is-clang ; then
302 - # Force clang
303 - einfo "Enforcing the use of clang due to USE=clang ..."
304 - have_switched_compiler=yes
305 - AR=llvm-ar
306 - CC=${CHOST}-clang
307 - CXX=${CHOST}-clang++
308 - NM=llvm-nm
309 - RANLIB=llvm-ranlib
310 - elif ! use clang && ! tc-is-gcc ; then
311 - # Force gcc
312 - have_switched_compiler=yes
313 - einfo "Enforcing the use of gcc due to USE=-clang ..."
314 - AR=gcc-ar
315 - CC=${CHOST}-gcc
316 - CXX=${CHOST}-g++
317 - NM=gcc-nm
318 - RANLIB=gcc-ranlib
319 - fi
320 -
321 - if [[ -n "${have_switched_compiler}" ]] ; then
322 - # Because we switched active compiler we have to ensure
323 - # that no unsupported flags are set
324 - strip-unsupported-flags
325 - fi
326 -
327 - # Ensure we use correct toolchain
328 - export HOST_CC="$(tc-getBUILD_CC)"
329 - export HOST_CXX="$(tc-getBUILD_CXX)"
330 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
331 -
332 - cd "${MOZJS_BUILDDIR}" || die
333 -
334 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
335 - export SHELL="${EPREFIX}/bin/bash"
336 -
337 - local -a myeconfargs=(
338 - --host="${CBUILD:-${CHOST}}"
339 - --target="${CHOST}"
340 - --disable-jemalloc
341 - --disable-optimize
342 - --disable-strip
343 - --enable-readline
344 - --enable-shared-js
345 - --with-intl-api
346 - --with-system-icu
347 - --with-system-nspr
348 - --with-system-zlib
349 - --with-toolchain-prefix="${CHOST}-"
350 - $(use_enable debug)
351 - $(use_enable jit)
352 - $(use_enable test tests)
353 - )
354 -
355 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
356 - myeconfargs+=( --enable-rust-simd )
357 - fi
358 -
359 - # Modifications to better support ARM, bug 717344
360 - if use cpu_flags_arm_neon ; then
361 - myeconfargs+=( --with-fpu=neon )
362 -
363 - if ! tc-is-clang ; then
364 - # thumb options aren't supported when using clang, bug 666966
365 - myeconfargs+=( --with-thumb=yes )
366 - myeconfargs+=( --with-thumb-interwork=no )
367 - fi
368 - fi
369 -
370 - # Tell build system that we want to use LTO
371 - if use lto ; then
372 - myeconfargs+=( --enable-lto )
373 -
374 - if use clang ; then
375 - myeconfargs+=( --enable-linker=lld )
376 - else
377 - myeconfargs+=( --enable-linker=gold )
378 - fi
379 - fi
380 -
381 - # LTO flag was handled via configure
382 - filter-flags '-flto*'
383 -
384 - if tc-is-gcc ; then
385 - if ver_test $(gcc-fullversion) -ge 10 ; then
386 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
387 - append-cxxflags -fno-tree-loop-vectorize
388 - fi
389 - fi
390 -
391 - # Show flags we will use
392 - einfo "Build CFLAGS: ${CFLAGS}"
393 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
394 - einfo "Build LDFLAGS: ${LDFLAGS}"
395 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
396 -
397 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
398 - # and other minor arches
399 - ECONF_SOURCE="${S}" \
400 - econf \
401 - ${myeconfargs[@]} \
402 - XARGS="${EPREFIX}/usr/bin/xargs"
403 -}
404 -
405 -src_compile() {
406 - cd "${MOZJS_BUILDDIR}" || die
407 - default
408 -}
409 -
410 -src_test() {
411 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
412 - einfo "Smoke-test successful, continuing with full test suite"
413 - else
414 - die "Smoke-test failed: did interpreter initialization fail?"
415 - fi
416 -
417 - local -a KNOWN_TESTFAILURES
418 - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
419 - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
420 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
421 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
422 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
423 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
424 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
425 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
426 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
427 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
428 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
429 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
430 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
431 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
432 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
433 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
434 - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
435 -
436 - if use x86 ; then
437 - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
438 - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
439 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
440 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
441 - fi
442 -
443 - if [[ $(tc-endian) == "big" ]] ; then
444 - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
445 - fi
446 -
447 - echo "" > "${T}"/known_failures.list || die
448 -
449 - local KNOWN_TESTFAILURE
450 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
451 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
452 - done
453 -
454 - PYTHONPATH="${S}/tests/lib" \
455 - ${PYTHON} \
456 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
457 - --exclude-file="${T}"/known_failures.list \
458 - "${MOZJS_BUILDDIR}"/js/src/js \
459 - || die
460 -
461 - if use jit ; then
462 - KNOWN_TESTFAILURES=()
463 -
464 - echo "" > "${T}"/known_failures.list || die
465 -
466 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
467 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
468 - done
469 -
470 - PYTHONPATH="${S}/tests/lib" \
471 - ${PYTHON} \
472 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
473 - --exclude-file="${T}"/known_failures.list \
474 - "${MOZJS_BUILDDIR}"/js/src/js basic \
475 - || die
476 - fi
477 -}
478 -
479 -src_install() {
480 - cd "${MOZJS_BUILDDIR}" || die
481 - default
482 -
483 - # fix soname links
484 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
485 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
486 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
487 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
488 - popd &>/dev/null || die
489 -
490 - # remove unneeded files
491 - rm \
492 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
493 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
494 - || die
495 -
496 - # fix permissions
497 - chmod -x \
498 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
499 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
500 - || die
501 -}
502
503 diff --git a/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild
504 deleted file mode 100644
505 index 0a3d1f9ef6ae..000000000000
506 --- a/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild
507 +++ /dev/null
508 @@ -1,454 +0,0 @@
509 -# Copyright 1999-2021 Gentoo Authors
510 -# Distributed under the terms of the GNU General Public License v2
511 -
512 -EAPI="7"
513 -
514 -# Patch version
515 -FIREFOX_PATCHSET="firefox-78esr-patches-14.tar.xz"
516 -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
517 -
518 -LLVM_MAX_SLOT=12
519 -
520 -PYTHON_COMPAT=( python3_{7..9} )
521 -
522 -WANT_AUTOCONF="2.1"
523 -
524 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
525 -
526 -MY_PN="mozjs"
527 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
528 -
529 -MY_MAJOR=$(ver_cut 1)
530 -
531 -MOZ_ESR=yes
532 -
533 -MOZ_PV=${PV}
534 -MOZ_PV_SUFFIX=
535 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
536 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
537 -
538 - # Convert the ebuild version to the upstream Mozilla version
539 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
540 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
541 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
542 -fi
543 -
544 -if [[ -n ${MOZ_ESR} ]] ; then
545 - # ESR releases have slightly different version numbers
546 - MOZ_PV="${MOZ_PV}esr"
547 -fi
548 -
549 -MOZ_PN="firefox"
550 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
551 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
552 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
553 -
554 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
555 -
556 -if [[ ${PV} == *_rc* ]] ; then
557 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
558 -fi
559 -
560 -PATCH_URIS=(
561 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
562 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
563 -)
564 -
565 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
566 - ${PATCH_URIS[@]}"
567 -
568 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
569 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
570 -
571 -KEYWORDS="amd64 ~arm ~arm64 ~mips ~ppc64 ~riscv ~s390 x86"
572 -
573 -SLOT="78"
574 -LICENSE="MPL-2.0"
575 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
576 -
577 -RESTRICT="!test? ( test )"
578 -
579 -BDEPEND="${PYTHON_DEPS}
580 - >=virtual/rust-1.41.0
581 - virtual/pkgconfig
582 - || (
583 - (
584 - sys-devel/llvm:12
585 - clang? (
586 - sys-devel/clang:12
587 - lto? ( =sys-devel/lld-12* )
588 - )
589 - )
590 - (
591 - sys-devel/llvm:11
592 - clang? (
593 - sys-devel/clang:11
594 - lto? ( =sys-devel/lld-11* )
595 - )
596 - )
597 - (
598 - sys-devel/llvm:10
599 - clang? (
600 - sys-devel/clang:10
601 - lto? ( =sys-devel/lld-10* )
602 - )
603 - )
604 - )
605 - lto? (
606 - !clang? ( sys-devel/binutils[gold] )
607 - )"
608 -
609 -CDEPEND=">=dev-libs/icu-67.1:=
610 - >=dev-libs/nspr-4.25
611 - sys-libs/readline:0=
612 - >=sys-libs/zlib-1.2.3"
613 -
614 -DEPEND="${CDEPEND}
615 - test? (
616 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
617 - )"
618 -
619 -RDEPEND="${CDEPEND}"
620 -
621 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
622 -
623 -llvm_check_deps() {
624 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
625 - ewarn "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
626 - return 1
627 - fi
628 -
629 - if use clang ; then
630 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
631 - ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
632 - return 1
633 - fi
634 -
635 - if use lto ; then
636 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
637 - ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
638 - return 1
639 - fi
640 - fi
641 - fi
642 -
643 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
644 -}
645 -
646 -python_check_deps() {
647 - if use test ; then
648 - has_version "dev-python/six[${PYTHON_USEDEP}]"
649 - fi
650 -}
651 -
652 -pkg_pretend() {
653 - if use test ; then
654 - CHECKREQS_DISK_BUILD="7600M"
655 - else
656 - CHECKREQS_DISK_BUILD="6400M"
657 - fi
658 -
659 - check-reqs_pkg_pretend
660 -}
661 -
662 -pkg_setup() {
663 - if [[ ${MERGE_TYPE} != binary ]] ; then
664 - if use test ; then
665 - CHECKREQS_DISK_BUILD="7600M"
666 - else
667 - CHECKREQS_DISK_BUILD="6400M"
668 - fi
669 -
670 - check-reqs_pkg_setup
671 -
672 - llvm_pkg_setup
673 -
674 - if use clang && use lto ; then
675 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
676 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
677 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
678 -
679 - # temp fix for https://bugs.gentoo.org/768543
680 - # we can assume that rust 1.{49,50}.0 always uses llvm 11
681 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
682 - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
683 - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
684 -
685 - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
686 - local version_llvm_rust="11"
687 - else
688 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
689 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
690 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
691 - fi
692 -
693 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
694 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
695 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
696 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
697 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
698 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
699 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
700 - fi
701 - fi
702 -
703 - python-any-r1_pkg_setup
704 -
705 - # Build system is using /proc/self/oom_score_adj, bug #604394
706 - addpredict /proc/self/oom_score_adj
707 -
708 - if ! mountpoint -q /dev/shm ; then
709 - # If /dev/shm is not available, configure is known to fail with
710 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
711 - ewarn "/dev/shm is not mounted -- expect build failures!"
712 - fi
713 -
714 - # Ensure we use C locale when building, bug #746215
715 - export LC_ALL=C
716 - fi
717 -}
718 -
719 -src_prepare() {
720 - pushd ../.. &>/dev/null || die
721 -
722 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
723 -
724 - eapply "${WORKDIR}"/firefox-patches
725 - eapply "${WORKDIR}"/spidermonkey-patches
726 -
727 - default
728 -
729 - # Make LTO respect MAKEOPTS
730 - sed -i \
731 - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
732 - build/moz.configure/lto-pgo.configure \
733 - || die "sed failed to set num_cores"
734 -
735 - # sed-in toolchain prefix
736 - sed -i \
737 - -e "s/objdump/${CHOST}-objdump/" \
738 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
739 - || die "sed failed to set toolchain prefix"
740 -
741 - # use prefix shell in wrapper linker scripts, bug #789660
742 - hprefixify "${S}"/../../build/cargo-{,host-}linker
743 -
744 - einfo "Removing pre-built binaries ..."
745 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
746 -
747 - MOZJS_BUILDDIR="${WORKDIR}/build"
748 - mkdir "${MOZJS_BUILDDIR}" || die
749 -
750 - popd &>/dev/null || die
751 - eautoconf
752 -}
753 -
754 -src_configure() {
755 - # Show flags set at the beginning
756 - einfo "Current CFLAGS: ${CFLAGS}"
757 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
758 - einfo "Current LDFLAGS: ${LDFLAGS}"
759 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
760 -
761 - local have_switched_compiler=
762 - if use clang && ! tc-is-clang ; then
763 - # Force clang
764 - einfo "Enforcing the use of clang due to USE=clang ..."
765 - have_switched_compiler=yes
766 - AR=llvm-ar
767 - CC=${CHOST}-clang
768 - CXX=${CHOST}-clang++
769 - NM=llvm-nm
770 - RANLIB=llvm-ranlib
771 - elif ! use clang && ! tc-is-gcc ; then
772 - # Force gcc
773 - have_switched_compiler=yes
774 - einfo "Enforcing the use of gcc due to USE=-clang ..."
775 - AR=gcc-ar
776 - CC=${CHOST}-gcc
777 - CXX=${CHOST}-g++
778 - NM=gcc-nm
779 - RANLIB=gcc-ranlib
780 - fi
781 -
782 - if [[ -n "${have_switched_compiler}" ]] ; then
783 - # Because we switched active compiler we have to ensure
784 - # that no unsupported flags are set
785 - strip-unsupported-flags
786 - fi
787 -
788 - # Ensure we use correct toolchain
789 - export HOST_CC="$(tc-getBUILD_CC)"
790 - export HOST_CXX="$(tc-getBUILD_CXX)"
791 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
792 -
793 - cd "${MOZJS_BUILDDIR}" || die
794 -
795 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
796 - export SHELL="${EPREFIX}/bin/bash"
797 -
798 - local -a myeconfargs=(
799 - --host="${CBUILD:-${CHOST}}"
800 - --target="${CHOST}"
801 - --disable-jemalloc
802 - --disable-optimize
803 - --disable-strip
804 - --enable-readline
805 - --enable-shared-js
806 - --with-intl-api
807 - --with-system-icu
808 - --with-system-nspr
809 - --with-system-zlib
810 - --with-toolchain-prefix="${CHOST}-"
811 - $(use_enable debug)
812 - $(use_enable jit)
813 - $(use_enable test tests)
814 - )
815 -
816 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
817 - myeconfargs+=( --enable-rust-simd )
818 - fi
819 -
820 - # Modifications to better support ARM, bug 717344
821 - if use cpu_flags_arm_neon ; then
822 - myeconfargs+=( --with-fpu=neon )
823 -
824 - if ! tc-is-clang ; then
825 - # thumb options aren't supported when using clang, bug 666966
826 - myeconfargs+=( --with-thumb=yes )
827 - myeconfargs+=( --with-thumb-interwork=no )
828 - fi
829 - fi
830 -
831 - # Tell build system that we want to use LTO
832 - if use lto ; then
833 - myeconfargs+=( --enable-lto )
834 -
835 - if use clang ; then
836 - myeconfargs+=( --enable-linker=lld )
837 - else
838 - myeconfargs+=( --enable-linker=gold )
839 - fi
840 - fi
841 -
842 - # LTO flag was handled via configure
843 - filter-flags '-flto*'
844 -
845 - if tc-is-gcc ; then
846 - if ver_test $(gcc-fullversion) -ge 10 ; then
847 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
848 - append-cxxflags -fno-tree-loop-vectorize
849 - fi
850 - fi
851 -
852 - # Show flags we will use
853 - einfo "Build CFLAGS: ${CFLAGS}"
854 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
855 - einfo "Build LDFLAGS: ${LDFLAGS}"
856 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
857 -
858 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
859 - # and other minor arches
860 - ECONF_SOURCE="${S}" \
861 - econf \
862 - ${myeconfargs[@]} \
863 - XARGS="${EPREFIX}/usr/bin/xargs"
864 -}
865 -
866 -src_compile() {
867 - cd "${MOZJS_BUILDDIR}" || die
868 - default
869 -}
870 -
871 -src_test() {
872 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
873 - einfo "Smoke-test successful, continuing with full test suite"
874 - else
875 - die "Smoke-test failed: did interpreter initialization fail?"
876 - fi
877 -
878 - local -a KNOWN_TESTFAILURES
879 - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
880 - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
881 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
882 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
883 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
884 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
885 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
886 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
887 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
888 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
889 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
890 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
891 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
892 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
893 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
894 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
895 - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
896 -
897 - if use x86 ; then
898 - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
899 - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
900 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
901 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
902 - fi
903 -
904 - if [[ $(tc-endian) == "big" ]] ; then
905 - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
906 - fi
907 -
908 - echo "" > "${T}"/known_failures.list || die
909 -
910 - local KNOWN_TESTFAILURE
911 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
912 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
913 - done
914 -
915 - PYTHONPATH="${S}/tests/lib" \
916 - ${PYTHON} \
917 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
918 - --exclude-file="${T}"/known_failures.list \
919 - "${MOZJS_BUILDDIR}"/js/src/js \
920 - || die
921 -
922 - if use jit ; then
923 - KNOWN_TESTFAILURES=()
924 -
925 - echo "" > "${T}"/known_failures.list || die
926 -
927 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
928 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
929 - done
930 -
931 - PYTHONPATH="${S}/tests/lib" \
932 - ${PYTHON} \
933 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
934 - --exclude-file="${T}"/known_failures.list \
935 - "${MOZJS_BUILDDIR}"/js/src/js basic \
936 - || die
937 - fi
938 -}
939 -
940 -src_install() {
941 - cd "${MOZJS_BUILDDIR}" || die
942 - default
943 -
944 - # fix soname links
945 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
946 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
947 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
948 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
949 - popd &>/dev/null || die
950 -
951 - # remove unneeded files
952 - rm \
953 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
954 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
955 - || die
956 -
957 - # fix permissions
958 - chmod -x \
959 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
960 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
961 - || die
962 -}
963
964 diff --git a/dev-lang/spidermonkey/spidermonkey-78.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.12.0.ebuild
965 deleted file mode 100644
966 index 76c829403fa0..000000000000
967 --- a/dev-lang/spidermonkey/spidermonkey-78.12.0.ebuild
968 +++ /dev/null
969 @@ -1,454 +0,0 @@
970 -# Copyright 1999-2021 Gentoo Authors
971 -# Distributed under the terms of the GNU General Public License v2
972 -
973 -EAPI="7"
974 -
975 -# Patch version
976 -FIREFOX_PATCHSET="firefox-78esr-patches-15.tar.xz"
977 -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
978 -
979 -LLVM_MAX_SLOT=12
980 -
981 -PYTHON_COMPAT=( python3_{7..9} )
982 -
983 -WANT_AUTOCONF="2.1"
984 -
985 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
986 -
987 -MY_PN="mozjs"
988 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
989 -
990 -MY_MAJOR=$(ver_cut 1)
991 -
992 -MOZ_ESR=yes
993 -
994 -MOZ_PV=${PV}
995 -MOZ_PV_SUFFIX=
996 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
997 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
998 -
999 - # Convert the ebuild version to the upstream Mozilla version
1000 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
1001 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
1002 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
1003 -fi
1004 -
1005 -if [[ -n ${MOZ_ESR} ]] ; then
1006 - # ESR releases have slightly different version numbers
1007 - MOZ_PV="${MOZ_PV}esr"
1008 -fi
1009 -
1010 -MOZ_PN="firefox"
1011 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
1012 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
1013 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
1014 -
1015 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
1016 -
1017 -if [[ ${PV} == *_rc* ]] ; then
1018 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
1019 -fi
1020 -
1021 -PATCH_URIS=(
1022 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
1023 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
1024 -)
1025 -
1026 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
1027 - ${PATCH_URIS[@]}"
1028 -
1029 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
1030 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
1031 -
1032 -KEYWORDS="amd64 arm arm64 ~mips ~ppc64 ~riscv ~s390 x86"
1033 -
1034 -SLOT="78"
1035 -LICENSE="MPL-2.0"
1036 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
1037 -
1038 -RESTRICT="!test? ( test )"
1039 -
1040 -BDEPEND="${PYTHON_DEPS}
1041 - >=virtual/rust-1.41.0
1042 - virtual/pkgconfig
1043 - || (
1044 - (
1045 - sys-devel/llvm:12
1046 - clang? (
1047 - sys-devel/clang:12
1048 - lto? ( =sys-devel/lld-12* )
1049 - )
1050 - )
1051 - (
1052 - sys-devel/llvm:11
1053 - clang? (
1054 - sys-devel/clang:11
1055 - lto? ( =sys-devel/lld-11* )
1056 - )
1057 - )
1058 - (
1059 - sys-devel/llvm:10
1060 - clang? (
1061 - sys-devel/clang:10
1062 - lto? ( =sys-devel/lld-10* )
1063 - )
1064 - )
1065 - )
1066 - lto? (
1067 - !clang? ( sys-devel/binutils[gold] )
1068 - )"
1069 -
1070 -CDEPEND=">=dev-libs/icu-67.1:=
1071 - >=dev-libs/nspr-4.25
1072 - sys-libs/readline:0=
1073 - >=sys-libs/zlib-1.2.3"
1074 -
1075 -DEPEND="${CDEPEND}
1076 - test? (
1077 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
1078 - )"
1079 -
1080 -RDEPEND="${CDEPEND}"
1081 -
1082 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
1083 -
1084 -llvm_check_deps() {
1085 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
1086 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1087 - return 1
1088 - fi
1089 -
1090 - if use clang ; then
1091 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
1092 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1093 - return 1
1094 - fi
1095 -
1096 - if use lto ; then
1097 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
1098 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1099 - return 1
1100 - fi
1101 - fi
1102 - fi
1103 -
1104 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
1105 -}
1106 -
1107 -python_check_deps() {
1108 - if use test ; then
1109 - has_version "dev-python/six[${PYTHON_USEDEP}]"
1110 - fi
1111 -}
1112 -
1113 -pkg_pretend() {
1114 - if use test ; then
1115 - CHECKREQS_DISK_BUILD="7600M"
1116 - else
1117 - CHECKREQS_DISK_BUILD="6400M"
1118 - fi
1119 -
1120 - check-reqs_pkg_pretend
1121 -}
1122 -
1123 -pkg_setup() {
1124 - if [[ ${MERGE_TYPE} != binary ]] ; then
1125 - if use test ; then
1126 - CHECKREQS_DISK_BUILD="7600M"
1127 - else
1128 - CHECKREQS_DISK_BUILD="6400M"
1129 - fi
1130 -
1131 - check-reqs_pkg_setup
1132 -
1133 - llvm_pkg_setup
1134 -
1135 - if use clang && use lto ; then
1136 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
1137 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
1138 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
1139 -
1140 - # temp fix for https://bugs.gentoo.org/768543
1141 - # we can assume that rust 1.{49,50}.0 always uses llvm 11
1142 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
1143 - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
1144 - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
1145 -
1146 - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
1147 - local version_llvm_rust="11"
1148 - else
1149 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
1150 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
1151 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
1152 - fi
1153 -
1154 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
1155 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
1156 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
1157 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
1158 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
1159 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
1160 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
1161 - fi
1162 - fi
1163 -
1164 - python-any-r1_pkg_setup
1165 -
1166 - # Build system is using /proc/self/oom_score_adj, bug #604394
1167 - addpredict /proc/self/oom_score_adj
1168 -
1169 - if ! mountpoint -q /dev/shm ; then
1170 - # If /dev/shm is not available, configure is known to fail with
1171 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
1172 - ewarn "/dev/shm is not mounted -- expect build failures!"
1173 - fi
1174 -
1175 - # Ensure we use C locale when building, bug #746215
1176 - export LC_ALL=C
1177 - fi
1178 -}
1179 -
1180 -src_prepare() {
1181 - pushd ../.. &>/dev/null || die
1182 -
1183 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
1184 -
1185 - eapply "${WORKDIR}"/firefox-patches
1186 - eapply "${WORKDIR}"/spidermonkey-patches
1187 -
1188 - default
1189 -
1190 - # Make LTO respect MAKEOPTS
1191 - sed -i \
1192 - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
1193 - build/moz.configure/lto-pgo.configure \
1194 - || die "sed failed to set num_cores"
1195 -
1196 - # sed-in toolchain prefix
1197 - sed -i \
1198 - -e "s/objdump/${CHOST}-objdump/" \
1199 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
1200 - || die "sed failed to set toolchain prefix"
1201 -
1202 - # use prefix shell in wrapper linker scripts, bug #789660
1203 - hprefixify "${S}"/../../build/cargo-{,host-}linker
1204 -
1205 - einfo "Removing pre-built binaries ..."
1206 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
1207 -
1208 - MOZJS_BUILDDIR="${WORKDIR}/build"
1209 - mkdir "${MOZJS_BUILDDIR}" || die
1210 -
1211 - popd &>/dev/null || die
1212 - eautoconf
1213 -}
1214 -
1215 -src_configure() {
1216 - # Show flags set at the beginning
1217 - einfo "Current CFLAGS: ${CFLAGS}"
1218 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
1219 - einfo "Current LDFLAGS: ${LDFLAGS}"
1220 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
1221 -
1222 - local have_switched_compiler=
1223 - if use clang && ! tc-is-clang ; then
1224 - # Force clang
1225 - einfo "Enforcing the use of clang due to USE=clang ..."
1226 - have_switched_compiler=yes
1227 - AR=llvm-ar
1228 - CC=${CHOST}-clang
1229 - CXX=${CHOST}-clang++
1230 - NM=llvm-nm
1231 - RANLIB=llvm-ranlib
1232 - elif ! use clang && ! tc-is-gcc ; then
1233 - # Force gcc
1234 - have_switched_compiler=yes
1235 - einfo "Enforcing the use of gcc due to USE=-clang ..."
1236 - AR=gcc-ar
1237 - CC=${CHOST}-gcc
1238 - CXX=${CHOST}-g++
1239 - NM=gcc-nm
1240 - RANLIB=gcc-ranlib
1241 - fi
1242 -
1243 - if [[ -n "${have_switched_compiler}" ]] ; then
1244 - # Because we switched active compiler we have to ensure
1245 - # that no unsupported flags are set
1246 - strip-unsupported-flags
1247 - fi
1248 -
1249 - # Ensure we use correct toolchain
1250 - export HOST_CC="$(tc-getBUILD_CC)"
1251 - export HOST_CXX="$(tc-getBUILD_CXX)"
1252 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
1253 -
1254 - cd "${MOZJS_BUILDDIR}" || die
1255 -
1256 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
1257 - export SHELL="${EPREFIX}/bin/bash"
1258 -
1259 - local -a myeconfargs=(
1260 - --host="${CBUILD:-${CHOST}}"
1261 - --target="${CHOST}"
1262 - --disable-jemalloc
1263 - --disable-optimize
1264 - --disable-strip
1265 - --enable-readline
1266 - --enable-shared-js
1267 - --with-intl-api
1268 - --with-system-icu
1269 - --with-system-nspr
1270 - --with-system-zlib
1271 - --with-toolchain-prefix="${CHOST}-"
1272 - $(use_enable debug)
1273 - $(use_enable jit)
1274 - $(use_enable test tests)
1275 - )
1276 -
1277 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
1278 - myeconfargs+=( --enable-rust-simd )
1279 - fi
1280 -
1281 - # Modifications to better support ARM, bug 717344
1282 - if use cpu_flags_arm_neon ; then
1283 - myeconfargs+=( --with-fpu=neon )
1284 -
1285 - if ! tc-is-clang ; then
1286 - # thumb options aren't supported when using clang, bug 666966
1287 - myeconfargs+=( --with-thumb=yes )
1288 - myeconfargs+=( --with-thumb-interwork=no )
1289 - fi
1290 - fi
1291 -
1292 - # Tell build system that we want to use LTO
1293 - if use lto ; then
1294 - myeconfargs+=( --enable-lto )
1295 -
1296 - if use clang ; then
1297 - myeconfargs+=( --enable-linker=lld )
1298 - else
1299 - myeconfargs+=( --enable-linker=gold )
1300 - fi
1301 - fi
1302 -
1303 - # LTO flag was handled via configure
1304 - filter-flags '-flto*'
1305 -
1306 - if tc-is-gcc ; then
1307 - if ver_test $(gcc-fullversion) -ge 10 ; then
1308 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1309 - append-cxxflags -fno-tree-loop-vectorize
1310 - fi
1311 - fi
1312 -
1313 - # Show flags we will use
1314 - einfo "Build CFLAGS: ${CFLAGS}"
1315 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
1316 - einfo "Build LDFLAGS: ${LDFLAGS}"
1317 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
1318 -
1319 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
1320 - # and other minor arches
1321 - ECONF_SOURCE="${S}" \
1322 - econf \
1323 - ${myeconfargs[@]} \
1324 - XARGS="${EPREFIX}/usr/bin/xargs"
1325 -}
1326 -
1327 -src_compile() {
1328 - cd "${MOZJS_BUILDDIR}" || die
1329 - default
1330 -}
1331 -
1332 -src_test() {
1333 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
1334 - einfo "Smoke-test successful, continuing with full test suite"
1335 - else
1336 - die "Smoke-test failed: did interpreter initialization fail?"
1337 - fi
1338 -
1339 - local -a KNOWN_TESTFAILURES
1340 - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
1341 - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
1342 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
1343 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
1344 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
1345 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
1346 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
1347 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
1348 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
1349 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
1350 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
1351 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
1352 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
1353 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
1354 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
1355 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
1356 - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
1357 -
1358 - if use x86 ; then
1359 - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
1360 - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
1361 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
1362 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
1363 - fi
1364 -
1365 - if [[ $(tc-endian) == "big" ]] ; then
1366 - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
1367 - fi
1368 -
1369 - echo "" > "${T}"/known_failures.list || die
1370 -
1371 - local KNOWN_TESTFAILURE
1372 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
1373 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
1374 - done
1375 -
1376 - PYTHONPATH="${S}/tests/lib" \
1377 - ${PYTHON} \
1378 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1379 - --exclude-file="${T}"/known_failures.list \
1380 - "${MOZJS_BUILDDIR}"/js/src/js \
1381 - || die
1382 -
1383 - if use jit ; then
1384 - KNOWN_TESTFAILURES=()
1385 -
1386 - echo "" > "${T}"/known_failures.list || die
1387 -
1388 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
1389 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
1390 - done
1391 -
1392 - PYTHONPATH="${S}/tests/lib" \
1393 - ${PYTHON} \
1394 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1395 - --exclude-file="${T}"/known_failures.list \
1396 - "${MOZJS_BUILDDIR}"/js/src/js basic \
1397 - || die
1398 - fi
1399 -}
1400 -
1401 -src_install() {
1402 - cd "${MOZJS_BUILDDIR}" || die
1403 - default
1404 -
1405 - # fix soname links
1406 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
1407 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
1408 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
1409 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
1410 - popd &>/dev/null || die
1411 -
1412 - # remove unneeded files
1413 - rm \
1414 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
1415 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
1416 - || die
1417 -
1418 - # fix permissions
1419 - chmod -x \
1420 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
1421 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
1422 - || die
1423 -}
1424
1425 diff --git a/dev-lang/spidermonkey/spidermonkey-78.13.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.13.0.ebuild
1426 deleted file mode 100644
1427 index 338d24073e22..000000000000
1428 --- a/dev-lang/spidermonkey/spidermonkey-78.13.0.ebuild
1429 +++ /dev/null
1430 @@ -1,454 +0,0 @@
1431 -# Copyright 1999-2021 Gentoo Authors
1432 -# Distributed under the terms of the GNU General Public License v2
1433 -
1434 -EAPI="7"
1435 -
1436 -# Patch version
1437 -FIREFOX_PATCHSET="firefox-78esr-patches-16.tar.xz"
1438 -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
1439 -
1440 -LLVM_MAX_SLOT=12
1441 -
1442 -PYTHON_COMPAT=( python3_{7..9} )
1443 -
1444 -WANT_AUTOCONF="2.1"
1445 -
1446 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
1447 -
1448 -MY_PN="mozjs"
1449 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
1450 -
1451 -MY_MAJOR=$(ver_cut 1)
1452 -
1453 -MOZ_ESR=yes
1454 -
1455 -MOZ_PV=${PV}
1456 -MOZ_PV_SUFFIX=
1457 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
1458 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
1459 -
1460 - # Convert the ebuild version to the upstream Mozilla version
1461 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
1462 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
1463 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
1464 -fi
1465 -
1466 -if [[ -n ${MOZ_ESR} ]] ; then
1467 - # ESR releases have slightly different version numbers
1468 - MOZ_PV="${MOZ_PV}esr"
1469 -fi
1470 -
1471 -MOZ_PN="firefox"
1472 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
1473 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
1474 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
1475 -
1476 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
1477 -
1478 -if [[ ${PV} == *_rc* ]] ; then
1479 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
1480 -fi
1481 -
1482 -PATCH_URIS=(
1483 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
1484 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
1485 -)
1486 -
1487 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
1488 - ${PATCH_URIS[@]}"
1489 -
1490 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
1491 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
1492 -
1493 -KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc64 ~riscv ~s390 ~x86"
1494 -
1495 -SLOT="78"
1496 -LICENSE="MPL-2.0"
1497 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
1498 -
1499 -RESTRICT="!test? ( test )"
1500 -
1501 -BDEPEND="${PYTHON_DEPS}
1502 - >=virtual/rust-1.41.0
1503 - virtual/pkgconfig
1504 - || (
1505 - (
1506 - sys-devel/llvm:12
1507 - clang? (
1508 - sys-devel/clang:12
1509 - lto? ( =sys-devel/lld-12* )
1510 - )
1511 - )
1512 - (
1513 - sys-devel/llvm:11
1514 - clang? (
1515 - sys-devel/clang:11
1516 - lto? ( =sys-devel/lld-11* )
1517 - )
1518 - )
1519 - (
1520 - sys-devel/llvm:10
1521 - clang? (
1522 - sys-devel/clang:10
1523 - lto? ( =sys-devel/lld-10* )
1524 - )
1525 - )
1526 - )
1527 - lto? (
1528 - !clang? ( sys-devel/binutils[gold] )
1529 - )"
1530 -
1531 -CDEPEND=">=dev-libs/icu-67.1:=
1532 - >=dev-libs/nspr-4.25
1533 - sys-libs/readline:0=
1534 - >=sys-libs/zlib-1.2.3"
1535 -
1536 -DEPEND="${CDEPEND}
1537 - test? (
1538 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
1539 - )"
1540 -
1541 -RDEPEND="${CDEPEND}"
1542 -
1543 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
1544 -
1545 -llvm_check_deps() {
1546 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
1547 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1548 - return 1
1549 - fi
1550 -
1551 - if use clang ; then
1552 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
1553 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1554 - return 1
1555 - fi
1556 -
1557 - if use lto ; then
1558 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
1559 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
1560 - return 1
1561 - fi
1562 - fi
1563 - fi
1564 -
1565 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
1566 -}
1567 -
1568 -python_check_deps() {
1569 - if use test ; then
1570 - has_version "dev-python/six[${PYTHON_USEDEP}]"
1571 - fi
1572 -}
1573 -
1574 -pkg_pretend() {
1575 - if use test ; then
1576 - CHECKREQS_DISK_BUILD="7600M"
1577 - else
1578 - CHECKREQS_DISK_BUILD="6400M"
1579 - fi
1580 -
1581 - check-reqs_pkg_pretend
1582 -}
1583 -
1584 -pkg_setup() {
1585 - if [[ ${MERGE_TYPE} != binary ]] ; then
1586 - if use test ; then
1587 - CHECKREQS_DISK_BUILD="7600M"
1588 - else
1589 - CHECKREQS_DISK_BUILD="6400M"
1590 - fi
1591 -
1592 - check-reqs_pkg_setup
1593 -
1594 - llvm_pkg_setup
1595 -
1596 - if use clang && use lto ; then
1597 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
1598 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
1599 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
1600 -
1601 - # temp fix for https://bugs.gentoo.org/768543
1602 - # we can assume that rust 1.{49,50}.0 always uses llvm 11
1603 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
1604 - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
1605 - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
1606 -
1607 - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
1608 - local version_llvm_rust="11"
1609 - else
1610 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
1611 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
1612 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
1613 - fi
1614 -
1615 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
1616 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
1617 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
1618 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
1619 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
1620 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
1621 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
1622 - fi
1623 - fi
1624 -
1625 - python-any-r1_pkg_setup
1626 -
1627 - # Build system is using /proc/self/oom_score_adj, bug #604394
1628 - addpredict /proc/self/oom_score_adj
1629 -
1630 - if ! mountpoint -q /dev/shm ; then
1631 - # If /dev/shm is not available, configure is known to fail with
1632 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
1633 - ewarn "/dev/shm is not mounted -- expect build failures!"
1634 - fi
1635 -
1636 - # Ensure we use C locale when building, bug #746215
1637 - export LC_ALL=C
1638 - fi
1639 -}
1640 -
1641 -src_prepare() {
1642 - pushd ../.. &>/dev/null || die
1643 -
1644 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
1645 -
1646 - eapply "${WORKDIR}"/firefox-patches
1647 - eapply "${WORKDIR}"/spidermonkey-patches
1648 -
1649 - default
1650 -
1651 - # Make LTO respect MAKEOPTS
1652 - sed -i \
1653 - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
1654 - build/moz.configure/lto-pgo.configure \
1655 - || die "sed failed to set num_cores"
1656 -
1657 - # sed-in toolchain prefix
1658 - sed -i \
1659 - -e "s/objdump/${CHOST}-objdump/" \
1660 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
1661 - || die "sed failed to set toolchain prefix"
1662 -
1663 - # use prefix shell in wrapper linker scripts, bug #789660
1664 - hprefixify "${S}"/../../build/cargo-{,host-}linker
1665 -
1666 - einfo "Removing pre-built binaries ..."
1667 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
1668 -
1669 - MOZJS_BUILDDIR="${WORKDIR}/build"
1670 - mkdir "${MOZJS_BUILDDIR}" || die
1671 -
1672 - popd &>/dev/null || die
1673 - eautoconf
1674 -}
1675 -
1676 -src_configure() {
1677 - # Show flags set at the beginning
1678 - einfo "Current CFLAGS: ${CFLAGS}"
1679 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
1680 - einfo "Current LDFLAGS: ${LDFLAGS}"
1681 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
1682 -
1683 - local have_switched_compiler=
1684 - if use clang && ! tc-is-clang ; then
1685 - # Force clang
1686 - einfo "Enforcing the use of clang due to USE=clang ..."
1687 - have_switched_compiler=yes
1688 - AR=llvm-ar
1689 - CC=${CHOST}-clang
1690 - CXX=${CHOST}-clang++
1691 - NM=llvm-nm
1692 - RANLIB=llvm-ranlib
1693 - elif ! use clang && ! tc-is-gcc ; then
1694 - # Force gcc
1695 - have_switched_compiler=yes
1696 - einfo "Enforcing the use of gcc due to USE=-clang ..."
1697 - AR=gcc-ar
1698 - CC=${CHOST}-gcc
1699 - CXX=${CHOST}-g++
1700 - NM=gcc-nm
1701 - RANLIB=gcc-ranlib
1702 - fi
1703 -
1704 - if [[ -n "${have_switched_compiler}" ]] ; then
1705 - # Because we switched active compiler we have to ensure
1706 - # that no unsupported flags are set
1707 - strip-unsupported-flags
1708 - fi
1709 -
1710 - # Ensure we use correct toolchain
1711 - export HOST_CC="$(tc-getBUILD_CC)"
1712 - export HOST_CXX="$(tc-getBUILD_CXX)"
1713 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
1714 -
1715 - cd "${MOZJS_BUILDDIR}" || die
1716 -
1717 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
1718 - export SHELL="${EPREFIX}/bin/bash"
1719 -
1720 - local -a myeconfargs=(
1721 - --host="${CBUILD:-${CHOST}}"
1722 - --target="${CHOST}"
1723 - --disable-jemalloc
1724 - --disable-optimize
1725 - --disable-strip
1726 - --enable-readline
1727 - --enable-shared-js
1728 - --with-intl-api
1729 - --with-system-icu
1730 - --with-system-nspr
1731 - --with-system-zlib
1732 - --with-toolchain-prefix="${CHOST}-"
1733 - $(use_enable debug)
1734 - $(use_enable jit)
1735 - $(use_enable test tests)
1736 - )
1737 -
1738 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
1739 - myeconfargs+=( --enable-rust-simd )
1740 - fi
1741 -
1742 - # Modifications to better support ARM, bug 717344
1743 - if use cpu_flags_arm_neon ; then
1744 - myeconfargs+=( --with-fpu=neon )
1745 -
1746 - if ! tc-is-clang ; then
1747 - # thumb options aren't supported when using clang, bug 666966
1748 - myeconfargs+=( --with-thumb=yes )
1749 - myeconfargs+=( --with-thumb-interwork=no )
1750 - fi
1751 - fi
1752 -
1753 - # Tell build system that we want to use LTO
1754 - if use lto ; then
1755 - myeconfargs+=( --enable-lto )
1756 -
1757 - if use clang ; then
1758 - myeconfargs+=( --enable-linker=lld )
1759 - else
1760 - myeconfargs+=( --enable-linker=gold )
1761 - fi
1762 - fi
1763 -
1764 - # LTO flag was handled via configure
1765 - filter-flags '-flto*'
1766 -
1767 - if tc-is-gcc ; then
1768 - if ver_test $(gcc-fullversion) -ge 10 ; then
1769 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
1770 - append-cxxflags -fno-tree-loop-vectorize
1771 - fi
1772 - fi
1773 -
1774 - # Show flags we will use
1775 - einfo "Build CFLAGS: ${CFLAGS}"
1776 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
1777 - einfo "Build LDFLAGS: ${LDFLAGS}"
1778 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
1779 -
1780 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
1781 - # and other minor arches
1782 - ECONF_SOURCE="${S}" \
1783 - econf \
1784 - ${myeconfargs[@]} \
1785 - XARGS="${EPREFIX}/usr/bin/xargs"
1786 -}
1787 -
1788 -src_compile() {
1789 - cd "${MOZJS_BUILDDIR}" || die
1790 - default
1791 -}
1792 -
1793 -src_test() {
1794 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
1795 - einfo "Smoke-test successful, continuing with full test suite"
1796 - else
1797 - die "Smoke-test failed: did interpreter initialization fail?"
1798 - fi
1799 -
1800 - local -a KNOWN_TESTFAILURES
1801 - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
1802 - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
1803 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
1804 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
1805 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
1806 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
1807 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
1808 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
1809 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
1810 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
1811 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
1812 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
1813 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
1814 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
1815 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
1816 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
1817 - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
1818 -
1819 - if use x86 ; then
1820 - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
1821 - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
1822 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
1823 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
1824 - fi
1825 -
1826 - if [[ $(tc-endian) == "big" ]] ; then
1827 - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
1828 - fi
1829 -
1830 - echo "" > "${T}"/known_failures.list || die
1831 -
1832 - local KNOWN_TESTFAILURE
1833 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
1834 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
1835 - done
1836 -
1837 - PYTHONPATH="${S}/tests/lib" \
1838 - ${PYTHON} \
1839 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1840 - --exclude-file="${T}"/known_failures.list \
1841 - "${MOZJS_BUILDDIR}"/js/src/js \
1842 - || die
1843 -
1844 - if use jit ; then
1845 - KNOWN_TESTFAILURES=()
1846 -
1847 - echo "" > "${T}"/known_failures.list || die
1848 -
1849 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
1850 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
1851 - done
1852 -
1853 - PYTHONPATH="${S}/tests/lib" \
1854 - ${PYTHON} \
1855 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
1856 - --exclude-file="${T}"/known_failures.list \
1857 - "${MOZJS_BUILDDIR}"/js/src/js basic \
1858 - || die
1859 - fi
1860 -}
1861 -
1862 -src_install() {
1863 - cd "${MOZJS_BUILDDIR}" || die
1864 - default
1865 -
1866 - # fix soname links
1867 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
1868 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
1869 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
1870 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
1871 - popd &>/dev/null || die
1872 -
1873 - # remove unneeded files
1874 - rm \
1875 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
1876 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
1877 - || die
1878 -
1879 - # fix permissions
1880 - chmod -x \
1881 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
1882 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
1883 - || die
1884 -}
1885
1886 diff --git a/dev-lang/spidermonkey/spidermonkey-78.14.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.14.0.ebuild
1887 deleted file mode 100644
1888 index 7fadab5b2ac9..000000000000
1889 --- a/dev-lang/spidermonkey/spidermonkey-78.14.0.ebuild
1890 +++ /dev/null
1891 @@ -1,454 +0,0 @@
1892 -# Copyright 1999-2021 Gentoo Authors
1893 -# Distributed under the terms of the GNU General Public License v2
1894 -
1895 -EAPI="7"
1896 -
1897 -# Patch version
1898 -FIREFOX_PATCHSET="firefox-78esr-patches-17.tar.xz"
1899 -SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
1900 -
1901 -LLVM_MAX_SLOT=12
1902 -
1903 -PYTHON_COMPAT=( python3_{7..9} )
1904 -
1905 -WANT_AUTOCONF="2.1"
1906 -
1907 -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
1908 -
1909 -MY_PN="mozjs"
1910 -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
1911 -
1912 -MY_MAJOR=$(ver_cut 1)
1913 -
1914 -MOZ_ESR=yes
1915 -
1916 -MOZ_PV=${PV}
1917 -MOZ_PV_SUFFIX=
1918 -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
1919 - MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
1920 -
1921 - # Convert the ebuild version to the upstream Mozilla version
1922 - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
1923 - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
1924 - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
1925 -fi
1926 -
1927 -if [[ -n ${MOZ_ESR} ]] ; then
1928 - # ESR releases have slightly different version numbers
1929 - MOZ_PV="${MOZ_PV}esr"
1930 -fi
1931 -
1932 -MOZ_PN="firefox"
1933 -MOZ_P="${MOZ_PN}-${MOZ_PV}"
1934 -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
1935 -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
1936 -
1937 -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
1938 -
1939 -if [[ ${PV} == *_rc* ]] ; then
1940 - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
1941 -fi
1942 -
1943 -PATCH_URIS=(
1944 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
1945 - https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
1946 -)
1947 -
1948 -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
1949 - ${PATCH_URIS[@]}"
1950 -
1951 -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
1952 -HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
1953 -
1954 -KEYWORDS="amd64 arm arm64 ~mips ~ppc64 ~riscv ~s390 x86"
1955 -
1956 -SLOT="78"
1957 -LICENSE="MPL-2.0"
1958 -IUSE="clang cpu_flags_arm_neon debug +jit lto test"
1959 -
1960 -RESTRICT="!test? ( test )"
1961 -
1962 -BDEPEND="${PYTHON_DEPS}
1963 - >=virtual/rust-1.41.0
1964 - virtual/pkgconfig
1965 - || (
1966 - (
1967 - sys-devel/llvm:12
1968 - clang? (
1969 - sys-devel/clang:12
1970 - lto? ( =sys-devel/lld-12* )
1971 - )
1972 - )
1973 - (
1974 - sys-devel/llvm:11
1975 - clang? (
1976 - sys-devel/clang:11
1977 - lto? ( =sys-devel/lld-11* )
1978 - )
1979 - )
1980 - (
1981 - sys-devel/llvm:10
1982 - clang? (
1983 - sys-devel/clang:10
1984 - lto? ( =sys-devel/lld-10* )
1985 - )
1986 - )
1987 - )
1988 - lto? (
1989 - !clang? ( sys-devel/binutils[gold] )
1990 - )"
1991 -
1992 -CDEPEND=">=dev-libs/icu-67.1:=
1993 - >=dev-libs/nspr-4.25
1994 - sys-libs/readline:0=
1995 - >=sys-libs/zlib-1.2.3"
1996 -
1997 -DEPEND="${CDEPEND}
1998 - test? (
1999 - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
2000 - )"
2001 -
2002 -RDEPEND="${CDEPEND}"
2003 -
2004 -S="${WORKDIR}/firefox-${MY_PV}/js/src"
2005 -
2006 -llvm_check_deps() {
2007 - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
2008 - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
2009 - return 1
2010 - fi
2011 -
2012 - if use clang ; then
2013 - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
2014 - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
2015 - return 1
2016 - fi
2017 -
2018 - if use lto ; then
2019 - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
2020 - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
2021 - return 1
2022 - fi
2023 - fi
2024 - fi
2025 -
2026 - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
2027 -}
2028 -
2029 -python_check_deps() {
2030 - if use test ; then
2031 - has_version "dev-python/six[${PYTHON_USEDEP}]"
2032 - fi
2033 -}
2034 -
2035 -pkg_pretend() {
2036 - if use test ; then
2037 - CHECKREQS_DISK_BUILD="7600M"
2038 - else
2039 - CHECKREQS_DISK_BUILD="6400M"
2040 - fi
2041 -
2042 - check-reqs_pkg_pretend
2043 -}
2044 -
2045 -pkg_setup() {
2046 - if [[ ${MERGE_TYPE} != binary ]] ; then
2047 - if use test ; then
2048 - CHECKREQS_DISK_BUILD="7600M"
2049 - else
2050 - CHECKREQS_DISK_BUILD="6400M"
2051 - fi
2052 -
2053 - check-reqs_pkg_setup
2054 -
2055 - llvm_pkg_setup
2056 -
2057 - if use clang && use lto ; then
2058 - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
2059 - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
2060 - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
2061 -
2062 - # temp fix for https://bugs.gentoo.org/768543
2063 - # we can assume that rust 1.{49,50}.0 always uses llvm 11
2064 - local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
2065 - [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
2066 - [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
2067 -
2068 - if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
2069 - local version_llvm_rust="11"
2070 - else
2071 - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
2072 - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
2073 - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
2074 - fi
2075 -
2076 - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
2077 - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
2078 - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
2079 - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
2080 - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
2081 - eerror " - Build ${CATEGORY}/${PN} without USE=lto"
2082 - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
2083 - fi
2084 - fi
2085 -
2086 - python-any-r1_pkg_setup
2087 -
2088 - # Build system is using /proc/self/oom_score_adj, bug #604394
2089 - addpredict /proc/self/oom_score_adj
2090 -
2091 - if ! mountpoint -q /dev/shm ; then
2092 - # If /dev/shm is not available, configure is known to fail with
2093 - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
2094 - ewarn "/dev/shm is not mounted -- expect build failures!"
2095 - fi
2096 -
2097 - # Ensure we use C locale when building, bug #746215
2098 - export LC_ALL=C
2099 - fi
2100 -}
2101 -
2102 -src_prepare() {
2103 - pushd ../.. &>/dev/null || die
2104 -
2105 - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
2106 -
2107 - eapply "${WORKDIR}"/firefox-patches
2108 - eapply "${WORKDIR}"/spidermonkey-patches
2109 -
2110 - default
2111 -
2112 - # Make LTO respect MAKEOPTS
2113 - sed -i \
2114 - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
2115 - build/moz.configure/lto-pgo.configure \
2116 - || die "sed failed to set num_cores"
2117 -
2118 - # sed-in toolchain prefix
2119 - sed -i \
2120 - -e "s/objdump/${CHOST}-objdump/" \
2121 - python/mozbuild/mozbuild/configure/check_debug_ranges.py \
2122 - || die "sed failed to set toolchain prefix"
2123 -
2124 - # use prefix shell in wrapper linker scripts, bug #789660
2125 - hprefixify "${S}"/../../build/cargo-{,host-}linker
2126 -
2127 - einfo "Removing pre-built binaries ..."
2128 - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
2129 -
2130 - MOZJS_BUILDDIR="${WORKDIR}/build"
2131 - mkdir "${MOZJS_BUILDDIR}" || die
2132 -
2133 - popd &>/dev/null || die
2134 - eautoconf
2135 -}
2136 -
2137 -src_configure() {
2138 - # Show flags set at the beginning
2139 - einfo "Current CFLAGS: ${CFLAGS}"
2140 - einfo "Current CXXFLAGS: ${CXXFLAGS}"
2141 - einfo "Current LDFLAGS: ${LDFLAGS}"
2142 - einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
2143 -
2144 - local have_switched_compiler=
2145 - if use clang && ! tc-is-clang ; then
2146 - # Force clang
2147 - einfo "Enforcing the use of clang due to USE=clang ..."
2148 - have_switched_compiler=yes
2149 - AR=llvm-ar
2150 - CC=${CHOST}-clang
2151 - CXX=${CHOST}-clang++
2152 - NM=llvm-nm
2153 - RANLIB=llvm-ranlib
2154 - elif ! use clang && ! tc-is-gcc ; then
2155 - # Force gcc
2156 - have_switched_compiler=yes
2157 - einfo "Enforcing the use of gcc due to USE=-clang ..."
2158 - AR=gcc-ar
2159 - CC=${CHOST}-gcc
2160 - CXX=${CHOST}-g++
2161 - NM=gcc-nm
2162 - RANLIB=gcc-ranlib
2163 - fi
2164 -
2165 - if [[ -n "${have_switched_compiler}" ]] ; then
2166 - # Because we switched active compiler we have to ensure
2167 - # that no unsupported flags are set
2168 - strip-unsupported-flags
2169 - fi
2170 -
2171 - # Ensure we use correct toolchain
2172 - export HOST_CC="$(tc-getBUILD_CC)"
2173 - export HOST_CXX="$(tc-getBUILD_CXX)"
2174 - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG
2175 -
2176 - cd "${MOZJS_BUILDDIR}" || die
2177 -
2178 - # ../python/mach/mach/mixin/process.py fails to detect SHELL
2179 - export SHELL="${EPREFIX}/bin/bash"
2180 -
2181 - local -a myeconfargs=(
2182 - --host="${CBUILD:-${CHOST}}"
2183 - --target="${CHOST}"
2184 - --disable-jemalloc
2185 - --disable-optimize
2186 - --disable-strip
2187 - --enable-readline
2188 - --enable-shared-js
2189 - --with-intl-api
2190 - --with-system-icu
2191 - --with-system-nspr
2192 - --with-system-zlib
2193 - --with-toolchain-prefix="${CHOST}-"
2194 - $(use_enable debug)
2195 - $(use_enable jit)
2196 - $(use_enable test tests)
2197 - )
2198 -
2199 - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
2200 - myeconfargs+=( --enable-rust-simd )
2201 - fi
2202 -
2203 - # Modifications to better support ARM, bug 717344
2204 - if use cpu_flags_arm_neon ; then
2205 - myeconfargs+=( --with-fpu=neon )
2206 -
2207 - if ! tc-is-clang ; then
2208 - # thumb options aren't supported when using clang, bug 666966
2209 - myeconfargs+=( --with-thumb=yes )
2210 - myeconfargs+=( --with-thumb-interwork=no )
2211 - fi
2212 - fi
2213 -
2214 - # Tell build system that we want to use LTO
2215 - if use lto ; then
2216 - myeconfargs+=( --enable-lto )
2217 -
2218 - if use clang ; then
2219 - myeconfargs+=( --enable-linker=lld )
2220 - else
2221 - myeconfargs+=( --enable-linker=gold )
2222 - fi
2223 - fi
2224 -
2225 - # LTO flag was handled via configure
2226 - filter-flags '-flto*'
2227 -
2228 - if tc-is-gcc ; then
2229 - if ver_test $(gcc-fullversion) -ge 10 ; then
2230 - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
2231 - append-cxxflags -fno-tree-loop-vectorize
2232 - fi
2233 - fi
2234 -
2235 - # Show flags we will use
2236 - einfo "Build CFLAGS: ${CFLAGS}"
2237 - einfo "Build CXXFLAGS: ${CXXFLAGS}"
2238 - einfo "Build LDFLAGS: ${LDFLAGS}"
2239 - einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
2240 -
2241 - # Forcing system-icu allows us to skip patching bundled ICU for PPC
2242 - # and other minor arches
2243 - ECONF_SOURCE="${S}" \
2244 - econf \
2245 - ${myeconfargs[@]} \
2246 - XARGS="${EPREFIX}/usr/bin/xargs"
2247 -}
2248 -
2249 -src_compile() {
2250 - cd "${MOZJS_BUILDDIR}" || die
2251 - default
2252 -}
2253 -
2254 -src_test() {
2255 - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
2256 - einfo "Smoke-test successful, continuing with full test suite"
2257 - else
2258 - die "Smoke-test failed: did interpreter initialization fail?"
2259 - fi
2260 -
2261 - local -a KNOWN_TESTFAILURES
2262 - KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
2263 - KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
2264 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
2265 - KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
2266 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
2267 - KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
2268 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
2269 - KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
2270 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
2271 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
2272 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
2273 - KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
2274 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
2275 - KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
2276 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
2277 - KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
2278 - KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
2279 -
2280 - if use x86 ; then
2281 - KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
2282 - KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
2283 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
2284 - KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
2285 - fi
2286 -
2287 - if [[ $(tc-endian) == "big" ]] ; then
2288 - KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
2289 - fi
2290 -
2291 - echo "" > "${T}"/known_failures.list || die
2292 -
2293 - local KNOWN_TESTFAILURE
2294 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
2295 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
2296 - done
2297 -
2298 - PYTHONPATH="${S}/tests/lib" \
2299 - ${PYTHON} \
2300 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
2301 - --exclude-file="${T}"/known_failures.list \
2302 - "${MOZJS_BUILDDIR}"/js/src/js \
2303 - || die
2304 -
2305 - if use jit ; then
2306 - KNOWN_TESTFAILURES=()
2307 -
2308 - echo "" > "${T}"/known_failures.list || die
2309 -
2310 - for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
2311 - echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
2312 - done
2313 -
2314 - PYTHONPATH="${S}/tests/lib" \
2315 - ${PYTHON} \
2316 - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
2317 - --exclude-file="${T}"/known_failures.list \
2318 - "${MOZJS_BUILDDIR}"/js/src/js basic \
2319 - || die
2320 - fi
2321 -}
2322 -
2323 -src_install() {
2324 - cd "${MOZJS_BUILDDIR}" || die
2325 - default
2326 -
2327 - # fix soname links
2328 - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
2329 - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
2330 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
2331 - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
2332 - popd &>/dev/null || die
2333 -
2334 - # remove unneeded files
2335 - rm \
2336 - "${ED}"/usr/bin/js${MY_MAJOR}-config \
2337 - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
2338 - || die
2339 -
2340 - # fix permissions
2341 - chmod -x \
2342 - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
2343 - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
2344 - || die
2345 -}