summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2010-01-31 12:37:15 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2010-01-31 12:37:15 +0000
commit26667bccb36b2b2d51c4735268d11c3d3b7ed443 (patch)
treeeb80a85e784ab8898b5abb266d52784a76c81015 /sys-libs/libunwind
parentAdd prefix keywords, change EAPI to 3. (diff)
downloadgentoo-2-26667bccb36b2b2d51c4735268d11c3d3b7ed443.tar.gz
gentoo-2-26667bccb36b2b2d51c4735268d11c3d3b7ed443.tar.bz2
gentoo-2-26667bccb36b2b2d51c4735268d11c3d3b7ed443.zip
Disable building of libunwind-setjmp library as imcompatible with GLIBC >= 2.11 wrt #299344 (from Fedora). Fix implicit declaration wrt #289445.
(Portage version: 2.2_rc61/cvs/Linux x86_64)
Diffstat (limited to 'sys-libs/libunwind')
-rw-r--r--sys-libs/libunwind/ChangeLog12
-rw-r--r--sys-libs/libunwind/files/libunwind-0.99-disable-setjmp.patch213
-rw-r--r--sys-libs/libunwind/files/libunwind-0.99-implicit-declaration.patch17
-rw-r--r--sys-libs/libunwind/libunwind-0.99-r1.ebuild33
4 files changed, 273 insertions, 2 deletions
diff --git a/sys-libs/libunwind/ChangeLog b/sys-libs/libunwind/ChangeLog
index 221fea5ce03c..086b9e0ec195 100644
--- a/sys-libs/libunwind/ChangeLog
+++ b/sys-libs/libunwind/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-libs/libunwind
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libunwind/ChangeLog,v 1.8 2009/11/24 19:10:14 armin76 Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libunwind/ChangeLog,v 1.9 2010/01/31 12:37:15 ssuominen Exp $
+
+*libunwind-0.99-r1 (31 Jan 2010)
+
+ 31 Jan 2010; Samuli Suominen <ssuominen@gentoo.org>
+ +libunwind-0.99-r1.ebuild, +files/libunwind-0.99-disable-setjmp.patch,
+ +files/libunwind-0.99-implicit-declaration.patch:
+ Disable building of libunwind-setjmp library as imcompatible with GLIBC >=
+ 2.11 wrt #299344 (from Fedora). Fix implicit declaration wrt #289445.
24 Nov 2009; Raúl Porcel <armin76@gentoo.org> libunwind-0.99.ebuild:
ia64 stable wrt #289445
diff --git a/sys-libs/libunwind/files/libunwind-0.99-disable-setjmp.patch b/sys-libs/libunwind/files/libunwind-0.99-disable-setjmp.patch
new file mode 100644
index 000000000000..698d2acff816
--- /dev/null
+++ b/sys-libs/libunwind/files/libunwind-0.99-disable-setjmp.patch
@@ -0,0 +1,213 @@
+http://cvs.fedoraproject.org/viewvc/rpms/libunwind/devel/libunwind-disable-setjmp.patch?revision=1.1&view=markup
+http://bugs.gentoo.org/show_bug.cgi?id=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 .
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -12,7 +12,7 @@ lib_LTLIBRARIES_cdep_setjmp =
+ else
+ LIBRARIES_cdep = libunwind-ptrace.a
+ lib_LTLIBRARIES_cdep = libunwind.la
+-lib_LTLIBRARIES_cdep_setjmp = libunwind-setjmp.la
++lib_LTLIBRARIES_cdep_setjmp = #libunwind-setjmp.la
+ endif
+
+ ### libunwind-ptrace:
+@@ -27,21 +27,21 @@ libunwind_ptrace_a_SOURCES = \
+ ptrace/_UPT_reg_offset.c ptrace/_UPT_resume.c
+
+ ### libunwind-setjmp:
+-libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
+- -version-info $(SETJMP_SO_VERSION)
+-libunwind_setjmp_la_LIBADD = libunwind-$(arch).la -lc
+-libunwind_setjmp_la_SOURCES_common = setjmp/setjmp_i.h \
+- setjmp/longjmp.c \
+- setjmp/siglongjmp.c
+-libunwind_setjmp_la_SOURCES_arm = arm/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_ia64 = ia64/setjmp.S ia64/sigsetjmp.S \
+- ia64/longjmp.S ia64/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_hppa = hppa/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_mips = mips/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_x86 = x86/longjmp.S x86/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_x86_64 = x86_64/longjmp.S x86_64/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_ppc64 = ppc/longjmp.S ppc/siglongjmp.S
+-libunwind_setjmp_la_SOURCES_ppc32 = ppc/longjmp.S ppc/siglongjmp.S
++#libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
++# -version-info $(SETJMP_SO_VERSION)
++#libunwind_setjmp_la_LIBADD = libunwind-$(arch).la -lc
++#libunwind_setjmp_la_SOURCES_common = setjmp/setjmp_i.h \
++# setjmp/longjmp.c \
++# setjmp/siglongjmp.c
++#libunwind_setjmp_la_SOURCES_arm = arm/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_ia64 = ia64/setjmp.S ia64/sigsetjmp.S \
++# ia64/longjmp.S ia64/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_hppa = hppa/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_mips = mips/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_x86 = x86/longjmp.S x86/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_x86_64 = x86_64/longjmp.S x86_64/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_ppc64 = ppc/longjmp.S ppc/siglongjmp.S
++#libunwind_setjmp_la_SOURCES_ppc32 = ppc/longjmp.S ppc/siglongjmp.S
+
+ ### libunwind:
+
+@@ -359,8 +359,8 @@ if ARCH_ARM
+ if !REMOTE_ONLY
+ libunwind_arm_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_arm)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_arm)
+ else
+ if ARCH_IA64
+ ia64_mk_Gcursor_i_SOURCES = ia64/mk_Gcursor_i.c
+@@ -378,8 +378,8 @@ Lcursor_i.h: ia64/mk_Lcursor_i
+ if !REMOTE_ONLY
+ libunwind_ia64_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_ia64)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_ia64)
+ else
+ if ARCH_HPPA
+ lib_LTLIBRARIES_arch = libunwind-hppa.la
+@@ -389,8 +389,8 @@ if ARCH_HPPA
+ if !REMOTE_ONLY
+ libunwind_hppa_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_hppa)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_hppa)
+ else
+ if ARCH_MIPS
+ lib_LTLIBRARIES_arch = libunwind-mips.la
+@@ -400,8 +400,8 @@ if ARCH_MIPS
+ if !REMOTE_ONLY
+ libunwind_mips_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_mips)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_mips)
+ else
+ if ARCH_X86
+ lib_LTLIBRARIES_arch = libunwind-x86.la
+@@ -411,8 +411,8 @@ if ARCH_X86
+ if !REMOTE_ONLY
+ libunwind_x86_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_x86)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_x86)
+ else
+ if ARCH_X86_64
+ lib_LTLIBRARIES_arch = libunwind-x86_64.la
+@@ -422,8 +422,8 @@ if ARCH_X86_64
+ if !REMOTE_ONLY
+ libunwind_x86_64_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_x86_64)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_x86_64)
+ else
+ if ARCH_PPC32
+ lib_LTLIBRARIES_arch = libunwind-ppc32.la
+@@ -433,8 +433,8 @@ if ARCH_PPC32
+ if !REMOTE_ONLY
+ libunwind_ppc32_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_ppc32)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_ppc32)
+ else
+ if ARCH_PPC64
+ lib_LTLIBRARIES_arch = libunwind-ppc64.la
+@@ -444,8 +444,8 @@ if ARCH_PPC64
+ if !REMOTE_ONLY
+ libunwind_ppc64_la_LIBADD = libunwind.la -lc
+ endif
+- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_ppc64)
++# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_ppc64)
+
+ endif # ARCH_PPC64
+ endif # ARCH_PPC32
+@@ -466,7 +466,7 @@ libunwind_la_LIBADD = -lc $(LIBCRTS)
+
+ lib_LIBRARIES = $(LIBRARIES_cdep)
+ lib_LTLIBRARIES = $(lib_LTLIBRARIES_cdep) $(lib_LTLIBRARIES_arch) \
+- $(lib_LTLIBRARIES_cdep_setjmp)
++ # $(lib_LTLIBRARIES_cdep_setjmp)
+
+ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/tdep-$(arch) -I.
+ AM_CCASFLAGS = $(AM_CPPFLAGS)
+@@ -488,16 +488,16 @@ EXTRA_DIST = elfxx.h elfxx.c unwind/unwind-internal.h \
+ $(libunwind_mips_la_SOURCES_mips) \
+ $(libunwind_x86_la_SOURCES_x86) \
+ $(libunwind_x86_64_la_SOURCES_x86_64) \
+- $(libunwind_ptrace_a_SOURCES) \
+- $(libunwind_setjmp_la_SOURCES_common) \
+- $(libunwind_setjmp_la_SOURCES_arm) \
+- $(libunwind_setjmp_la_SOURCES_hppa) \
+- $(libunwind_setjmp_la_SOURCES_ia64) \
+- $(libunwind_setjmp_la_SOURCES_mips) \
+- $(libunwind_setjmp_la_SOURCES_x86) \
+- $(libunwind_setjmp_la_SOURCES_x86_64) \
+- $(libunwind_setjmp_la_SOURCES_ppc32) \
+- $(libunwind_setjmp_la_SOURCES_ppc64)
++ $(libunwind_ptrace_a_SOURCES)
++# $(libunwind_setjmp_la_SOURCES_common) \
++# $(libunwind_setjmp_la_SOURCES_arm) \
++# $(libunwind_setjmp_la_SOURCES_hppa) \
++# $(libunwind_setjmp_la_SOURCES_ia64) \
++# $(libunwind_setjmp_la_SOURCES_mips) \
++# $(libunwind_setjmp_la_SOURCES_x86) \
++# $(libunwind_setjmp_la_SOURCES_x86_64) \
++# $(libunwind_setjmp_la_SOURCES_ppc32) \
++# $(libunwind_setjmp_la_SOURCES_ppc64)
+
+
+ # The -version-info flag accepts an argument of the form
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -24,7 +24,8 @@ if ARCH_IA64
+ 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
++# ia64-test-setjmp
+ else
+ if ARCH_PPC64
+ if USE_ALTIVEC
+@@ -40,8 +41,9 @@ endif #ARCH_IA64
+ Gtest-resume-sig Ltest-resume-sig \
+ Gtest-dyn1 Ltest-dyn1 \
+ test-async-sig test-flush-cache test-init-remote \
+- test-mem test-setjmp test-ptrace \
++ test-mem test-ptrace \
+ Ltest-nomalloc
++# test-setjmp
+ noinst_PROGRAMS_cdep = forker mapper test-ptrace-misc test-varargs \
+ Gperf-simple Lperf-simple
+
+@@ -93,8 +95,8 @@ test_ptrace_misc_SOURCES = test-ptrace-misc.c ident.c
+ LIBUNWIND = ../src/libunwind-$(arch).la $(LIBUNWIND_local)
+ LDADD = $(LIBUNWIND)
+
+-test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
+-ia64_test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
++# test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
++# ia64_test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
+ test_ptrace_LDADD = ../src/libunwind-ptrace.a $(LIBUNWIND)
+ Ltest_concurrent_LDADD = $(LIBUNWIND) -lpthread
+ Gtest_concurrent_LDADD = $(LIBUNWIND) -lpthread
diff --git a/sys-libs/libunwind/files/libunwind-0.99-implicit-declaration.patch b/sys-libs/libunwind/files/libunwind-0.99-implicit-declaration.patch
new file mode 100644
index 000000000000..6387f0a889c7
--- /dev/null
+++ b/sys-libs/libunwind/files/libunwind-0.99-implicit-declaration.patch
@@ -0,0 +1,17 @@
+http://bugs.gentoo.org/show_bug.cgi?id=289445#c2
+
+--- src/x86_64/unwind_i.h
++++ src/x86_64/unwind_i.h
+@@ -65,6 +65,12 @@
+ extern void x86_64_local_addr_space_init (void);
+ extern int x86_64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
+ void *arg);
++
++/* implemented in setcontext.S */
++#if defined(__linux)
++extern int _Ux86_64_setcontext (const ucontext_t *ucp);
++#endif
++
+ #if 0
+ extern dwarf_loc_t x86_64_scratch_loc (struct cursor *c, unw_regnum_t reg);
+ #endif
diff --git a/sys-libs/libunwind/libunwind-0.99-r1.ebuild b/sys-libs/libunwind/libunwind-0.99-r1.ebuild
new file mode 100644
index 000000000000..5975f23d024d
--- /dev/null
+++ b/sys-libs/libunwind/libunwind-0.99-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libunwind/libunwind-0.99-r1.ebuild,v 1.1 2010/01/31 12:37:15 ssuominen Exp $
+
+inherit autotools eutils
+
+DESCRIPTION="Portable and efficient API to determine the call-chain of a program"
+HOMEPAGE="http://savannah.nongnu.org/projects/libunwind"
+SRC_URI="http://download.savannah.nongnu.org/releases/libunwind/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="7"
+KEYWORDS="~amd64 ~ia64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+RESTRICT="test" # https://savannah.nongnu.org/bugs/?22368
+ # https://bugs.gentoo.org/273372
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-disable-setjmp.patch \
+ "${FILESDIR}"/${P}-implicit-declaration.patch
+ eautoreconf
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+ dodoc AUTHORS ChangeLog NEWS README TODO
+}