+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.
 
 {
   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);
 
 
   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