diff options
author | Ruslan Bilovol <rbilovol@cisco.com> | 2016-04-18 14:14:07 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-29 07:53:57 +0100 |
commit | 396353c3127b20244c4c5cc321adad7d4e48f544 (patch) | |
tree | af8908df7259057b434b639909f197fb4fbf9c9e /meta | |
parent | 118c1ca4d8d62162e87caf287f96d90707ee5903 (diff) | |
download | openembedded-core-396353c3127b20244c4c5cc321adad7d4e48f544.tar.gz openembedded-core-396353c3127b20244c4c5cc321adad7d4e48f544.tar.bz2 openembedded-core-396353c3127b20244c4c5cc321adad7d4e48f544.zip |
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 <rbilovol@cisco.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta')
3 files changed, 69 insertions, 0 deletions
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 <victor.kamensky@linaro.org> +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 <victor.kamensky@linaro.org> +--- + 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 <victor.kamensky@linaro.org> +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 <victor.kamensky@linaro.org> +--- + 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 \ |