summaryrefslogtreecommitdiffstats
path: root/backends/arm_init.c
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2014-01-26 20:16:48 +0100
committerMark Wielaard <[email protected]>2014-01-30 11:08:32 +0100
commit225dddfda38c1cd90e2daa3e72da2a9d01013336 (patch)
tree1cf63b5901216ed21a3b4d68bf283cfaee6730f3 /backends/arm_init.c
parenta02d90ae12c5386b85332536b516da435150dd88 (diff)
backends: Add arm frame_nregs and set_initial_registers_tid.
This allows CFI unwinding for ARM. It relies on having .debug_frame around which is always the case in our testsuite. All native backtrace tests PASS on arm if debuginfo (for glibc) is installed on the system. Otherwise the tests SKIP. For non-debug unwinding ARM uses EXIDX tables, not .eh_frames, which would have to be translated to CFI to do unwinding without .debug_frame available. Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'backends/arm_init.c')
-rw-r--r--backends/arm_init.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/backends/arm_init.c b/backends/arm_init.c
index cf661cea..14b26356 100644
--- a/backends/arm_init.c
+++ b/backends/arm_init.c
@@ -1,5 +1,5 @@
/* Initialization of Arm specific backend library.
- Copyright (C) 2002, 2005, 2009, 2013 Red Hat, Inc.
+ Copyright (C) 2002, 2005, 2009, 2013, 2014 Red Hat, Inc.
This file is part of elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -64,5 +64,9 @@ arm_init (elf, machine, eh, ehlen)
HOOK (eh, return_value_location);
HOOK (eh, abi_cfi);
+ /* We only unwind the core integer registers. */
+ eh->frame_nregs = 16;
+ HOOK (eh, set_initial_registers_tid);
+
return MODVERSION;
}