buildroot/package/libunwind/0003-Fix-compilation-of-tests-on-alpine-linux-musl-libc.patch

89 lines
3.0 KiB
Diff
Raw Normal View History

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 <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-17 22:38:08 +08:00
From 5dcb7cd3cb63bf8a3a5f7531d10f937053930a25 Mon Sep 17 00:00:00 2001
From: Tony Kelman <tony@kelman.net>
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 <bernd.kuhls@t-online.de>
---
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