From dee0cf4181447d53938ee99bee0c143c7093149d Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 17 Jun 2017 16:38:08 +0200 Subject: [PATCH] package/libunwind: bump version to 1.2.1 Backported patch from master branch which implements --disable-tests configure option, removed original patch 0001, added _CONF_OPTS. Removed patch 0003, applied upstream: https://github.com/libunwind/libunwind/commit/f1684379dfaf8018d5d4c1945e292a56d0fab245 Added upstream patch to fix musl build. Tested using this defconfig BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_PACKAGE_LTRACE=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y BR2_PACKAGE_WESTON=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_XSERVER_XORG_SERVER=y BR2_PACKAGE_LIBJPEG=y BR2_PACKAGE_LIBUNWIND=y with test-pkg armv5-ctng-linux-gnueabi [ 1/49]: OK armv7-ctng-linux-gnueabihf [ 2/49]: OK br-aarch64-glibc [ 3/49]: SKIPPED br-arcle-hs38 [ 4/49]: SKIPPED br-arm-basic [ 5/49]: SKIPPED br-arm-cortex-a9-glibc [ 6/49]: OK br-arm-cortex-a9-musl [ 7/49]: SKIPPED br-arm-cortex-m4-full [ 8/49]: SKIPPED br-arm-full [ 9/49]: OK br-arm-full-nothread [10/49]: SKIPPED br-arm-full-static [11/49]: SKIPPED br-bfin-full [12/49]: SKIPPED br-i386-pentium4-full [13/49]: SKIPPED br-i386-pentium-mmx-musl [14/49]: SKIPPED br-m68k-5208-full [15/49]: SKIPPED br-m68k-68040-full [16/49]: SKIPPED br-microblazeel-full [17/49]: SKIPPED br-mips32r6-el-hf-glibc [18/49]: OK br-mips64-n64-full [19/49]: SKIPPED br-mips64r6-el-hf-glibc [20/49]: SKIPPED br-mipsel-o32-full [21/49]: OK br-nios2-glibc [22/49]: SKIPPED br-openrisc-uclibc [23/49]: SKIPPED br-powerpc-603e-basic-cpp [24/49]: SKIPPED br-powerpc64le-power8-glibc [25/49]: SKIPPED br-powerpc64-power7-glibc [26/49]: SKIPPED br-powerpc-e500mc-full [27/49]: SKIPPED br-sh4-full [28/49]: SKIPPED br-sparc64-glibc [29/49]: SKIPPED br-sparc-uclibc [30/49]: SKIPPED br-x86-64-core2-full [31/49]: OK br-x86-64-musl [32/49]: SKIPPED br-xtensa-full [33/49]: SKIPPED i686-ctng-linux-gnu [34/49]: OK linaro-aarch64 [35/49]: SKIPPED linaro-arm [36/49]: OK mips64el-ctng_n32-linux-gnu [37/49]: SKIPPED mips64el-ctng_n64-linux-gnu [38/49]: SKIPPED powerpc-ctng_e500v2-linux-gnuspe [39/49]: OK sourcery-arm-armv4t [40/49]: OK sourcery-arm [41/49]: OK sourcery-arm-thumb2 [42/49]: OK sourcery-mips64 [43/49]: SKIPPED sourcery-mips [44/49]: OK sourcery-nios2 [45/49]: SKIPPED sourcery-sh [46/49]: SKIPPED sourcery-x86-64 [47/49]: OK sourcery-x86 [48/49]: OK x86_64-ctng_locales-linux-gnu [49/49]: OK Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- .../0001-add-disable-tests-option.patch | 68 ++++++++++++++ package/libunwind/0001-disable-tests.patch | 32 ------- ...n-of-tests-on-alpine-linux-musl-libc.patch | 88 +++++++++++++++++++ ...nwind-to-libgcc_s-rather-than-libgcc.patch | 41 --------- package/libunwind/libunwind.hash | 2 +- package/libunwind/libunwind.mk | 4 +- 6 files changed, 160 insertions(+), 75 deletions(-) create mode 100644 package/libunwind/0001-add-disable-tests-option.patch delete mode 100644 package/libunwind/0001-disable-tests.patch create mode 100644 package/libunwind/0003-Fix-compilation-of-tests-on-alpine-linux-musl-libc.patch delete mode 100644 package/libunwind/0003-Link-libunwind-to-libgcc_s-rather-than-libgcc.patch diff --git a/package/libunwind/0001-add-disable-tests-option.patch b/package/libunwind/0001-add-disable-tests-option.patch new file mode 100644 index 0000000000..72a168615f --- /dev/null +++ b/package/libunwind/0001-add-disable-tests-option.patch @@ -0,0 +1,68 @@ +From 208a430bcbab7d63a4c04242f13c4740e0246a56 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=BE=D0=BB=D0=B5=D0=B2=20=D0=A1=D0=B5?= + =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B9?= +Date: Wed, 11 May 2016 22:48:55 +0300 +Subject: [PATCH] add --disable-tests option + +Allows to skip tests build. + +Backported from upstream master branch: +https://github.com/libunwind/libunwind/commit/208a430bcbab7d63a4c04242f13c4740e0246a56 + +Signed-off-by: Bernd Kuhls +--- + Makefile.am | 6 +++++- + configure.ac | 13 +++++++++++-- + 2 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 6a3ed9e..0c29b3e 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -42,7 +42,11 @@ endif + + nodist_include_HEADERS = include/libunwind-common.h + +-SUBDIRS = src tests ++SUBDIRS = src ++ ++if CONFIG_TESTS ++SUBDIRS += tests ++endif + + if CONFIG_DOCS + SUBDIRS += doc +diff --git a/configure.ac b/configure.ac +index 863fb8f..6c46cf3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -129,6 +129,10 @@ AC_ARG_ENABLE(documentation, + AS_HELP_STRING([--disable-documentation],[Disable generating the man pages]),, + [enable_documentation=yes]) + ++AC_ARG_ENABLE(tests, ++ AS_HELP_STRING([--disable-tests],[Disable tests build]),, ++ [enable_tests=yes]) ++ + AC_MSG_CHECKING([if we should build libunwind-setjmp]) + AC_MSG_RESULT([$enable_setjmp]) + +@@ -396,8 +400,13 @@ if test "x$enable_documentation" = "xyes"; then + AC_CONFIG_FILES(doc/Makefile doc/common.tex) + fi + +-AC_CONFIG_FILES(Makefile src/Makefile tests/Makefile tests/check-namespace.sh +- include/libunwind-common.h ++AM_CONDITIONAL([CONFIG_TESTS], [test x$enable_tests = xyes]) ++if test "x$enable_tests" = "xyes"; then ++ AC_CONFIG_FILES(tests/Makefile tests/check-namespace.sh) ++fi ++ ++AC_CONFIG_FILES(Makefile src/Makefile ++ include/libunwind-common.h + include/libunwind.h include/tdep/libunwind_i.h) + AC_CONFIG_FILES(src/unwind/libunwind.pc src/coredump/libunwind-coredump.pc + src/ptrace/libunwind-ptrace.pc src/setjmp/libunwind-setjmp.pc +-- +2.11.0 + diff --git a/package/libunwind/0001-disable-tests.patch b/package/libunwind/0001-disable-tests.patch deleted file mode 100644 index 05475a5d6c..0000000000 --- a/package/libunwind/0001-disable-tests.patch +++ /dev/null @@ -1,32 +0,0 @@ -Disable building of tests - -libunwind tests do not build with uClibc, so we disable them. - -Signed-off-by: Thomas Petazzoni - -Index: b/Makefile.am -=================================================================== ---- a/Makefile.am -+++ b/Makefile.am -@@ -36,7 +36,7 @@ - - nodist_include_HEADERS = include/libunwind-common.h - --SUBDIRS = src tests doc -+SUBDIRS = src doc - - noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \ - include/compiler.h include/libunwind_i.h include/mempool.h \ -Index: b/Makefile.in -=================================================================== ---- a/Makefile.in -+++ b/Makefile.in -@@ -313,7 +313,7 @@ - $(am__append_7) $(am__append_8) $(am__append_9) \ - $(am__append_10) - nodist_include_HEADERS = include/libunwind-common.h --SUBDIRS = src tests doc -+SUBDIRS = src doc - 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 \ diff --git a/package/libunwind/0003-Fix-compilation-of-tests-on-alpine-linux-musl-libc.patch b/package/libunwind/0003-Fix-compilation-of-tests-on-alpine-linux-musl-libc.patch new file mode 100644 index 0000000000..411b40d10a --- /dev/null +++ b/package/libunwind/0003-Fix-compilation-of-tests-on-alpine-linux-musl-libc.patch @@ -0,0 +1,88 @@ +From 5dcb7cd3cb63bf8a3a5f7531d10f937053930a25 Mon Sep 17 00:00:00 2001 +From: Tony Kelman +Date: Sun, 31 Jan 2016 08:31:04 +0000 +Subject: [PATCH] Fix compilation of tests on alpine linux (musl libc) + +If we don't link to libexecinfo, as detected by the +AC_SEARCH_LIBS(backtrace, execinfo) configure probe, we get + +``` +test-coredump-unwind.o: In function `handle_sigsegv': +/home/libunwind/tests/test-coredump-unwind.c:246: undefined reference to +`backtrace_symbols_fd' +collect2: error: ld returned 1 exit status +Makefile:1187: recipe for target 'test-coredump-unwind' failed +``` + +and + +``` +Gtest-init.o: In function `do_backtrace()': +Gtest-init.cxx:(.text+0x2f): undefined reference to `_Ux86_64_getcontext' +Gtest-init.cxx:(.text+0x48): undefined reference to `_Ux86_64_init_local' +Gtest-init.cxx:(.text+0x63): undefined reference to `_Ux86_64_get_reg' +Gtest-init.cxx:(.text+0x96): undefined reference to `_Ux86_64_get_proc_name' +Gtest-init.cxx:(.text+0x171): undefined reference to `_Ux86_64_step' +collect2: error: ld returned 1 exit status +Makefile:1063: recipe for target 'Gtest-init' failed +``` + +There are 2 XFAIL and 6 FAIL tests, but it's a start + +Backported from upstream master branch: +https://github.com/libunwind/libunwind/commit/5dcb7cd3cb63bf8a3a5f7531d10f937053930a25 + +Signed-off-by: Bernd Kuhls +--- + configure.ac | 5 +++++ + tests/Makefile.am | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6c46cf3..21bae90 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -373,6 +373,10 @@ old_LIBS="$LIBS" + LIBS="" + AC_SEARCH_LIBS(backtrace, execinfo) + LIBS="$old_LIBS" ++case "$ac_cv_search_backtrace" in ++ -l*) BACKTRACELIB=$ac_cv_search_backtrace;; ++ *) BACKTRACELIB="";; ++esac + + AC_SUBST(build_arch) + AC_SUBST(target_os) +@@ -388,6 +392,7 @@ AC_SUBST(PKG_MAINTAINER) + AC_SUBST(enable_cxx_exceptions) + AC_SUBST(enable_debug_frame) + AC_SUBST(DLLIB) ++AC_SUBST(BACKTRACELIB) + + AC_PATH_PROG([LATEX2MAN],[latex2man]) + if test "x$LATEX2MAN" = "x"; then +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 0a74881..cd3e589 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -179,7 +179,7 @@ Gtest_bt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) + Gtest_concurrent_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -lpthread + Gtest_dyn1_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) + Gtest_exc_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) +-Gtest_init_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) ++Gtest_init_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) @BACKTRACELIB@ + Gtest_resume_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) + Gtest_resume_sig_rt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) + Gperf_simple_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) +@@ -203,7 +203,7 @@ test_setjmp_LDADD = $(LIBUNWIND_setjmp) + ia64_test_setjmp_LDADD = $(LIBUNWIND_setjmp) + + if BUILD_COREDUMP +-test_coredump_unwind_LDADD = $(LIBUNWIND_coredump) $(LIBUNWIND) ++test_coredump_unwind_LDADD = $(LIBUNWIND_coredump) $(LIBUNWIND) @BACKTRACELIB@ + endif + + Gia64_test_nat_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) +-- +2.11.0 + diff --git a/package/libunwind/0003-Link-libunwind-to-libgcc_s-rather-than-libgcc.patch b/package/libunwind/0003-Link-libunwind-to-libgcc_s-rather-than-libgcc.patch deleted file mode 100644 index 7ea25129f1..0000000000 --- a/package/libunwind/0003-Link-libunwind-to-libgcc_s-rather-than-libgcc.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f1684379dfaf8018d5d4c1945e292a56d0fab245 Mon Sep 17 00:00:00 2001 -From: Thierry Reding -Date: Fri, 27 Jun 2014 08:40:33 +0200 -Subject: [PATCH] Link libunwind to libgcc_s rather than libgcc - -For some architectures, -lgcc and -lgcc_s are not equivalent. On ARM for -example, libgcc_s.so.1 contains some symbols needed by libunwind which -are not present in libgcc. - -This causes the following link error when building the X.Org X server -with libunwind support: - - CCLD Xorg - /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr0' - /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr1' - -Linking against libgcc_s explicitly solves this problem. - -Signed-off-by: Thierry Reding -[yann.morin.1998@free.fr: backport to libunwind 1.1] -Signed-off-by: "Yann E. MORIN" ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 4e2fd23..a77cf01 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -258,7 +258,7 @@ else - - if test x$GCC = xyes -a x$intel_compiler != xyes; then - CFLAGS="${CFLAGS} -fexceptions -Wall -Wsign-compare" -- LIBCRTS="-lgcc" -+ LIBCRTS="-lgcc_s" - fi - AC_MSG_RESULT([$intel_compiler]) - --- -1.9.1 - diff --git a/package/libunwind/libunwind.hash b/package/libunwind/libunwind.hash index 7ec47fab5a..2f6c8ec79b 100644 --- a/package/libunwind/libunwind.hash +++ b/package/libunwind/libunwind.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a libunwind-1.1.tar.gz +sha256 3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb libunwind-1.2.1.tar.gz diff --git a/package/libunwind/libunwind.mk b/package/libunwind/libunwind.mk index a75a88848b..7adf318962 100644 --- a/package/libunwind/libunwind.mk +++ b/package/libunwind/libunwind.mk @@ -4,13 +4,15 @@ # ################################################################################ -LIBUNWIND_VERSION = 1.1 +LIBUNWIND_VERSION = 1.2.1 LIBUNWIND_SITE = http://download.savannah.gnu.org/releases/libunwind LIBUNWIND_INSTALL_STAGING = YES LIBUNWIND_LICENSE_FILES = COPYING LIBUNWIND_LICENSE = MIT LIBUNWIND_AUTORECONF = YES +LIBUNWIND_CONF_OPTS = --disable-tests + ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) LIBUNWIND_DEPENDENCIES = libatomic_ops endif