diff options
-rw-r--r-- | user/gc/APKBUILD | 52 | ||||
-rw-r--r-- | user/gc/fix-boehm-gc.patch | 10 |
2 files changed, 62 insertions, 0 deletions
diff --git a/user/gc/APKBUILD b/user/gc/APKBUILD new file mode 100644 index 000000000..08c89d29a --- /dev/null +++ b/user/gc/APKBUILD @@ -0,0 +1,52 @@ +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=gc +pkgver=7.6.6 +pkgrel=0 +pkgdesc="A garbage collector for C and C++" +url="http://hboehm.info/gc/" +arch="all" +license="MIT" +makedepends="libatomic_ops-dev linux-headers" +subpackages="$pkgname-dev $pkgname-doc libgc++:libgccpp" +source="https://github.com/ivmai/bdwgc/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz + fix-boehm-gc.patch + " +builddir="$srcdir/gc-${pkgver%[a-z]}" + +build() { + cd "$builddir" + + if [ "$CLIBC" = "musl" ]; then + export CFLAGS="$CFLAGS -D_GNU_SOURCE -DNO_GETCONTEXT -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR" + fi + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --datadir=/usr/share/doc/gc \ + --enable-cplusplus + make +} + +check() { + cd "$builddir" + + if [ "$CARCH" = "ppc" ]; then + make check || true + else + make check + fi +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +libgccpp() { + install -d "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgccpp.* "$subpkgdir"/usr/lib/ +} + +sha512sums="85be341132fa460fcad7ca323cf1c594f37e19430269d639ca796b9e3502b0d496822cdccb2b7ca77859f3d19a43165b963142b60fce6b1271ed9a3cccb6620b gc-7.6.6.tar.gz +6439505931f0d023bf27d6ce0af90d09dc23bb9dd49b561566ec54b2cddc20642be9bd7b41203f643cb6efed3db2f54aef410b436f3acc2351fe4bb0a8791ea4 fix-boehm-gc.patch" diff --git a/user/gc/fix-boehm-gc.patch b/user/gc/fix-boehm-gc.patch new file mode 100644 index 000000000..6ac3870b0 --- /dev/null +++ b/user/gc/fix-boehm-gc.patch @@ -0,0 +1,10 @@ +--- gc-7.6.0.orig/pthread_stop_world.c ++++ gc-7.6.0/pthread_stop_world.c +@@ -45,6 +45,7 @@ + #include <semaphore.h> + #include <errno.h> + #include <unistd.h> ++#include <sys/select.h> + #include "atomic_ops.h" + + /* It's safe to call original pthread_sigmask() here. */ |