* add js115

This commit is contained in:
Alexander Baldeck 2023-11-13 16:10:10 +01:00
parent e1c0dcae25
commit e7eab5c8ab
3 changed files with 266 additions and 0 deletions

28
js115/.SRCINFO Normal file
View File

@ -0,0 +1,28 @@
pkgbase = js115
pkgdesc = JavaScript interpreter and libraries - Version 115
pkgver = 115.4.0
pkgrel = 2
url = https://spidermonkey.dev/
arch = x86_64
license = MPL
checkdepends = git
checkdepends = mercurial
makedepends = autoconf2.13
makedepends = clang
makedepends = lld
makedepends = llvm
makedepends = python
makedepends = rust
makedepends = zip
depends = gcc-libs
depends = readline
depends = sh
depends = zlib
options = !lto
source = https://archive.mozilla.org/pub/firefox/releases/115.4.0esr/source/firefox-115.4.0esr.source.tar.xz
source = https://archive.mozilla.org/pub/firefox/releases/115.4.0esr/source/firefox-115.4.0esr.source.tar.xz.asc
validpgpkeys = 14F26682D0916CDD81E37B6D61B7B526D98F0353
b2sums = 81b3d9e4fa45ef012d726b502d6f86323b509fb25a6c20be42fc37936357df5b661d53a1326a7662bab704aad85db14dd804d5375cb6100a02dc226908039b90
b2sums = SKIP
pkgname = js115

175
js115/PKGBUILD Normal file
View File

@ -0,0 +1,175 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
pkgname=js115
pkgver=115.4.0
pkgrel=2
pkgdesc="JavaScript interpreter and libraries - Version 115"
url="https://spidermonkey.dev/"
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
license=(MPL)
depends=(
gcc-libs
readline
sh
zlib
)
makedepends=(
autoconf2.13
cbindgen
clang
lld
llvm
nodejs
python
rust
zip
)
checkdepends=(
git
mercurial
)
options=(!lto)
_relver=${pkgver}esr
source=(
https://archive.mozilla.org/pub/firefox/releases/$_relver/source/firefox-$_relver.source.tar.xz{,.asc}
)
b2sums=('81b3d9e4fa45ef012d726b502d6f86323b509fb25a6c20be42fc37936357df5b661d53a1326a7662bab704aad85db14dd804d5375cb6100a02dc226908039b90'
'SKIP')
validpgpkeys=(
# Mozilla Software Releases <release@mozilla.com>
# https://blog.mozilla.org/security/2023/05/11/updated-gpg-key-for-signing-firefox-releases/
14F26682D0916CDD81E37B6D61B7B526D98F0353
)
# Make sure the duplication between bin and lib is found
COMPRESSZST+=(--long)
prepare() {
mkdir mozbuild
cd firefox-$pkgver
cat >../mozconfig <<END
ac_add_options --enable-application=js
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
ac_add_options --enable-linker=lld
ac_add_options --disable-bootstrap
ac_add_options --disable-debug
ac_add_options --disable-jemalloc
ac_add_options --disable-strip
# System libraries
ac_add_options --with-system-zlib
ac_add_options --without-system-icu
# Features
ac_add_options --enable-readline
ac_add_options --enable-shared-js
ac_add_options --enable-tests
ac_add_options --with-intl-api
END
}
build() {
cd firefox-$pkgver
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip
# malloc_usable_size is used in various parts of the codebase
CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
# Greatly reduce size of relocation tables
# https://gitlab.archlinux.org/archlinux/rfcs/-/blob/master/rfcs/0023-pack-relative-relocs.rst
LDFLAGS+=" -Wl,-z,pack-relative-relocs"
export CC=clang
export CXX=clang++
case "${CARCH}" in
powerpc64le|x86_64)
# Do 3-tier PGO
echo "Building instrumented JS..."
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-profile-generate=cross
END
./mach build
echo "Profiling instrumented JS..."
(
local js="$PWD/obj/dist/bin/js"
export LLVM_PROFILE_FILE="$PWD/js-%p-%m.profraw"
cd js/src/octane
"$js" run.js
cd ../../../third_party/webkit/PerformanceTests/ARES-6
"$js" cli.js
cd ../SunSpider/sunspider-0.9.1
"$js" sunspider-standalone-driver.js
)
llvm-profdata merge -o merged.profdata *.profraw
stat -c "Profile data found (%s bytes)" merged.profdata
test -s merged.profdata
echo "Removing instrumented JS..."
./mach clobber
echo "Building optimized JS..."
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-lto=cross,full
ac_add_options --enable-profile-use=cross
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
END
;;
*)
export CC=${CHOST}-gcc
export CXX=${CHOST}-g++
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-linker=bfd
ac_add_options --disable-jit
END
cat .mozconfig
;;
esac
./mach build
}
check() {
local jstests_extra_args=(
--format=none
--exclude-random
--wpt=disabled
) jittest_extra_args=(
--format=none
--timeout 300
) jittest_test_args=(
basic
)
cd firefox-$pkgver/obj
make -C js/src check-jstests check-jit-test \
JSTESTS_EXTRA_ARGS="${jstests_extra_args[*]}" \
JITTEST_EXTRA_ARGS="${jittest_extra_args[*]}" \
JITTEST_TEST_ARGS="${jittest_test_args[*]}"
}
package() {
cd firefox-$pkgver/obj
make DESTDIR="$pkgdir" install
rm "$pkgdir"/usr/lib/*.ajs
find "$pkgdir"/usr/{lib/pkgconfig,include} -type f -exec chmod -c a-x {} +
}
# vim:set sw=2 sts=-1 et:

View File

@ -0,0 +1,63 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=n66D
-----END PGP PUBLIC KEY BLOCK-----