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> 2005-04-29 Corinna Vinschen <vinschen@redhat.com>
* MAINTAINERS: Revert h8300 state to un-deleted. * 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; CORE_ADDR descr;
char valbuf[4]; 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); descr = frv_fdpic_find_canonical_descriptor (entry_point);

View File

@ -1109,6 +1109,10 @@ find_canonical_descriptor_in_load_object
if (abfd == 0) if (abfd == 0)
return 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. /* We want to scan the dynamic relocs for R_FRV_FUNCDESC relocations.
(More about this later.) But in order to fetch the relocs, we (More about this later.) But in order to fetch the relocs, we
need to first fetch the dynamic symbols. These symbols need to need to first fetch the dynamic symbols. These symbols need to