aboutsummaryrefslogtreecommitdiffstats
path: root/community/binaryen/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/binaryen/APKBUILD')
-rw-r--r--community/binaryen/APKBUILD89
1 files changed, 58 insertions, 31 deletions
diff --git a/community/binaryen/APKBUILD b/community/binaryen/APKBUILD
index 8fd9abb6e37..3bb8c6c5d9c 100644
--- a/community/binaryen/APKBUILD
+++ b/community/binaryen/APKBUILD
@@ -1,52 +1,79 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=binaryen
-pkgver=40
-pkgrel=1
+pkgver=117
+pkgrel=0
pkgdesc="Compiler infrastructure and toolchain library for WebAssembly, in C++"
-options="!check" # Tests require python2
url="https://github.com/WebAssembly/binaryen"
-arch="all !s390x !mips !mips64"
+arch="all !s390x"
license="Apache-2.0"
-makedepends="cmake"
-checkdepends="nodejs" # python2"
+makedepends="
+ clang
+ cmake
+ python3
+ samurai
+ "
+checkdepends="
+ filecheck
+ gtest-dev
+ llvm-test-utils
+ nodejs
+ "
subpackages="$pkgname-dev"
-source="binaryen-$pkgver.tar.gz::https://github.com/WebAssembly/binaryen/archive/version_$pkgver.tar.gz
- link-dynamically.patch
- ignore-type-limits-error.patch
- fix-gcc8-wcatch-value.patch
- gcc-march-aarch64.patch"
+source="https://github.com/WebAssembly/binaryen/archive/version_$pkgver/binaryen-$pkgver.tar.gz
+ use-system-gtest.patch
+ "
builddir="$srcdir/$pkgname-version_$pkgver"
-case "$CARCH" in
- x86) options="!check";; # XXX: two tests fail
-esac
-
build() {
- cmake \
- -DCMAKE_BUILD_TYPE=None \
+ case "$CARCH" in
+ arm*|aarch64|riscv64)
+ export CFLAGS="${CFLAGS/-fstack-clash-protection}"
+ export CXXFLAGS="${CFLAGS/-fstack-clash-protection}"
+ ;;
+ esac
+
+ CC=clang \
+ CXX=clang++ \
+ LDFLAGS="$LDFLAGS -Wl,-z,stack-size=0x100000" \
+ cmake -G Ninja -B build \
+ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
- -DBUILD_SHARED_LIBS=ON
- make
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTS=$(want_check && echo ON || echo OFF)
+ cmake --build build
}
check() {
- # waterfall requires additional dependency
- # gcc-tests fail, dunno why
- python2 check.py --no-test-waterfall --no-run-gcc-tests
+ # Tests are extremely chatty.
+ msg 'running tests with stdout/stderr redirected into ./check.log...'
+ python3 check.py --binaryen-bin build/bin > check.log 2>&1 || {
+ echo 'tests failed, printing last 1000 lines of check.log:' >&2
+ tail -n 1000 check.log
+
+ case "$CARCH" in
+ # XXX: Ignore test failures on 32-bit arches (broken tests)
+ # and riscv64.
+ arm* | riscv64 | x86) return 0;;
+ *) return 1;;
+ esac
+ }
}
package() {
- make install DESTDIR="$pkgdir"
- rm "$pkgdir"/usr/share/binaryen/binaryen.js
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+
+ # XXX: doesn't exist on riscv64
+ amove usr/bin/binaryen-unittests || true
}
-sha512sums="89aa73c1686fb6d54c91990acbc7cd6c1bc7e6da57731bf009fe507c955c98c91582b5b9924c3c3f6a2d36d55ae73f1be79911cdce93dfd74954bca46861c8ad binaryen-40.tar.gz
-9729655be0d952385de959bf7dd84a075b192fe4b221bb5c23e562a83a2bf9202a07536ad393157b23e0447f28bdd16283f64a63588ca42597bb59e9551219c8 link-dynamically.patch
-3b95a197cd8805dfa714cf9f31adc1437b6d29bd4082f752c16d98c40cd024b110c02a412285c78251cb5d0b3080c0f9e4d45d8dd0166c71b9462b1610191ab8 ignore-type-limits-error.patch
-f937a9f9f7f2cab97aa15ade3a800b8924755b27ae4e9e8951ee97dc79d54c95db28d3c71b32c2ed0b5711d6e1884c33cc307564abe759f6ea3c23db60d433a1 fix-gcc8-wcatch-value.patch
-43db7456ce3b9a6239b24caa9fc9cb1a59975e742fa74ff6bfcdadbbb453afee62842aaa973596d78294704c7d76cb73eb7703f1d66e40b1bb164e86e5da5914 gcc-march-aarch64.patch"
+sha512sums="
+dba535e4595b549457113ced0230a578a8177f6cd90e2713be507611e94d76a77b7fd66e01e3db7950eeb8ebdd73a8df899ed290842a78b20707eec5a681c44e binaryen-117.tar.gz
+ea332616e91c7674c471eb8f8b6352c6d342a17e2b2fd585c6c2b10de89e1be74e63fe42d908af5b2e109d043085e4300905e4efb2ec57bd275db643b22e167d use-system-gtest.patch
+"