diff options
4 files changed, 99 insertions, 11 deletions
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 @@ | |||
| 1 | From b07435a90bd636ee718e2238fb46c74a6dd5e069 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Tue, 22 Mar 2016 16:41:13 +0000 | ||
| 4 | Subject: [PATCH] disable tests | ||
| 5 | |||
| 6 | Tests use getcontext() API which is | ||
| 7 | not there on musl | ||
| 8 | |||
| 9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 10 | --- | ||
| 11 | Upstream-Status: Inappropriate [MUSL-only] | ||
| 12 | |||
| 13 | Makefile.am | 2 +- | ||
| 14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 15 | |||
| 16 | diff --git a/Makefile.am b/Makefile.am | ||
| 17 | index e24fe1e..15380e4 100644 | ||
| 18 | --- a/Makefile.am | ||
| 19 | +++ b/Makefile.am | ||
| 20 | @@ -39,7 +39,7 @@ endif | ||
| 21 | |||
| 22 | nodist_include_HEADERS = include/libunwind-common.h | ||
| 23 | |||
| 24 | -SUBDIRS = src tests doc | ||
| 25 | +SUBDIRS = src doc | ||
| 26 | |||
| 27 | noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \ | ||
| 28 | include/compiler.h include/libunwind_i.h include/mempool.h \ | ||
| 29 | -- | ||
| 30 | 1.8.3.1 | ||
| 31 | |||
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 @@ | |||
| 1 | From f5df01655a4b76d4fe415747de581d94ac593e6a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Tue, 22 Mar 2016 16:19:29 +0000 | ||
| 4 | Subject: [PATCH] x86: Stub out x86_local_resume() | ||
| 5 | |||
| 6 | its purpose seems | ||
| 7 | to be unwinding across signal handler boundaries, which cannot happen | ||
| 8 | in correct programs anyway. Replacing the whole function with | ||
| 9 | something like *(volatile char *)0=0; (i.e. crash), gets a working | ||
| 10 | libunwind | ||
| 11 | |||
| 12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 13 | --- | ||
| 14 | Upstream-Status: Pending | ||
| 15 | |||
| 16 | src/x86/Gos-linux.c | 22 +--------------------- | ||
| 17 | 1 file changed, 1 insertion(+), 21 deletions(-) | ||
| 18 | |||
| 19 | diff --git a/src/x86/Gos-linux.c b/src/x86/Gos-linux.c | ||
| 20 | index 31f83ba..3aaa34e 100644 | ||
| 21 | --- a/src/x86/Gos-linux.c | ||
| 22 | +++ b/src/x86/Gos-linux.c | ||
| 23 | @@ -281,27 +281,7 @@ x86_r_uc_addr (ucontext_t *uc, int reg) | ||
| 24 | HIDDEN int | ||
| 25 | x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg) | ||
| 26 | { | ||
| 27 | - struct cursor *c = (struct cursor *) cursor; | ||
| 28 | - ucontext_t *uc = c->uc; | ||
| 29 | - | ||
| 30 | - /* Ensure c->pi is up-to-date. On x86, it's relatively common to be | ||
| 31 | - missing DWARF unwind info. We don't want to fail in that case, | ||
| 32 | - because the frame-chain still would let us do a backtrace at | ||
| 33 | - least. */ | ||
| 34 | - dwarf_make_proc_info (&c->dwarf); | ||
| 35 | - | ||
| 36 | - if (unlikely (c->sigcontext_format != X86_SCF_NONE)) | ||
| 37 | - { | ||
| 38 | - struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr; | ||
| 39 | - | ||
| 40 | - Debug (8, "resuming at ip=%x via sigreturn(%p)\n", c->dwarf.ip, sc); | ||
| 41 | - sigreturn (sc); | ||
| 42 | - } | ||
| 43 | - else | ||
| 44 | - { | ||
| 45 | - Debug (8, "resuming at ip=%x via setcontext()\n", c->dwarf.ip); | ||
| 46 | - setcontext (uc); | ||
| 47 | - } | ||
| 48 | + *(volatile char *)0=0; | ||
| 49 | return -UNW_EINVAL; | ||
| 50 | } | ||
| 51 | #endif | ||
| 52 | -- | ||
| 53 | 1.8.3.1 | ||
| 54 | |||
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" | |||
| 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3fced11d6df719b47505837a51c16ae5" | 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3fced11d6df719b47505837a51c16ae5" |
| 6 | DEPENDS += "libatomic-ops" | 6 | DEPENDS += "libatomic-ops" |
| 7 | 7 | ||
| 8 | SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" | ||
| 9 | |||
| 10 | inherit autotools | 8 | inherit autotools |
| 11 | 9 | ||
| 12 | PACKAGECONFIG ??= "" | 10 | PACKAGECONFIG ??= "" |
| @@ -29,4 +27,6 @@ LDFLAGS_append_aarch64 = " -fuse-ld=gold" | |||
| 29 | LDFLAGS_append_powerpc = " -fuse-ld=gold -mbss-plt" | 27 | LDFLAGS_append_powerpc = " -fuse-ld=gold -mbss-plt" |
| 30 | LDFLAGS_append_powerpc64 = " -fuse-ld=gold -mbss-plt" | 28 | LDFLAGS_append_powerpc64 = " -fuse-ld=gold -mbss-plt" |
| 31 | 29 | ||
| 30 | SECURITY_LDFLAGS_append_libc-musl = " -lssp_nonshared -lssp" | ||
| 31 | |||
| 32 | BBCLASSEXTEND = "native" | 32 | 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 @@ | |||
| 1 | require libunwind.inc | 1 | require libunwind.inc |
| 2 | 2 | ||
| 3 | SRC_URI += "\ | 3 | SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ |
| 4 | file://Support-building-with-older-compilers.patch \ | 4 | file://Support-building-with-older-compilers.patch \ |
| 5 | file://AArch64-port.patch \ | 5 | file://AArch64-port.patch \ |
| 6 | file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \ | 6 | file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \ |
| 7 | file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \ | 7 | file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \ |
| 8 | file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \ | 8 | file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \ |
| 9 | file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \ | 9 | file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \ |
| 10 | file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \ | 10 | file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \ |
| 11 | " | ||
| 12 | SRC_URI_append_libc-musl = "\ | ||
| 13 | file://0001-x86-Stub-out-x86_local_resume.patch \ | ||
| 14 | file://0001-disable-tests.patch \ | ||
| 11 | " | 15 | " |
| 12 | |||
| 13 | SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce" | 16 | SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce" |
| 14 | SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a" | 17 | SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a" |
| 15 | 18 | ||
