Browse Source

libunwind: add new package

Waldemar Brodkorb 8 years ago
parent
commit
efcecb86c9

+ 27 - 0
package/libunwind/Makefile

@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		libunwind
+PKG_VERSION:=		1.2
+PKG_RELEASE:=		1
+PKG_HASH:=		1de38ffbdc88bd694d10081865871cd2bfbb02ad8ef9e1606aee18d65532b992
+PKG_DESCR:=		determine the call-chain of a program
+PKG_SECTION:=		libs/misc
+PKG_URL:=		https://savannah.nongnu.org/projects/libunwind/
+PKG_SITES:=		http://download.savannah.nongnu.org/releases/libunwind/
+PKG_OPTS:=		dev
+
+DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBUNWIND,libunwind,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libunwind-install:
+	$(INSTALL_DIR) $(IDIR_LIBUNWIND)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libunwind*.so* \
+		$(IDIR_LIBUNWIND)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 20 - 0
package/libunwind/patches/patch-Makefile_in

@@ -0,0 +1,20 @@
+--- libunwind-1.2.orig/Makefile.in	2017-01-13 17:00:58.000000000 +0100
++++ libunwind-1.2/Makefile.in	2017-04-17 16:57:53.104266427 +0200
+@@ -124,7 +124,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGE
+ 	distdir dist dist-all distcheck
+ ETAGS = etags
+ CTAGS = ctags
+-DIST_SUBDIRS = src tests doc
++DIST_SUBDIRS = src doc
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ distdir = $(PACKAGE)-$(VERSION)
+ top_distdir = $(distdir)
+@@ -306,7 +306,7 @@ include_HEADERS = include/libunwind-dyna
+ 	$(am__append_7) $(am__append_8) $(am__append_9) \
+ 	$(am__append_10) $(am__append_11) $(am__append_12)
+ nodist_include_HEADERS = include/libunwind-common.h
+-SUBDIRS = src tests $(am__append_13)
++SUBDIRS = src $(am__append_13)
+ noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h	\
+ 	include/compiler.h include/libunwind_i.h include/mempool.h	\
+ 	include/remote.h						\

+ 24 - 0
package/libunwind/patches/patch-src_x86_Gos-linux_c

@@ -0,0 +1,24 @@
+--- libunwind-1.2.orig/src/x86/Gos-linux.c	2016-11-18 04:28:29.000000000 +0100
++++ libunwind-1.2/src/x86/Gos-linux.c	2017-04-17 16:59:08.339188080 +0200
+@@ -290,19 +290,8 @@ x86_local_resume (unw_addr_space_t as, u
+      because the frame-chain still would let us do a backtrace at
+      least.  */
+   dwarf_make_proc_info (&c->dwarf);
+-
+-  if (unlikely (c->sigcontext_format != X86_SCF_NONE))
+-    {
+-      struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr;
+-
+-      Debug (8, "resuming at ip=%x via sigreturn(%p)\n", c->dwarf.ip, sc);
+-      sigreturn (sc);
+-    }
+-  else
+-    {
+-      Debug (8, "resuming at ip=%x via setcontext()\n", c->dwarf.ip);
+-      setcontext (uc);
+-    }
++  Debug (8, "resuming at ip=%x via setcontext()\n", c->dwarf.ip);
++  setcontext (uc);
+   return -UNW_EINVAL;
+ }
+ #endif