From 396353c3127b20244c4c5cc321adad7d4e48f544 Mon Sep 17 00:00:00 2001 From: Ruslan Bilovol Date: Mon, 18 Apr 2016 14:14:07 +0300 Subject: libunwind: backport aarch64_be support Backport 2 patches from v1.2-rc1 tag of libunwind git repo. These patches add aarch64_be support to this package. Signed-off-by: Ruslan Bilovol Signed-off-by: Ross Burton --- ...roduce-build-support-for-aarch64_be-targe.patch | 33 +++++++++++++++++++++ ...-wrong-big_endian-flag-in-aarch64_be-case.patch | 34 ++++++++++++++++++++++ meta/recipes-support/libunwind/libunwind_1.1.bb | 2 ++ 3 files changed, 69 insertions(+) create mode 100644 meta/recipes-support/libunwind/libunwind-1.1/0001-aarch64-introduce-build-support-for-aarch64_be-targe.patch create mode 100644 meta/recipes-support/libunwind/libunwind-1.1/0002-aarch64-fix-wrong-big_endian-flag-in-aarch64_be-case.patch (limited to 'meta') diff --git a/meta/recipes-support/libunwind/libunwind-1.1/0001-aarch64-introduce-build-support-for-aarch64_be-targe.patch b/meta/recipes-support/libunwind/libunwind-1.1/0001-aarch64-introduce-build-support-for-aarch64_be-targe.patch new file mode 100644 index 0000000000..b8afb90bfb --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind-1.1/0001-aarch64-introduce-build-support-for-aarch64_be-targe.patch @@ -0,0 +1,33 @@ +From 743668f66916b6bb03c92b04be5216400951ace6 Mon Sep 17 00:00:00 2001 +From: Victor Kamensky +Date: Wed, 3 Dec 2014 17:35:43 -0800 +Subject: [PATCH 1/2] aarch64: introduce build support for aarch64_be target + +Upstream-Status: backport + +Introduce support for aarch64_be, aarch64 big endian, target. +We would like to reuse all code that was done for aarch64 +(little endian) target. So we do similar thing that is done +for ARM v7 (arm) target for any aarch64* arch we set it +just to aarch64. + +Signed-off-by: Victor Kamensky +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 582e71f..c59f526 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -88,6 +88,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + + AC_DEFUN([SET_ARCH],[ + AS_CASE([$1], ++ [aarch64*],[$2=aarch64], + [arm*],[$2=arm], + [i?86],[$2=x86], + [hppa*],[$2=hppa], +-- +1.9.1 + diff --git a/meta/recipes-support/libunwind/libunwind-1.1/0002-aarch64-fix-wrong-big_endian-flag-in-aarch64_be-case.patch b/meta/recipes-support/libunwind/libunwind-1.1/0002-aarch64-fix-wrong-big_endian-flag-in-aarch64_be-case.patch new file mode 100644 index 0000000000..2ae4477368 --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind-1.1/0002-aarch64-fix-wrong-big_endian-flag-in-aarch64_be-case.patch @@ -0,0 +1,34 @@ +From 16e98c8cf37b006c3879ee57acc23c9af13c40d5 Mon Sep 17 00:00:00 2001 +From: Victor Kamensky +Date: Wed, 3 Dec 2014 17:35:44 -0800 +Subject: [PATCH 2/2] aarch64: fix wrong big_endian flag in aarch64_be case + +Upstream-Status: backport + +Set local_addr_space.big_endian flag according to current target +endianness. Before it was set by memset to 0, which corresponds +to little endian and it worked perfectly fine for aarch64. +But it breaks aarch64_be because dwarf_readu16, dwarf_readu32, +etc functions do not read values correctly since they operate +with wrong idea about current target endianness. + +Signed-off-by: Victor Kamensky +--- + src/aarch64/Ginit.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c +index 0bc8997..b9181ef 100644 +--- a/src/aarch64/Ginit.c ++++ b/src/aarch64/Ginit.c +@@ -181,6 +181,7 @@ aarch64_local_addr_space_init (void) + local_addr_space.acc.access_fpreg = access_fpreg; + local_addr_space.acc.resume = aarch64_local_resume; + local_addr_space.acc.get_proc_name = get_static_proc_name; ++ local_addr_space.big_endian = (__BYTE_ORDER == __BIG_ENDIAN); + unw_flush_cache (&local_addr_space, 0, 0); + } + +-- +1.9.1 + diff --git a/meta/recipes-support/libunwind/libunwind_1.1.bb b/meta/recipes-support/libunwind/libunwind_1.1.bb index aff84092a6..1e76c1a8c4 100644 --- a/meta/recipes-support/libunwind/libunwind_1.1.bb +++ b/meta/recipes-support/libunwind/libunwind_1.1.bb @@ -8,6 +8,8 @@ SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ 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 \ + file://0001-aarch64-introduce-build-support-for-aarch64_be-targe.patch \ + file://0002-aarch64-fix-wrong-big_endian-flag-in-aarch64_be-case.patch \ " SRC_URI_append_libc-musl = "\ file://0001-x86-Stub-out-x86_local_resume.patch \ -- cgit 1.2.3-korg