aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2012-01-04 19:30:43 -0600
committerWilliam Pitcock <nenolod@dereferenced.org>2012-01-04 19:30:43 -0600
commit6198b857ec8a0cfded02d1ee7250de2d62bfb91e (patch)
treea511fe1df2427a6533f453b3bbc353aa14d3b47c /main
parent3610b9c6ad1b379a3bfe22e1ade82d2d592c01c9 (diff)
downloadaports-6198b857ec8a0cfded02d1ee7250de2d62bfb91e.tar.bz2
aports-6198b857ec8a0cfded02d1ee7250de2d62bfb91e.tar.xz
main/libunwind: build system libunwind (instead of building it into libgcc)
Diffstat (limited to 'main')
-rw-r--r--main/libunwind/APKBUILD51
-rw-r--r--main/libunwind/disable-setjmp.patch37
2 files changed, 88 insertions, 0 deletions
diff --git a/main/libunwind/APKBUILD b/main/libunwind/APKBUILD
new file mode 100644
index 0000000000..85d60776ce
--- /dev/null
+++ b/main/libunwind/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=libunwind
+pkgver=1.0.1
+pkgrel=0
+pkgdesc="portable and efficient API to determine the call-chain of a program"
+url="http://www.nongnu.org/libunwind/"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="$depends_dev autoconf automake libtool"
+install=""
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://download.savannah.gnu.org/releases/libunwind/libunwind-$pkgver.tar.gz
+ disable-setjmp.patch"
+
+_builddir="$srcdir"/libunwind-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+
+ libtoolize --force
+ autoreconf
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --libdir=/lib \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ rm -f "$pkgdir"/lib/*.la
+}
+
+md5sums="993e47cca7315e22239c3e0d987e94e0 libunwind-1.0.1.tar.gz
+43058a07e7648b0dcbb84890ccc8c760 disable-setjmp.patch"
diff --git a/main/libunwind/disable-setjmp.patch b/main/libunwind/disable-setjmp.patch
new file mode 100644
index 0000000000..442a5dfd7a
--- /dev/null
+++ b/main/libunwind/disable-setjmp.patch
@@ -0,0 +1,37 @@
+http://cvs.fedoraproject.org/viewvc/rpms/libunwind/devel/libunwind-disable-setjmp.patch?revision=1.1&view=markup
+http://bugs.gentoo.org/299344
+
+At least x86_64 version cannot work, src/setjmp/setjmp.c and
+src/setjmp/sigsetjmp.c are not even compiled, src/x86_64/longjmp.S does not
+match src/setjmp/setjmp.c + include/tdep-x86_64/jmpbuf.h .
+
+--- libunwind-1.0.1/src/Makefile.am
++++ libunwind-1.0.1/src/Makefile.am
+@@ -9,6 +9,3 @@
+ # libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
+ # at the end.
+-if !REMOTE_ONLY
+-lib_LTLIBRARIES += libunwind-setjmp.la
+-endif
+
+ #
+--- libunwind-1.0.1/tests/Makefile.am
++++ libunwind-1.0.1/tests/Makefile.am
+@@ -27,7 +27,7 @@
+ Gia64-test-nat Lia64-test-nat \
+ Gia64-test-rbs Lia64-test-rbs \
+ Gia64-test-readonly Lia64-test-readonly \
+- ia64-test-setjmp ia64-test-sig
++ ia64-test-sig
+ else
+ if ARCH_PPC64
+ if USE_ALTIVEC
+@@ -44,7 +44,7 @@
+ Gtest-dyn1 Ltest-dyn1 \
+ Gtest-trace Ltest-trace \
+ test-async-sig test-flush-cache test-init-remote \
+- test-mem test-setjmp test-ptrace \
++ test-mem test-ptrace \
+ Ltest-nomalloc Ltest-nocalloc rs-race
+ noinst_PROGRAMS_cdep = forker mapper test-ptrace-misc \
+ Gperf-simple Lperf-simple