# Template file for 'mozjs91' pkgname=mozjs91 version=91.7.1 revision=1 wrksrc="firefox-${version}" build_wrksrc=js/src build_style=gnu-configure build_helper=rust make_check_target=check-jit-test configure_args="--disable-jemalloc --disable-strip --disable-tests \ --disable-optimize --disable-debug --enable-ctypes --enable-readline \ --enable-shared-js --enable-system-ffi --with-intl-api --with-system-icu \ --with-system-nspr --with-system-zlib --enable-hardening --enable-release" hostmakedepends="make pkg-config python3 python3-setuptools python3-six perl m4 awk rust cargo llvm12 clang" makedepends="icu-devel libffi-devel nspr-devel python3-devel readline-devel zlib-devel rust-std" checkdepends=python3 short_desc="SpiderMonkey JavaScript interpreter and library (91.x)" maintainer="q66 " license="MPL-2.0" homepage="https://spidermonkey.dev" distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz" checksum=57494a445e72f7eacb0bb870a3a79cde3c2143e234873c0c3e269df1d4742c92 LDFLAGS="-Wl,-z,stack-size=1048576" if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then makedepends+=" libatomic-devel" LDFLAGS+=" -latomic" fi if [ "$XBPS_TARGET_MACHINE" = i686 ]; then # Disable LTO on i686, otherwise compilation of `jsrust` fails with - # error: ran out of registers during register allocation # LLVM ERROR: Cannot emit physreg copy instruction # error: could not compile `jsrust` due to previous error export MOZ_NO_RUST_LTO=1 fi pre_configure() { if [ "$CROSS_BUILD" ]; then configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET} --enable-linker=bfd" fi export M4=m4 export AWK=awk export AC_MACRODIR=../../build/autoconf chmod 0755 ../../build/autoconf/autoconf.sh sh ../../build/autoconf/autoconf.sh configure.in > configure chmod 0755 configure } post_install() { # Remove unneeded static library rm -f "${DESTDIR}"/usr/lib/*.ajs # it has correct soname but not the right file name mv "${DESTDIR}"/usr/lib/libmozjs-91.so \ "${DESTDIR}"/usr/lib/libmozjs-91.so.0 ln -rs "${DESTDIR}"/usr/lib/libmozjs-91.so.0 \ "${DESTDIR}"/usr/lib/libmozjs-91.so } pre_check() { if [ "$XBPS_WORDSIZE" = 32 ]; then vsed -i jit-test/tests/basic/bug653153.js -e s/65536/65568/g vsed -i jit-test/tests/basic/bug653153.js -e s/65537/65569/g fi if [ "$XBPS_TARGET_MACHINE" = i686 ]; then export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \ -x basic/fdlibm-for-sin-cos-tan-argument.js \ -x gc/gcparam.js \ -x ion/dce-with-rinstructions.js \ -x sunspider/check-3d-cube.js \ -x sunspider/check-3d-raytrace.js \ -x sunspider/check-access-nbody.js \ -x wasm/nan-semantics.js \ -x wasm/spec/spec/float_literals.wast.js \ -x wasm/spec/spec/float_memory.wast.js \ -x wasm/spec/threads/float_memory.wast.js \ " fi if [ "$XBPS_LIBC" = musl ]; then export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \ -x sunspider/check-date-format-tofte.js \ " fi } mozjs91-devel_package() { depends="nspr-devel ${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/bin/js91-config vmove usr/include vmove "usr/lib/*.so" vmove usr/lib/pkgconfig } }