summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Watson <davejwatson@fb.com>2017-12-28 09:38:33 -0800
committerDave Watson <davejwatson@fb.com>2017-12-28 09:42:16 -0800
commit4c07b170372feb174e11775a01ea3bd718d636d6 (patch)
tree5009f555bf20119c1899442346c899be8c7407ca
parentb56e4cb88989f82988a6a70acb32e187e88b5cac (diff)
downloadlibunwind-4c07b170372feb174e11775a01ea3bd718d636d6.tar.gz
ALIAS unwind_get_accessors
-rw-r--r--include/libunwind-common.h.in2
-rw-r--r--src/aarch64/Gis_signal_frame.c2
-rw-r--r--src/aarch64/Gstep.c2
-rw-r--r--src/arm/Gos-freebsd.c2
-rw-r--r--src/arm/Gos-linux.c2
-rw-r--r--src/dwarf/Gexpr.c4
-rw-r--r--src/dwarf/Gfind_proc_info-lsb.c10
-rw-r--r--src/dwarf/Gfind_unwind_table.c2
-rw-r--r--src/dwarf/Gparser.c4
-rw-r--r--src/hppa/Gis_signal_frame.c2
-rw-r--r--src/hppa/get_accessors.c3
-rw-r--r--src/ia64/Gtables.c6
-rw-r--r--src/mi/Gdyn-remote.c4
-rw-r--r--src/mi/Gget_accessors.c3
-rw-r--r--src/mi/Gget_proc_info_by_ip.c2
-rw-r--r--src/mi/Gget_proc_name.c2
-rw-r--r--src/mips/Gis_signal_frame.c2
-rw-r--r--src/ppc/Gis_signal_frame.c2
-rw-r--r--src/ppc64/Gstep.c2
-rw-r--r--src/ppc64/get_func_addr.c2
-rw-r--r--src/sh/Gis_signal_frame.c2
-rw-r--r--src/tilegx/Gis_signal_frame.c2
-rw-r--r--src/x86/Gos-freebsd.c2
-rw-r--r--src/x86/Gos-linux.c2
-rw-r--r--src/x86_64/Gos-freebsd.c2
-rw-r--r--src/x86_64/Gstep.c2
26 files changed, 40 insertions, 32 deletions
diff --git a/include/libunwind-common.h.in b/include/libunwind-common.h.in
index 9811f491..8d96ddca 100644
--- a/include/libunwind-common.h.in
+++ b/include/libunwind-common.h.in
@@ -224,6 +224,7 @@ unw_save_loc_t;
#define unw_create_addr_space UNW_OBJ(create_addr_space)
#define unw_destroy_addr_space UNW_OBJ(destroy_addr_space)
#define unw_get_accessors UNW_ARCH_OBJ(get_accessors)
+#define unw_get_accessors_int UNW_ARCH_OBJ(get_accessors_int)
#define unw_init_local UNW_OBJ(init_local)
#define unw_init_local2 UNW_OBJ(init_local2)
#define unw_init_remote UNW_OBJ(init_remote)
@@ -250,6 +251,7 @@ unw_save_loc_t;
extern unw_addr_space_t unw_create_addr_space (unw_accessors_t *, int);
extern void unw_destroy_addr_space (unw_addr_space_t);
extern unw_accessors_t *unw_get_accessors (unw_addr_space_t);
+extern unw_accessors_t *unw_get_accessors_int (unw_addr_space_t);
extern void unw_flush_cache (unw_addr_space_t, unw_word_t, unw_word_t);
extern int unw_set_caching_policy (unw_addr_space_t, unw_caching_policy_t);
extern int unw_set_cache_size (unw_addr_space_t, size_t, int);
diff --git a/src/aarch64/Gis_signal_frame.c b/src/aarch64/Gis_signal_frame.c
index 0cd17847..67159d83 100644
--- a/src/aarch64/Gis_signal_frame.c
+++ b/src/aarch64/Gis_signal_frame.c
@@ -43,7 +43,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
ip = c->dwarf.ip;
diff --git a/src/aarch64/Gstep.c b/src/aarch64/Gstep.c
index 940bec76..fdf64a73 100644
--- a/src/aarch64/Gstep.c
+++ b/src/aarch64/Gstep.c
@@ -39,7 +39,7 @@ is_plt_entry (struct dwarf_cursor *c)
unw_accessors_t *a;
int ret;
- a = unw_get_accessors (c->as);
+ a = unw_get_accessors_int (c->as);
if ((ret = (*a->access_mem) (c->as, c->ip, &w0, 0, c->as_arg)) < 0
|| (ret = (*a->access_mem) (c->as, c->ip + 8, &w1, 0, c->as_arg)) < 0)
return 0;
diff --git a/src/arm/Gos-freebsd.c b/src/arm/Gos-freebsd.c
index 3423fafb..a1069223 100644
--- a/src/arm/Gos-freebsd.c
+++ b/src/arm/Gos-freebsd.c
@@ -102,7 +102,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
ip = c->dwarf.ip;
diff --git a/src/arm/Gos-linux.c b/src/arm/Gos-linux.c
index 30923bad..260e086f 100644
--- a/src/arm/Gos-linux.c
+++ b/src/arm/Gos-linux.c
@@ -160,7 +160,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
/* The least bit denotes thumb/arm mode. Do not read there. */
diff --git a/src/dwarf/Gexpr.c b/src/dwarf/Gexpr.c
index 4da28be6..f63c3d22 100644
--- a/src/dwarf/Gexpr.c
+++ b/src/dwarf/Gexpr.c
@@ -196,7 +196,7 @@ dwarf_stack_aligned(struct dwarf_cursor *c, unw_word_t cfa_addr,
uint8_t opcode;
unw_word_t operand1;
- a = unw_get_accessors (c->as);
+ a = unw_get_accessors_int (c->as);
arg = c->as_arg;
ret = dwarf_read_uleb128(c->as, a, &rbp_addr, &len, arg);
@@ -281,7 +281,7 @@ do { \
as = c->as;
arg = c->as_arg;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
end_addr = *addr + len;
*is_register = 0;
diff --git a/src/dwarf/Gfind_proc_info-lsb.c b/src/dwarf/Gfind_proc_info-lsb.c
index b5548db1..509ceff4 100644
--- a/src/dwarf/Gfind_proc_info-lsb.c
+++ b/src/dwarf/Gfind_proc_info-lsb.c
@@ -58,7 +58,7 @@ linear_search (unw_addr_space_t as, unw_word_t ip,
unw_word_t fde_count,
unw_proc_info_t *pi, int need_unwind_info, void *arg)
{
- unw_accessors_t *a = unw_get_accessors (unw_local_addr_space);
+ unw_accessors_t *a = unw_get_accessors_int (unw_local_addr_space);
unw_word_t i = 0, fde_addr, addr = eh_frame_start;
int ret;
@@ -316,7 +316,7 @@ dwarf_find_debug_frame (int found, unw_dyn_info_t *di_debug, unw_word_t ip,
{
addr = (unw_word_t) (uintptr_t) buf;
- a = unw_get_accessors (unw_local_addr_space);
+ a = unw_get_accessors_int (unw_local_addr_space);
/* Find all FDE entries in debug_frame, and make into a sorted
index. */
@@ -586,7 +586,7 @@ dwarf_callback (struct dl_phdr_info *info, size_t size, void *ptr)
return 0;
}
- a = unw_get_accessors (unw_local_addr_space);
+ a = unw_get_accessors_int (unw_local_addr_space);
addr = (unw_word_t) (uintptr_t) (&hdr->eh_frame);
/* (Optionally) read eh_frame_ptr: */
@@ -764,7 +764,7 @@ remote_lookup (unw_addr_space_t as,
struct table_entry *e, int32_t *last_ip_offset, void *arg)
{
unsigned long table_len = table_size / sizeof (struct table_entry);
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
unsigned long lo, hi, mid;
unw_word_t e_addr = 0;
int32_t start = 0;
@@ -848,7 +848,7 @@ dwarf_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
#endif
}
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
segbase = di->u.rti.segbase;
if (di->format == UNW_INFO_FORMAT_IP_OFFSET) {
diff --git a/src/dwarf/Gfind_unwind_table.c b/src/dwarf/Gfind_unwind_table.c
index c171eeca..6a2ad504 100644
--- a/src/dwarf/Gfind_unwind_table.c
+++ b/src/dwarf/Gfind_unwind_table.c
@@ -138,7 +138,7 @@ dwarf_find_unwind_table (struct elf_dyn_info *edi, unw_addr_space_t as,
return -UNW_ENOINFO;
}
- a = unw_get_accessors (unw_local_addr_space);
+ a = unw_get_accessors_int (unw_local_addr_space);
addr = to_unw_word (&hdr->eh_frame);
/* Fill in a dummy proc_info structure. We just need to fill in
diff --git a/src/dwarf/Gparser.c b/src/dwarf/Gparser.c
index d95d5338..7d255aee 100644
--- a/src/dwarf/Gparser.c
+++ b/src/dwarf/Gparser.c
@@ -109,7 +109,7 @@ run_cfi_program (struct dwarf_cursor *c, dwarf_state_record_t *sr,
as = c->as;
arg = c->as_arg;
}
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
int ret = 0;
while (*ip <= end_ip && *addr < end_addr && ret >= 0)
@@ -773,7 +773,7 @@ apply_reg_state (struct dwarf_cursor *c, struct dwarf_reg_state *rs)
as = c->as;
arg = c->as_arg;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
/* Evaluate the CFA first, because it may be referred to by other
expressions. */
diff --git a/src/hppa/Gis_signal_frame.c b/src/hppa/Gis_signal_frame.c
index 24996172..addb5518 100644
--- a/src/hppa/Gis_signal_frame.c
+++ b/src/hppa/Gis_signal_frame.c
@@ -37,7 +37,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
/* Check if IP points at sigreturn() sequence. On Linux, this normally is:
diff --git a/src/hppa/get_accessors.c b/src/hppa/get_accessors.c
index f3c7fa5f..24795801 100644
--- a/src/hppa/get_accessors.c
+++ b/src/hppa/get_accessors.c
@@ -25,6 +25,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include "unwind_i.h"
+HIDDEN ALIAS(unw_get_accessors) unw_accessors_t *
+unw_get_accessors_int (unw_addr_space_t as);
+
unw_accessors_t *
unw_get_accessors (unw_addr_space_t as)
{
diff --git a/src/ia64/Gtables.c b/src/ia64/Gtables.c
index 23a8011c..f5e8f2d8 100644
--- a/src/ia64/Gtables.c
+++ b/src/ia64/Gtables.c
@@ -68,7 +68,7 @@ is_local_addr_space (unw_addr_space_t as)
static inline int
read_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *valp, void *arg)
{
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
return (*a->access_mem) (as, addr, valp, 0, arg);
}
@@ -87,7 +87,7 @@ remote_lookup (unw_addr_space_t as,
struct ia64_table_entry *e, void *arg)
{
unw_word_t e_addr = 0, start_offset, end_offset, info_offset;
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
unsigned long lo, hi, mid;
int ret;
@@ -165,7 +165,7 @@ _Uia64_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
case UNW_INFO_FORMAT_REMOTE_TABLE:
{
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
unw_word_t e_addr = di->u.rti.table_data;
table_size = di->u.rti.table_len * sizeof (unw_word_t);
diff --git a/src/mi/Gdyn-remote.c b/src/mi/Gdyn-remote.c
index 1f029b4d..40a5ad8b 100644
--- a/src/mi/Gdyn-remote.c
+++ b/src/mi/Gdyn-remote.c
@@ -205,7 +205,7 @@ unwi_dyn_remote_find_proc_info (unw_addr_space_t as, unw_word_t ip,
unw_proc_info_t *pi,
int need_unwind_info, void *arg)
{
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
unw_word_t dyn_list_addr, addr, next_addr, gen1, gen2, start_ip, end_ip;
unw_dyn_info_t *di = NULL;
int ret;
@@ -311,7 +311,7 @@ unwi_dyn_validate_cache (unw_addr_space_t as, void *arg)
in the cache. */
return 0;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
addr = as->dyn_info_list_addr;
if (fetchw (as, a, &addr, &gen, arg) < 0)
diff --git a/src/mi/Gget_accessors.c b/src/mi/Gget_accessors.c
index 2d520782..31a6fbaf 100644
--- a/src/mi/Gget_accessors.c
+++ b/src/mi/Gget_accessors.c
@@ -25,6 +25,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include "libunwind_i.h"
+HIDDEN ALIAS(unw_get_accessors) unw_accessors_t *
+unw_get_accessors_int (unw_addr_space_t as);
+
unw_accessors_t *
unw_get_accessors (unw_addr_space_t as)
{
diff --git a/src/mi/Gget_proc_info_by_ip.c b/src/mi/Gget_proc_info_by_ip.c
index ae85fe91..2697ff84 100644
--- a/src/mi/Gget_proc_info_by_ip.c
+++ b/src/mi/Gget_proc_info_by_ip.c
@@ -29,7 +29,7 @@ int
unw_get_proc_info_by_ip (unw_addr_space_t as, unw_word_t ip,
unw_proc_info_t *pi, void *as_arg)
{
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
int ret;
ret = unwi_find_dynamic_proc_info (as, ip, pi, 0, as_arg);
diff --git a/src/mi/Gget_proc_name.c b/src/mi/Gget_proc_name.c
index 36e34e2e..840d9007 100644
--- a/src/mi/Gget_proc_name.c
+++ b/src/mi/Gget_proc_name.c
@@ -49,7 +49,7 @@ static inline int
get_proc_name (unw_addr_space_t as, unw_word_t ip,
char *buf, size_t buf_len, unw_word_t *offp, void *arg)
{
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
unw_proc_info_t pi;
int ret;
diff --git a/src/mips/Gis_signal_frame.c b/src/mips/Gis_signal_frame.c
index d2cd57b5..c0e3b983 100644
--- a/src/mips/Gis_signal_frame.c
+++ b/src/mips/Gis_signal_frame.c
@@ -37,7 +37,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
ip = c->dwarf.ip;
diff --git a/src/ppc/Gis_signal_frame.c b/src/ppc/Gis_signal_frame.c
index 47b71f1d..6184dd5d 100644
--- a/src/ppc/Gis_signal_frame.c
+++ b/src/ppc/Gis_signal_frame.c
@@ -56,7 +56,7 @@ unw_is_signal_frame (unw_cursor_t * cursor)
consecutive 32-bit words, so the second 8-byte word needs to be
shifted right by 32 bits (think big-endian) */
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
if ((ret = (*a->access_mem) (as, ip, &w0, 0, arg)) < 0
|| (ret = (*a->access_mem) (as, ip + 8, &w1, 0, arg)) < 0)
return 0;
diff --git a/src/ppc64/Gstep.c b/src/ppc64/Gstep.c
index ad6c0957..f44e9591 100644
--- a/src/ppc64/Gstep.c
+++ b/src/ppc64/Gstep.c
@@ -448,7 +448,7 @@ unw_step (unw_cursor_t * cursor)
{
unw_word_t ip = c->dwarf.ip;
unw_addr_space_t as = c->dwarf.as;
- unw_accessors_t *a = unw_get_accessors (as);
+ unw_accessors_t *a = unw_get_accessors_int (as);
void *arg = c->dwarf.as_arg;
uint32_t toc_save = (as->abi == UNW_PPC64_ABI_ELFv2)? 24 : 40;
int32_t inst;
diff --git a/src/ppc64/get_func_addr.c b/src/ppc64/get_func_addr.c
index 13abb7db..80a58fa1 100644
--- a/src/ppc64/get_func_addr.c
+++ b/src/ppc64/get_func_addr.c
@@ -36,7 +36,7 @@ tdep_get_func_addr (unw_addr_space_t as, unw_word_t addr,
unw_accessors_t *a;
int ret;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
/* Entry-point is stored in the 1st word of the function descriptor.
In case that changes in the future, we'd have to update the line
below and read the word at addr + offset: */
diff --git a/src/sh/Gis_signal_frame.c b/src/sh/Gis_signal_frame.c
index 404c78d0..4481fe1a 100644
--- a/src/sh/Gis_signal_frame.c
+++ b/src/sh/Gis_signal_frame.c
@@ -75,7 +75,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
ip = c->dwarf.ip;
diff --git a/src/tilegx/Gis_signal_frame.c b/src/tilegx/Gis_signal_frame.c
index c0cff4a2..5452c2cb 100644
--- a/src/tilegx/Gis_signal_frame.c
+++ b/src/tilegx/Gis_signal_frame.c
@@ -51,7 +51,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
ip = c->dwarf.ip;
diff --git a/src/x86/Gos-freebsd.c b/src/x86/Gos-freebsd.c
index 8c4c2bb9..7dd01404 100644
--- a/src/x86/Gos-freebsd.c
+++ b/src/x86/Gos-freebsd.c
@@ -46,7 +46,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
/* Check if EIP points at sigreturn() sequence. It can be:
diff --git a/src/x86/Gos-linux.c b/src/x86/Gos-linux.c
index ae141c6e..fb9a5e34 100644
--- a/src/x86/Gos-linux.c
+++ b/src/x86/Gos-linux.c
@@ -39,7 +39,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
/* Check if EIP points at sigreturn() sequence. On Linux, this is:
diff --git a/src/x86_64/Gos-freebsd.c b/src/x86_64/Gos-freebsd.c
index 59f3e703..883025c8 100644
--- a/src/x86_64/Gos-freebsd.c
+++ b/src/x86_64/Gos-freebsd.c
@@ -45,7 +45,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
int ret;
as = c->dwarf.as;
- a = unw_get_accessors (as);
+ a = unw_get_accessors_int (as);
arg = c->dwarf.as_arg;
/* Check if RIP points at sigreturn sequence.
diff --git a/src/x86_64/Gstep.c b/src/x86_64/Gstep.c
index 4865ab96..10498170 100644
--- a/src/x86_64/Gstep.c
+++ b/src/x86_64/Gstep.c
@@ -39,7 +39,7 @@ is_plt_entry (struct dwarf_cursor *c)
unw_accessors_t *a;
int ret;
- a = unw_get_accessors (c->as);
+ a = unw_get_accessors_int (c->as);
if ((ret = (*a->access_mem) (c->as, c->ip, &w0, 0, c->as_arg)) < 0
|| (ret = (*a->access_mem) (c->as, c->ip + 8, &w1, 0, c->as_arg)) < 0)
return 0;