1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2025-04-02 04:12:16 +02:00

(_Uia64_find_dyn_list): Add "gp" argument.

Fix typo in address-offset for the "off" variable.
	Adjust for the fact that the dyn-info list address is now gp-relative.

(Logical change 1.55)
This commit is contained in:
hp.com!davidm 2003-02-26 08:33:57 +00:00
parent cf3b756567
commit 54eda6d6fc

View file

@ -153,7 +153,7 @@ tdep_put_unwind_info (unw_addr_space_t as, unw_proc_info_t *pi, void *arg)
unw_word_t
_Uia64_find_dyn_list (unw_addr_space_t as, void *table, size_t table_size,
unw_word_t segbase, void *arg)
unw_word_t segbase, unw_word_t gp, void *arg)
{
unw_word_t hdr_addr, info_addr, hdr, directives, pers, cookie, off;
unw_accessors_t *a = unw_get_accessors (as);
@ -193,7 +193,7 @@ _Uia64_find_dyn_list (unw_addr_space_t as, void *table, size_t table_size,
if (((ret = (*a->access_mem) (as, info_addr, &directives, 0, arg)) < 0)
|| ((ret = (*a->access_mem) (as, info_addr + 0x08, &pers, 0, arg)) < 0)
|| ((ret = (*a->access_mem) (as, info_addr + 0x10, &cookie, 0, arg)) < 0)
|| ((ret = (*a->access_mem) (as, info_addr + 0x10, &off, 0, arg)) < 0))
|| ((ret = (*a->access_mem) (as, info_addr + 0x18, &off, 0, arg)) < 0))
return 0;
if (directives != 0 || pers != 0
@ -202,7 +202,7 @@ _Uia64_find_dyn_list (unw_addr_space_t as, void *table, size_t table_size,
return 0;
/* OK, we ran the gauntlet and found it: */
return off + segbase;
return off + gp;
}
#ifndef UNW_REMOTE_ONLY