diff --git a/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch b/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch new file mode 100644 index 0000000000..7309ffd865 --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch @@ -0,0 +1,31 @@ +From b07435a90bd636ee718e2238fb46c74a6dd5e069 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 22 Mar 2016 16:41:13 +0000 +Subject: [PATCH] disable tests + +Tests use getcontext() API which is +not there on musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Inappropriate [MUSL-only] + + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index e24fe1e..15380e4 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -39,7 +39,7 @@ endif + + 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 \ +-- +1.8.3.1 + diff --git a/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch b/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch new file mode 100644 index 0000000000..371013aaaa --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch @@ -0,0 +1,54 @@ +From f5df01655a4b76d4fe415747de581d94ac593e6a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 22 Mar 2016 16:19:29 +0000 +Subject: [PATCH] x86: Stub out x86_local_resume() + +its purpose seems +to be unwinding across signal handler boundaries, which cannot happen +in correct programs anyway. Replacing the whole function with +something like *(volatile char *)0=0; (i.e. crash), gets a working +libunwind + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/x86/Gos-linux.c | 22 +--------------------- + 1 file changed, 1 insertion(+), 21 deletions(-) + +diff --git a/src/x86/Gos-linux.c b/src/x86/Gos-linux.c +index 31f83ba..3aaa34e 100644 +--- a/src/x86/Gos-linux.c ++++ b/src/x86/Gos-linux.c +@@ -281,27 +281,7 @@ x86_r_uc_addr (ucontext_t *uc, int reg) + HIDDEN int + x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg) + { +- struct cursor *c = (struct cursor *) cursor; +- ucontext_t *uc = c->uc; +- +- /* Ensure c->pi is up-to-date. On x86, it's relatively common to be +- missing DWARF unwind info. We don't want to fail in that case, +- 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); +- } ++ *(volatile char *)0=0; + return -UNW_EINVAL; + } + #endif +-- +1.8.3.1 + diff --git a/meta/recipes-support/libunwind/libunwind.inc b/meta/recipes-support/libunwind/libunwind.inc index f83614bf5c..1c342d3922 100644 --- a/meta/recipes-support/libunwind/libunwind.inc +++ b/meta/recipes-support/libunwind/libunwind.inc @@ -5,8 +5,6 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=3fced11d6df719b47505837a51c16ae5" DEPENDS += "libatomic-ops" -SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" - inherit autotools PACKAGECONFIG ??= "" @@ -29,4 +27,6 @@ LDFLAGS_append_aarch64 = " -fuse-ld=gold" LDFLAGS_append_powerpc = " -fuse-ld=gold -mbss-plt" LDFLAGS_append_powerpc64 = " -fuse-ld=gold -mbss-plt" +SECURITY_LDFLAGS_append_libc-musl = " -lssp_nonshared -lssp" + BBCLASSEXTEND = "native" diff --git a/meta/recipes-support/libunwind/libunwind_1.1.bb b/meta/recipes-support/libunwind/libunwind_1.1.bb index 7df9f5ee05..1ed525f515 100644 --- a/meta/recipes-support/libunwind/libunwind_1.1.bb +++ b/meta/recipes-support/libunwind/libunwind_1.1.bb @@ -1,15 +1,18 @@ require libunwind.inc -SRC_URI += "\ - file://Support-building-with-older-compilers.patch \ - file://AArch64-port.patch \ - file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \ - file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \ - file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \ - file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \ - file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \ +SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ + file://Support-building-with-older-compilers.patch \ + file://AArch64-port.patch \ + file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \ + file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \ + file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \ + file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \ + file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \ +" +SRC_URI_append_libc-musl = "\ + file://0001-x86-Stub-out-x86_local_resume.patch \ + file://0001-disable-tests.patch \ " - SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce" SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a"