diff options
Diffstat (limited to 'yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch')
-rw-r--r-- | yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch b/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch deleted file mode 100644 index 8abb36bb4..000000000 --- a/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.163/arm_unwind_ret_mask.patch +++ /dev/null @@ -1,83 +0,0 @@ -From: Mark Wielaard <mjw@redhat.com> -Date: Sun, 15 Jun 2014 12:30:02 +0200 -Subject: libebl: Add ebl_unwind_ret_mask. - -Another ARM oddity. A return value address in an unwind will contain an -extra bit to indicate whether to return to a regular ARM or THUMB function. -Add a new ebl function to return a mask to use to get the actual return -address during an unwind ebl_unwind_ret_mask. - -Rebase arm_unwind_ret_mask.patch from 0.159 to 0.160 - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - backends/arm_init.c | 3 +++ - libebl/eblinitreg.c | 8 ++++++++ - libebl/libebl.h | 4 ++++ - libebl/libeblP.h | 6 ++++++ - 4 files changed, 21 insertions(+) - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index 2266829..f8df042 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -87,5 +87,8 @@ arm_init (elf, machine, eh, ehlen) - /* Bit zero encodes whether an function address is THUMB or ARM. */ - eh->func_addr_mask = ~(GElf_Addr)1; - -+ /* Bit zero encodes whether to return to a THUMB or ARM function. */ -+ eh->unwind_ret_mask = ~(GElf_Addr)1; -+ - return MODVERSION; - } -diff --git a/libebl/eblinitreg.c b/libebl/eblinitreg.c -index 5729b3c..ca681c0 100644 ---- a/libebl/eblinitreg.c -+++ b/libebl/eblinitreg.c -@@ -56,3 +56,11 @@ ebl_func_addr_mask (Ebl *ebl) - return ((ebl == NULL || ebl->func_addr_mask == 0) - ? ~(GElf_Addr)0 : ebl->func_addr_mask); - } -+ -+GElf_Addr -+ebl_unwind_ret_mask (Ebl *ebl) -+{ -+ return ((ebl == NULL || ebl->unwind_ret_mask == 0) -+ ? ~(GElf_Addr)0 : ebl->unwind_ret_mask); -+} -+ -diff --git a/libebl/libebl.h b/libebl/libebl.h -index 40cf635..be70027 100644 ---- a/libebl/libebl.h -+++ b/libebl/libebl.h -@@ -420,6 +420,10 @@ extern size_t ebl_frame_nregs (Ebl *ebl) - tables) is needed. */ - extern GElf_Addr ebl_func_addr_mask (Ebl *ebl); - -+/* Mask to use for unwind return address in case the architecture adds -+ some extra non-address bits to it. */ -+extern GElf_Addr ebl_unwind_ret_mask (Ebl *ebl); -+ - /* Convert *REGNO as is in DWARF to a lower range suitable for - Dwarf_Frame->REGS indexing. */ - extern bool ebl_dwarf_to_regno (Ebl *ebl, unsigned *regno) -diff --git a/libebl/libeblP.h b/libebl/libeblP.h -index dbd67f3..e18ace6 100644 ---- a/libebl/libeblP.h -+++ b/libebl/libeblP.h -@@ -70,6 +70,12 @@ struct ebl - otherwise it should be the actual mask to use. */ - GElf_Addr func_addr_mask; - -+ /* Mask to use to get the return address from an unwind in case the -+ architecture adds some extra non-address bits to it. When not -+ initialized (0) then ebl_unwind_ret_mask will return ~0, otherwise -+ it should be the actual mask to use. */ -+ GElf_Addr unwind_ret_mask; -+ - /* Function descriptor load address and table as used by - ebl_resolve_sym_value if available for this arch. */ - GElf_Addr fd_addr; --- -1.9.1 - |