* ppc-linux-tdep.c (bsd_uthread_solib_loaded): Always pass 0 for
[binutils-gdb.git] / gdb / solib-spu.c
index e752544699de8a9d7e528800dc6c9d6f1ff4b1ad..6d035cb705f8a938b504014ea97b1bc28a100604 100644 (file)
 static void
 spu_relocate_main_executable (int spufs_fd)
 {
-  struct objfile *objfile;
-  struct cleanup *old_chain;
   struct section_offsets *new_offsets;
   int i;
 
-  for (objfile = symfile_objfile;
-       objfile;
-       objfile = objfile->separate_debug_objfile)
-    {
-      new_offsets = xcalloc (objfile->num_sections,
-                            sizeof (struct section_offsets));
-      old_chain = make_cleanup (xfree, new_offsets);
+  if (symfile_objfile == NULL)
+    return;
 
-      for (i = 0; i < objfile->num_sections; i++)
-        new_offsets->offsets[i] = SPUADDR (spufs_fd, 0);
+  new_offsets = alloca (symfile_objfile->num_sections
+                       * sizeof (struct section_offsets));
 
-      objfile_relocate (objfile, new_offsets);
-      do_cleanups (old_chain);
-    }
+  for (i = 0; i < symfile_objfile->num_sections; i++)
+    new_offsets->offsets[i] = SPUADDR (spufs_fd, 0);
+
+  objfile_relocate (symfile_objfile, new_offsets);
 }
 
 /* When running a stand-alone SPE executable, we may need to skip one more
@@ -167,7 +161,8 @@ spu_current_sos (void)
 
       /* Encode FD and object ID in path name.  Choose the name so as not
         to conflict with any (normal) SVR4 library path name.  */
-      xsnprintf (new->so_name, sizeof new->so_name, "@0x%llx <%d>", addr, fd);
+      xsnprintf (new->so_name, sizeof new->so_name, "@%s <%d>",
+                hex_string (addr), fd);
       strcpy (new->so_original_name, new->so_name);
 
       *link_ptr = new;
@@ -332,16 +327,13 @@ spu_bfd_open (char *pathname)
 static struct symbol *
 spu_lookup_lib_symbol (const struct objfile *objfile,
                       const char *name,
-                      const char *linkage_name,
                       const domain_enum domain)
 {
   if (bfd_get_arch (objfile->obfd) == bfd_arch_spu)
-    return lookup_global_symbol_from_objfile (objfile, name, linkage_name,
-                                             domain);
+    return lookup_global_symbol_from_objfile (objfile, name, domain);
 
   if (svr4_so_ops.lookup_lib_global_symbol != NULL)
-    return svr4_so_ops.lookup_lib_global_symbol (objfile, name, linkage_name,
-                                                domain);
+    return svr4_so_ops.lookup_lib_global_symbol (objfile, name, domain);
   return NULL;
 }
 
@@ -373,10 +365,6 @@ spu_enable_break (struct objfile *objfile)
 static void
 spu_solib_create_inferior_hook (int from_tty)
 {
-  /* Remove all previously installed solib breakpoints.  Both the SVR4
-     code and us will re-install all required breakpoints.  */
-  remove_solib_event_breakpoints ();
-
   /* Handle SPE stand-alone executables.  */
   if (spu_standalone_p ())
     {
@@ -440,7 +428,7 @@ spu_solib_loaded (struct so_list *so)
 {
   if (strstr (so->so_original_name, "/libspe") != NULL)
     {
-      solib_read_symbols (so, so->from_tty ? SYMFILE_VERBOSE : 0);
+      solib_read_symbols (so, 0);
       spu_enable_break (so->objfile);
     }
 }