Fix bugs related to inferior function calls on FRV using the FDPIC ABI.

This commit is contained in:
Kevin Buettner 2005-04-29 21:48:28 +00:00
parent 5ea106f753
commit 35e08e031b
3 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2005-04-29 Kevin Buettner <kevinb@redhat.com>
* frv-tdep.c (find_func_descr): Verify that entry point can be
found in symbol table prior to looking up its function descriptor.
* solib-frv.c (find_canonical_descriptor_in_load_object): Add
test for non-NULL link map.
2005-04-29 Corinna Vinschen <vinschen@redhat.com>
* MAINTAINERS: Revert h8300 state to un-deleted.

View File

@ -1079,6 +1079,13 @@ find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point)
{
CORE_ADDR descr;
char valbuf[4];
CORE_ADDR start_addr;
/* If we can't find the function in the symbol table, then we assume
that the function address is already in descriptor form. */
if (!find_pc_partial_function (entry_point, NULL, &start_addr, NULL)
|| entry_point != start_addr)
return entry_point;
descr = frv_fdpic_find_canonical_descriptor (entry_point);

View File

@ -1109,6 +1109,10 @@ find_canonical_descriptor_in_load_object
if (abfd == 0)
return 0;
/* Nothing to do if no link map. */
if (lm == 0)
return 0;
/* We want to scan the dynamic relocs for R_FRV_FUNCDESC relocations.
(More about this later.) But in order to fetch the relocs, we
need to first fetch the dynamic symbols. These symbols need to