diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-04-01 14:13:28 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-04-01 14:13:28 +0100 |
commit | 5b1915ddf98b64efdd976ca4d8fce232faf7a247 (patch) | |
tree | ab7ad1f46a7cbc0c887d4f807de70019853b9acd /dev-lang/spidermonkey | |
parent | 48e7f15d37baf7167041b2ab0e2a19a703e5c99f (diff) |
gentoo auto-resync : 01:04:2024 - 14:13:28
Diffstat (limited to 'dev-lang/spidermonkey')
-rw-r--r-- | dev-lang/spidermonkey/Manifest | 9 | ||||
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-115.7.0.ebuild | 474 | ||||
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-115.8.0.ebuild | 474 | ||||
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-115.9.0.ebuild | 474 | ||||
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild | 2 |
5 files changed, 2 insertions, 1431 deletions
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 6aa3bf80e229..e8efa07dc183 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -3,19 +3,12 @@ AUX spidermonkey-115-known-test-failures.txt 2725 BLAKE2B 181f6e11c0f1997a7af44f DIST firefox-102.15.0esr.source.tar.xz 486592324 BLAKE2B b70727fa91d0d270673374bebb4745b87f6194191c1c9415547d772811a4a85f79a97e8985877eb5c9beef43fe15bef574172da35935e7024a947919ec11d883 SHA512 87db6e32fda215253f9b3bd233ef7fa91a64349310064b8482e5c634f34cbe99a2a111d74d2b9f2a99a0b3b510dbf9039ebe4ccfc176c2554d65bc9cfb508bf9 DIST firefox-102esr-patches-13.tar.xz 22212 BLAKE2B 02e9edd071a99abbac02faa11ffce061d5d12d8baa9ce54b51d6bfdbf8160022a1565902d65ca30fe51b5670e509fa921b11a460989933cbb797fcd59d635125 SHA512 8b8b0f3789978447a1293fd9acb5c2db3d7e9f724357a0d762b54f7e34d28f11655997ffeafccfe8001a01dd595848d257f90cb983462c405d434cc794216520 DIST firefox-115.3.1esr.source.tar.xz 515785920 BLAKE2B ad5ec24361e94d9185eed210f681c50159f5be3e6046d79200b5e2586107f1ed98ebe7935f1e266afadd570fc1aa6a1aec81fe3b7fb86efb48afe82514f26c68 SHA512 65cb6fc46bba03eed742bd67f8e36b63b19f2ad7b85d2f503595704a4e88f554758a1e66ba548c8efe97a76322fb2514db72e6ff4bb2992d1aaa86edc3af85f1 -DIST firefox-115.7.0esr.source.tar.xz 515513828 BLAKE2B 9cacd9cd7e9b9040f37843645bc6823d72b3b736a3c4dcef7706304ebeda718e36e98962d9d9c000b7507fdfda40bd19ca4c8267573dc623a9507a7f77b17b52 SHA512 d468d8ef117d76e0660c5359c3becf0502354c61bdaaeb4137d86f52b50143abec2ac4578af69afa5670700b57efff1c7323ca23e3339a9eaaa888dee7e8e922 -DIST firefox-115.8.0esr.source.tar.xz 507569724 BLAKE2B 37bb3d0ef990922baa81f0083ba91f079755c6cf45df238d7ccfa4f9bc0cb597f59c7d08bc0b976dae422df0b3897d1cd153ae12970ac4e3e9fad892781c3b45 SHA512 4b8c06b5eb3617700a72aaad8831d703a537fe600740f1acb8377bd0ce198a199938603fd7e6b2007671a578dfb24aa8f5c031c6c1ccf15d4a34562679eaa883 -DIST firefox-115.9.0esr.source.tar.xz 507156076 BLAKE2B 2b70c0396763ef6662450c1001b847adfc7c8cbf6e4e2ffd3120473aebcc4ff9e25091e2d8e3f9462c2094de9211d658776746a0d8ce9ed73efa824b4e25b508 SHA512 2828931e79f6f2476a699afdac02133f2f04d478c5a8ed288339701387d57354f73df50d1d2a08e6afdddc9a2b95b1820c9ca1bfdce3e0772cb0ba71e12aab88 DIST firefox-115.9.1esr.source.tar.xz 508070816 BLAKE2B 5182972f45edfb9ec6b23cc2e869fe86237bd51bd23fd31058d03d9dc98f0ea2dcf57215d61d724e08f98d0e0771b86b5e5ce78ed03c3ac08fac60ed4377f890 SHA512 9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310 DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257 -DIST firefox-115esr-patches-08.tar.xz 15912 BLAKE2B 3f94deb17920672ad2184e813bd38e390ecaa50bfc6e00973db717bc56a5adb4f096224cc366da525db25aaa3d198d57716bcb765ddc906783532864e23dd8d4 SHA512 4474fbed14b2c4fac03d82f4b37849a69dbdd61fc15f01cefa373eb8a64a692f5a584247acdf7c349ab6965225c3cd47be3fc4523f93db5299680e2a22e94d94 DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185 DIST spidermonkey-115-patches-01.tar.xz 3992 BLAKE2B e97d0cb3edfb885119226f54f22485ed4e8220cd904d3356b87ccc013403f976a042171cf9ca7250bcf3fe3d90996dd80b4104e7d614f95d7bcfcb0e710a8a78 SHA512 cece96f172a09dd0e29f7c2fdbf650cde405b276bc4083956365289f1da4b1d078ccbde760da6553888ddb3c53cf9aded52051db556a2c4ec492fed01dcb03a1 EBUILD spidermonkey-102.15.0.ebuild 15624 BLAKE2B a10e3fb8fcbc0f0016778a3c5bb1caea09b05eef2d059f5bb920158b45e9f15ab1e9bd9da90300457e68a147b334a49a86bd1dd07f036feedfa69d17491e63a5 SHA512 c71d02f78d2196e9afa44e3481fa9f6ef8324799b4a4a460eab531ca3d51e09a1b43a15bd2efbac5d11d03bb410babe6400236220684641c97aaa030ee970fdf EBUILD spidermonkey-115.3.1.ebuild 12932 BLAKE2B af29a89883af616cce02421bfea884c051f0c8d7184e78e580f192d9f8262ba558af98dc72691f30b978452ec09da65ab0ab9613010193fd37f688434d143cf2 SHA512 364c149328bf641a6a3a601608138b627d0536ea1657640a8984ae27d6e8d0ea75b960d5d8a170382c5d1731fab24c37fd8cccd121cc4db3d7a678ccd603df0c -EBUILD spidermonkey-115.7.0.ebuild 12939 BLAKE2B 457a2787a3c4555f3e88db3a5bdd8adfdc8e44fafcf37a290ba9aca56c91a262de4b42fe14f05f0ae7c4e64440f34da23d36c587683c24ff60cd4e5deb5a26e4 SHA512 aa43d8e06f2b20cc6ba45885a34bbe8bcbfba0fedac3c4326f76c50fecb22bf46c0d8f314c3aa3cd17647dade79a80e94f4283db4ca0999e74b7ce21b47f21e1 -EBUILD spidermonkey-115.8.0.ebuild 12939 BLAKE2B bcd4b72eac78e5414074cfa07d20e000f8a410c21ac8ead5e37e838f9faac05d9168d68e3edb242a09211d25577c547548e203a744ac5611d386df54ea964794 SHA512 92f18c8016f4bf4f0291cf27b592073c8b22ccee2b7fc58fafa2cfee1d9914b7a42dc85c97eb0dd71fbca2dd704a0e84cf56207dcac8e384b60355b91340654e -EBUILD spidermonkey-115.9.0.ebuild 12939 BLAKE2B bcd4b72eac78e5414074cfa07d20e000f8a410c21ac8ead5e37e838f9faac05d9168d68e3edb242a09211d25577c547548e203a744ac5611d386df54ea964794 SHA512 92f18c8016f4bf4f0291cf27b592073c8b22ccee2b7fc58fafa2cfee1d9914b7a42dc85c97eb0dd71fbca2dd704a0e84cf56207dcac8e384b60355b91340654e -EBUILD spidermonkey-115.9.1.ebuild 12939 BLAKE2B bcd4b72eac78e5414074cfa07d20e000f8a410c21ac8ead5e37e838f9faac05d9168d68e3edb242a09211d25577c547548e203a744ac5611d386df54ea964794 SHA512 92f18c8016f4bf4f0291cf27b592073c8b22ccee2b7fc58fafa2cfee1d9914b7a42dc85c97eb0dd71fbca2dd704a0e84cf56207dcac8e384b60355b91340654e +EBUILD spidermonkey-115.9.1.ebuild 12937 BLAKE2B d3736b88a8afcb4755783af903d469e895764f0fbd329cbc08eda6f7f6c3505c670800cd0b8bc1b872592c54ba18b8aa1569361184a23c298b1626c1327a6460 SHA512 3b9027a1737c31043f62bd255906adadc81b7d3c054dcf23897a8a3eb256cc6803b4ea9474be6efda2e5b60efa8e704fbb8dad4b4e86a9bb2d850c544ed671b5 MISC metadata.xml 513 BLAKE2B 58ffd474492f03c16bda95e48511fb6281e03067d2ad77e994f8117345ecece5da9591dccedafe75b037d98e06851a3759caa4b993adc2910dbb76e1c01a7fa3 SHA512 1ee02bff37e2dabbd72b7f719463b12299270c7960b4cf5a92afab17c954c50e6acb826d4a91db4954fb4a7b0f8669988f2cdb5be991df90e3a605c6b35fdbfb diff --git a/dev-lang/spidermonkey/spidermonkey-115.7.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.7.0.ebuild deleted file mode 100644 index 7917e7324620..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-115.7.0.ebuild +++ /dev/null @@ -1,474 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -# Patch version -FIREFOX_PATCHSET="firefox-115esr-patches-08.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz" - -LLVM_MAX_SLOT=17 - -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="ncurses,ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" - -SLOT="$(ver_cut 1)" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - || ( - ( - sys-devel/llvm:17 - clang? ( - sys-devel/lld:17 - sys-devel/clang:17 - virtual/rust:0/llvm-17 - ) - ) - ( - sys-devel/llvm:16 - clang? ( - sys-devel/lld:16 - sys-devel/clang:16 - virtual/rust:0/llvm-16 - ) - ) - ( - sys-devel/llvm:15 - clang? ( - sys-devel/lld:15 - sys-devel/clang:15 - virtual/rust:0/llvm-15 - ) - ) - ) - !clang? ( virtual/rust ) - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - )" -DEPEND=">=dev-libs/icu-73.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - python_has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - if ! use ppc64; then - rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die - fi - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - - local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') - [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") - [[ -z ${version_clang} ]] && die "Failed to read clang version!" - - if tc-is-gcc; then - have_switched_compiler=yes - fi - AR=llvm-ar - CC=${CHOST}-clang-${version_clang} - CXX=${CHOST}-clang++-${version_clang} - NM=llvm-nm - RANLIB=llvm-ranlib - - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain, - # AS is used in a non-standard way by upstream, #bmo1654031 - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - export AS="$(tc-getCC) -c" - tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - - --disable-ctype - --disable-jemalloc - --disable-smoosh - --disable-strip - - --enable-project=js - --enable-readline - --enable-release - --enable-shared-js - - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if use debug; then - myeconfargs+=( --disable-optimize ) - myeconfargs+=( --enable-debug-symbols ) - myeconfargs+=( --enable-real-time-tracing ) - else - myeconfargs+=( --enable-optimize ) - myeconfargs+=( --disable-debug-symbols ) - myeconfargs+=( --disable-real-time-tracing ) - fi - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - if tc-ld-is-mold ; then - myeconfargs+=( --enable-linker=mold ) - else - myeconfargs+=( --enable-linker=lld ) - fi - myeconfargs+=( --enable-lto=cross ) - - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto=full ) - fi - fi - - # LTO flag was handled via configure - filter-lto - - # Use system's Python environment - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-115.8.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.8.0.ebuild deleted file mode 100644 index b8e646b0f86d..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-115.8.0.ebuild +++ /dev/null @@ -1,474 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -# Patch version -FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz" - -LLVM_MAX_SLOT=17 - -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="ncurses,ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" - -SLOT="$(ver_cut 1)" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - || ( - ( - sys-devel/llvm:17 - clang? ( - sys-devel/lld:17 - sys-devel/clang:17 - virtual/rust:0/llvm-17 - ) - ) - ( - sys-devel/llvm:16 - clang? ( - sys-devel/lld:16 - sys-devel/clang:16 - virtual/rust:0/llvm-16 - ) - ) - ( - sys-devel/llvm:15 - clang? ( - sys-devel/lld:15 - sys-devel/clang:15 - virtual/rust:0/llvm-15 - ) - ) - ) - !clang? ( virtual/rust ) - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - )" -DEPEND=">=dev-libs/icu-73.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - python_has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - if ! use ppc64; then - rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die - fi - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - - local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') - [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") - [[ -z ${version_clang} ]] && die "Failed to read clang version!" - - if tc-is-gcc; then - have_switched_compiler=yes - fi - AR=llvm-ar - CC=${CHOST}-clang-${version_clang} - CXX=${CHOST}-clang++-${version_clang} - NM=llvm-nm - RANLIB=llvm-ranlib - - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain, - # AS is used in a non-standard way by upstream, #bmo1654031 - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - export AS="$(tc-getCC) -c" - tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - - --disable-ctype - --disable-jemalloc - --disable-smoosh - --disable-strip - - --enable-project=js - --enable-readline - --enable-release - --enable-shared-js - - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if use debug; then - myeconfargs+=( --disable-optimize ) - myeconfargs+=( --enable-debug-symbols ) - myeconfargs+=( --enable-real-time-tracing ) - else - myeconfargs+=( --enable-optimize ) - myeconfargs+=( --disable-debug-symbols ) - myeconfargs+=( --disable-real-time-tracing ) - fi - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - if tc-ld-is-mold ; then - myeconfargs+=( --enable-linker=mold ) - else - myeconfargs+=( --enable-linker=lld ) - fi - myeconfargs+=( --enable-lto=cross ) - - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto=full ) - fi - fi - - # LTO flag was handled via configure - filter-lto - - # Use system's Python environment - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-115.9.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.9.0.ebuild deleted file mode 100644 index b8e646b0f86d..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-115.9.0.ebuild +++ /dev/null @@ -1,474 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -# Patch version -FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz" - -LLVM_MAX_SLOT=17 - -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="ncurses,ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" - -SLOT="$(ver_cut 1)" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - || ( - ( - sys-devel/llvm:17 - clang? ( - sys-devel/lld:17 - sys-devel/clang:17 - virtual/rust:0/llvm-17 - ) - ) - ( - sys-devel/llvm:16 - clang? ( - sys-devel/lld:16 - sys-devel/clang:16 - virtual/rust:0/llvm-16 - ) - ) - ( - sys-devel/llvm:15 - clang? ( - sys-devel/lld:15 - sys-devel/clang:15 - virtual/rust:0/llvm-15 - ) - ) - ) - !clang? ( virtual/rust ) - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - )" -DEPEND=">=dev-libs/icu-73.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then - einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ! tc-ld-is-mold ; then - if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then - einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - python_has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily -# placed here until toolchain-funcs.eclass gets an official support for mold linker. -# Please see: -# https://github.com/gentoo/gentoo/pull/28366 || -# https://github.com/gentoo/gentoo/pull/28355 -tc-ld-is-mold() { - local out - - # Ensure ld output is in English. - local -x LC_ALL=C - - # First check the linker directly. - out=$($(tc-getLD "$@") --version 2>&1) - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # Then see if they're selecting mold via compiler flags. - # Note: We're assuming they're using LDFLAGS to hold the - # options and not CFLAGS/CXXFLAGS. - local base="${T}/test-tc-linker" - cat <<-EOF > "${base}.c" - int main() { return 0; } - EOF - out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) - rm -f "${base}"* - if [[ ${out} == *"mold"* ]] ; then - return 0 - fi - - # No mold here! - return 1 -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="4000M" - else - CHECKREQS_DISK_BUILD="3600M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto && tc-ld-is-lld ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - if ! use ppc64; then - rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die - fi - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - - local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') - [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") - [[ -z ${version_clang} ]] && die "Failed to read clang version!" - - if tc-is-gcc; then - have_switched_compiler=yes - fi - AR=llvm-ar - CC=${CHOST}-clang-${version_clang} - CXX=${CHOST}-clang++-${version_clang} - NM=llvm-nm - RANLIB=llvm-ranlib - - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain, - # AS is used in a non-standard way by upstream, #bmo1654031 - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - export AS="$(tc-getCC) -c" - tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - - --disable-ctype - --disable-jemalloc - --disable-smoosh - --disable-strip - - --enable-project=js - --enable-readline - --enable-release - --enable-shared-js - - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if use debug; then - myeconfargs+=( --disable-optimize ) - myeconfargs+=( --enable-debug-symbols ) - myeconfargs+=( --enable-real-time-tracing ) - else - myeconfargs+=( --enable-optimize ) - myeconfargs+=( --disable-debug-symbols ) - myeconfargs+=( --disable-real-time-tracing ) - fi - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - if tc-ld-is-mold ; then - myeconfargs+=( --enable-linker=mold ) - else - myeconfargs+=( --enable-linker=lld ) - fi - myeconfargs+=( --enable-lto=cross ) - - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto=full ) - fi - fi - - # LTO flag was handled via configure - filter-lto - - # Use system's Python environment - export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" - export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild index b8e646b0f86d..42638e065033 100644 --- a/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild @@ -61,7 +61,7 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES} DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86" SLOT="$(ver_cut 1)" LICENSE="MPL-2.0" |