2005-02-11 Andrew Cagney <cagney@gnu.org>
[binutils-gdb.git] / gdb / symfile.c
index 7c83011426a5fd6364abb33916f9fde87016aa8b..c81cd9b9b951592c049c24be8732213b5b059147 100644 (file)
 #define O_BINARY 0
 #endif
 
-#ifdef HPUXHPPA
-
-/* Some HP-UX related globals to clear when a new "main"
-   symbol file is loaded. HP-specific.  */
-
-extern int hp_cxx_exception_support_initialized;
-#define RESET_HP_UX_GLOBALS() do {\
-                                    deprecated_hp_som_som_object_present = 0;             /* indicates HP-compiled code */        \
-                                    hp_cxx_exception_support_initialized = 0;  /* must reinitialize exception stuff */ \
-                              } while (0)
-#endif
-
 int (*deprecated_ui_load_progress_hook) (const char *section, unsigned long num);
 void (*deprecated_show_load_progress) (const char *section,
                            unsigned long section_sent,
                            unsigned long section_size,
                            unsigned long total_sent,
                            unsigned long total_size);
-void (*pre_add_symbol_hook) (const char *);
-void (*post_add_symbol_hook) (void);
+void (*deprecated_pre_add_symbol_hook) (const char *);
+void (*deprecated_post_add_symbol_hook) (void);
 void (*deprecated_target_new_objfile_hook) (struct objfile *);
 
 static void clear_symtab_users_cleanup (void *ignore);
@@ -207,8 +195,8 @@ compare_psymbols (const void *s1p, const void *s2p)
   struct partial_symbol *const *s1 = s1p;
   struct partial_symbol *const *s2 = s2p;
 
-  return strcmp_iw_ordered (SYMBOL_NATURAL_NAME (*s1),
-                           SYMBOL_NATURAL_NAME (*s2));
+  return strcmp_iw_ordered (SYMBOL_SEARCH_NAME (*s1),
+                           SYMBOL_SEARCH_NAME (*s2));
 }
 
 void
@@ -336,6 +324,32 @@ alloc_section_addr_info (size_t num_sections)
   return sap;
 }
 
+
+/* Return a freshly allocated copy of ADDRS.  The section names, if
+   any, are also freshly allocated copies of those in ADDRS.  */
+struct section_addr_info *
+copy_section_addr_info (struct section_addr_info *addrs)
+{
+  struct section_addr_info *copy
+    = alloc_section_addr_info (addrs->num_sections);
+  int i;
+
+  copy->num_sections = addrs->num_sections;
+  for (i = 0; i < addrs->num_sections; i++)
+    {
+      copy->other[i].addr = addrs->other[i].addr;
+      if (addrs->other[i].name)
+        copy->other[i].name = xstrdup (addrs->other[i].name);
+      else
+        copy->other[i].name = NULL;
+      copy->other[i].sectindex = addrs->other[i].sectindex;
+    }
+
+  return copy;
+}
+
+
+
 /* Build (allocate and populate) a section_addr_info struct from
    an existing section table. */
 
@@ -587,11 +601,11 @@ syms_from_objfile (struct objfile *objfile,
        bfd_map_over_sections (objfile->obfd, find_lowest_section,
                               &lower_sect);
       if (lower_sect == NULL)
-       warning ("no loadable sections found in added symbol-file %s",
+       warning (_("no loadable sections found in added symbol-file %s"),
                 objfile->name);
       else
        if ((bfd_get_section_flags (objfile->obfd, lower_sect) & SEC_CODE) == 0)
-         warning ("Lowest section in %s is %s at %s",
+         warning (_("Lowest section in %s is %s at %s"),
                   objfile->name,
                   bfd_section_name (objfile->obfd, lower_sect),
                   paddr (bfd_section_vma (objfile->obfd, lower_sect)));
@@ -626,7 +640,7 @@ syms_from_objfile (struct objfile *objfile,
                   }
                 else
                   {
-                    warning ("section %s not found in %s",
+                    warning (_("section %s not found in %s"),
                              addrs->other[i].name,
                              objfile->name);
                     addrs->other[i].addr = 0;
@@ -784,7 +798,7 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
   struct objfile *objfile;
   struct partial_symtab *psymtab;
   char *debugfile;
-  struct section_addr_info *orig_addrs;
+  struct section_addr_info *orig_addrs = NULL;
   struct cleanup *my_cleanups;
   const char *name = bfd_get_filename (abfd);
 
@@ -797,19 +811,15 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
       && mainline
       && from_tty
       && !query ("Load new symbol table from \"%s\"? ", name))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
 
   objfile = allocate_objfile (abfd, flags);
   discard_cleanups (my_cleanups);
 
-  orig_addrs = alloc_section_addr_info (bfd_count_sections (abfd));
-  my_cleanups = make_cleanup (xfree, orig_addrs);
   if (addrs)
     {
-      int i;
-      orig_addrs->num_sections = addrs->num_sections;
-      for (i = 0; i < addrs->num_sections; i++)
-       orig_addrs->other[i] = addrs->other[i];
+      orig_addrs = copy_section_addr_info (addrs);
+      make_cleanup_free_section_addr_info (orig_addrs);
     }
 
   /* We either created a new mapped symbol table, mapped an existing
@@ -817,8 +827,8 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
      performed, or need to read an unmapped symbol table. */
   if (from_tty || info_verbose)
     {
-      if (pre_add_symbol_hook)
-       pre_add_symbol_hook (name);
+      if (deprecated_pre_add_symbol_hook)
+       deprecated_pre_add_symbol_hook (name);
       else
        {
          printf_unfiltered ("Reading symbols from %s...", name);
@@ -877,14 +887,18 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
   if (!have_partial_symbols () && !have_full_symbols ())
     {
       wrap_here ("");
-      printf_unfiltered ("(no debugging symbols found)...");
+      printf_filtered ("(no debugging symbols found)");
+      if (from_tty || info_verbose)
+        printf_filtered ("...");
+      else
+        printf_filtered ("\n");
       wrap_here ("");
     }
 
   if (from_tty || info_verbose)
     {
-      if (post_add_symbol_hook)
-       post_add_symbol_hook ();
+      if (deprecated_post_add_symbol_hook)
+       deprecated_post_add_symbol_hook ();
       else
        {
          printf_unfiltered ("done.\n");
@@ -906,10 +920,27 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
   if (deprecated_target_new_objfile_hook)
     deprecated_target_new_objfile_hook (objfile);
 
+  bfd_cache_close_all ();
   return (objfile);
 }
 
 
+/* Process the symbol file ABFD, as either the main file or as a
+   dynamically loaded file.
+
+   See symbol_file_add_with_addrs_or_offsets's comments for
+   details.  */
+struct objfile *
+symbol_file_add_from_bfd (bfd *abfd, int from_tty,
+                          struct section_addr_info *addrs,
+                          int mainline, int flags)
+{
+  return symbol_file_add_with_addrs_or_offsets (abfd,
+                                               from_tty, addrs, 0, 0,
+                                                mainline, flags);
+}
+
+
 /* Process a symbol file, as either the main file or as a dynamically
    loaded file.  See symbol_file_add_with_addrs_or_offsets's comments
    for details.  */
@@ -917,9 +948,8 @@ struct objfile *
 symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
                 int mainline, int flags)
 {
-  return symbol_file_add_with_addrs_or_offsets (symfile_bfd_open (name),
-                                               from_tty, addrs, 0, 0,
-                                                mainline, flags);
+  return symbol_file_add_from_bfd (symfile_bfd_open (name), from_tty,
+                                   addrs, mainline, flags);
 }
 
 
@@ -942,10 +972,6 @@ symbol_file_add_main_1 (char *args, int from_tty, int flags)
 {
   symbol_file_add (args, from_tty, NULL, 1, flags);
 
-#ifdef HPUXHPPA
-  RESET_HP_UX_GLOBALS ();
-#endif
-
   /* Getting new symbols may change our opinion about
      what is frameless.  */
   reinit_frame_cache ();
@@ -960,7 +986,7 @@ symbol_file_clear (int from_tty)
       && from_tty
       && !query ("Discard symbol table from `%s'? ",
                 symfile_objfile->name))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
     free_all_objfiles ();
 
     /* solib descriptors may have handles to objfiles.  Since their
@@ -974,9 +1000,6 @@ symbol_file_clear (int from_tty)
     symfile_objfile = NULL;
     if (from_tty)
       printf_unfiltered ("No symbol file now.\n");
-#ifdef HPUXHPPA
-    RESET_HP_UX_GLOBALS ();
-#endif
 }
 
 static char *
@@ -1157,7 +1180,7 @@ symbol_file_command (char *args, int from_tty)
          if (strcmp (*argv, "-readnow") == 0)
            flags |= OBJF_READNOW;
          else if (**argv == '-')
-           error ("unknown option `%s'", *argv);
+           error (_("unknown option `%s'"), *argv);
          else
            {
              name = *argv;
@@ -1169,7 +1192,7 @@ symbol_file_command (char *args, int from_tty)
 
       if (name == NULL)
        {
-         error ("no symbol file name was specified");
+         error (_("no symbol file name was specified"));
        }
       do_cleanups (cleanups);
     }
@@ -1225,14 +1248,15 @@ symfile_bfd_open (char *name)
   name = tilde_expand (name);  /* Returns 1st new malloc'd copy */
 
   /* Look down path for it, allocate 2nd new malloc'd copy.  */
-  desc = openp (getenv ("PATH"), 1, name, O_RDONLY | O_BINARY, 0, &absolute_name);
+  desc = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, name, O_RDONLY | O_BINARY,
+               0, &absolute_name);
 #if defined(__GO32__) || defined(_WIN32) || defined (__CYGWIN__)
   if (desc < 0)
     {
       char *exename = alloca (strlen (name) + 5);
       strcat (strcpy (exename, name), ".exe");
-      desc = openp (getenv ("PATH"), 1, exename, O_RDONLY | O_BINARY,
-                   0, &absolute_name);
+      desc = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, exename,
+                   O_RDONLY | O_BINARY, 0, &absolute_name);
     }
 #endif
   if (desc < 0)
@@ -1249,7 +1273,7 @@ symfile_bfd_open (char *name)
     {
       close (desc);
       make_cleanup (xfree, name);
-      error ("\"%s\": can't open to read symbols: %s.", name,
+      error (_("\"%s\": can't open to read symbols: %s."), name,
             bfd_errmsg (bfd_get_error ()));
     }
   bfd_set_cacheable (sym_bfd, 1);
@@ -1261,7 +1285,7 @@ symfile_bfd_open (char *name)
          bfd).  */
       bfd_close (sym_bfd);     /* This also closes desc */
       make_cleanup (xfree, name);
-      error ("\"%s\": can't read symbols: %s.", name,
+      error (_("\"%s\": can't read symbols: %s."), name,
             bfd_errmsg (bfd_get_error ()));
     }
   return (sym_bfd);
@@ -1317,7 +1341,7 @@ find_sym_fns (struct objfile *objfile)
          return;
        }
     }
-  error ("I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown.",
+  error (_("I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown."),
         bfd_get_target (objfile->obfd));
 }
 \f
@@ -1354,7 +1378,7 @@ add_section_size_callback (bfd *abfd, asection *asec, void *data)
 {
   bfd_size_type *sum = data;
 
-  *sum += bfd_get_section_size_before_reloc (asec);
+  *sum += bfd_get_section_size (asec);
 }
 
 /* Opaque data for load_section_callback.  */
@@ -1374,7 +1398,7 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
 
   if (bfd_get_section_flags (abfd, asec) & SEC_LOAD)
     {
-      bfd_size_type size = bfd_get_section_size_before_reloc (asec);
+      bfd_size_type size = bfd_get_section_size (asec);
       if (size > 0)
        {
          char *buffer;
@@ -1427,10 +1451,10 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
                    make_cleanup (xfree, check);
 
                  if (target_read_memory (lma, check, len) != 0)
-                   error ("Download verify read failed at 0x%s",
+                   error (_("Download verify read failed at 0x%s"),
                           paddr (lma));
                  if (memcmp (buffer, check, len) != 0)
-                   error ("Download verify compare failed at 0x%s",
+                   error (_("Download verify compare failed at 0x%s"),
                           paddr (lma));
                  do_cleanups (verify_cleanups);
                }
@@ -1442,7 +1466,7 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
              if (quit_flag
                  || (deprecated_ui_load_progress_hook != NULL
                      && deprecated_ui_load_progress_hook (sect_name, sent)))
-               error ("Canceled the download");
+               error (_("Canceled the download"));
 
              if (deprecated_show_load_progress != NULL)
                deprecated_show_load_progress (sect_name, sent, size,
@@ -1452,7 +1476,7 @@ load_section_callback (bfd *abfd, asection *asec, void *data)
          while (sent < size);
 
          if (err != 0)
-           error ("Memory access error while loading section %s.", sect_name);
+           error (_("Memory access error while loading section %s."), sect_name);
 
          do_cleanups (old_chain);
        }
@@ -1488,7 +1512,7 @@ generic_load (char *args, int from_tty)
 
       cbdata.load_offset = strtoul (offptr, &endptr, 0);
       if (offptr == endptr)
-       error ("Invalid download offset:%s\n", offptr);
+       error (_("Invalid download offset:%s."), offptr);
       *offptr = '\0';
     }
   else
@@ -1509,7 +1533,7 @@ generic_load (char *args, int from_tty)
 
   if (!bfd_check_format (loadfile_bfd, bfd_object))
     {
-      error ("\"%s\" is not an object file: %s", filename,
+      error (_("\"%s\" is not an object file: %s"), filename,
             bfd_errmsg (bfd_get_error ()));
     }
 
@@ -1536,7 +1560,7 @@ generic_load (char *args, int from_tty)
      to a comment from remote-mips.c (where a call to symbol_file_add
      was commented out), making the call confuses GDB if more than one
      file is loaded in.  Some targets do (e.g., remote-vx.c) but
-     others don't (or didn't - perhaphs they have all been deleted).  */
+     others don't (or didn't - perhaps they have all been deleted).  */
 
   print_transfer_performance (gdb_stdout, cbdata.data_count,
                              cbdata.write_count, end_time - start_time);
@@ -1626,7 +1650,7 @@ add_symbol_file_command (char *args, int from_tty)
   dont_repeat ();
 
   if (args == NULL)
-    error ("add-symbol-file takes a file name and an address");
+    error (_("add-symbol-file takes a file name and an address"));
 
   /* Make a copy of the string that we can safely write into. */
   args = xstrdup (args);
@@ -1709,7 +1733,7 @@ add_symbol_file_command (char *args, int from_tty)
                        }
                    }
                  else
-                   error ("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*");
+                   error (_("USAGE: add-symbol-file <filename> <textaddress> [-mapped] [-readnow] [-s <secname> <addr>]*"));
              }
          }
       argcnt++;
@@ -1718,7 +1742,7 @@ add_symbol_file_command (char *args, int from_tty)
   /* Print the prompt for the query below. And save the arguments into
      a sect_addr_info structure to be passed around to other
      functions.  We have to split this up into separate print
-     statements because local_hex_string returns a local static
+     statements because hex_string returns a local static
      string. */
 
   printf_unfiltered ("add symbol table from file \"%s\" at\n", filename);
@@ -1737,8 +1761,7 @@ add_symbol_file_command (char *args, int from_tty)
       section_addrs->other[sec_num].name = sec;
       section_addrs->other[sec_num].addr = addr;
       printf_unfiltered ("\t%s_addr = %s\n",
-                      sec,
-                      local_hex_string ((unsigned long)addr));
+                      sec, hex_string ((unsigned long)addr));
       sec_num++;
 
       /* The object's sections are initialized when a
@@ -1749,7 +1772,7 @@ add_symbol_file_command (char *args, int from_tty)
     }
 
   if (from_tty && (!query ("%s", "")))
-    error ("Not confirmed.");
+    error (_("Not confirmed."));
 
   symbol_file_add (filename, from_tty, section_addrs, 0, flags);
 
@@ -1765,94 +1788,7 @@ add_shared_symbol_files_command (char *args, int from_tty)
 #ifdef ADD_SHARED_SYMBOL_FILES
   ADD_SHARED_SYMBOL_FILES (args, from_tty);
 #else
-  error ("This command is not available in this configuration of GDB.");
-#endif
-}
-\f
-#if 0
-/* Read inferior memory at ADDR to find the header of a loaded object file
-   and read its in-core symbols out of inferior memory.  TEMPL is a bfd
-   representing the target's format.  */
-struct objfile *
-symbol_file_add_from_memory (bfd *templ, CORE_ADDR addr, int from_tty)
-{
-  struct objfile *objf;
-  bfd *nbfd;
-  asection *sec;
-  bfd_vma loadbase;
-  struct section_addr_info *sai;
-  unsigned int i;
-
-  if (bfd_get_flavour (templ) != bfd_target_elf_flavour)
-    error ("add-symbol-file-from-memory not supported for this target");
-
-  nbfd = bfd_elf_bfd_from_remote_memory (templ, addr, &loadbase,
-                                        target_read_memory);
-  if (nbfd == NULL)
-    {
-      error ("Failed to read a valid object file image from memory.");
-      return NULL;
-    }
-
-  nbfd->filename = xstrdup ("shared object read from target memory");
-
-  if (!bfd_check_format (nbfd, bfd_object))
-    {
-      /* FIXME: should be checking for errors from bfd_close (for one thing,
-         on error it does not free all the storage associated with the
-         bfd).  */
-      bfd_close (nbfd);
-      error ("Got object file from memory but can't read symbols: %s.",
-            bfd_errmsg (bfd_get_error ()));
-      return NULL;
-    }
-
-  sai = alloc_section_addr_info (bfd_count_sections (nbfd));
-  make_cleanup (xfree, sai);
-  i = 0;
-  for (sec = nbfd->sections; sec != NULL; sec = sec->next)
-    if ((bfd_get_section_flags (nbfd, sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
-      {
-       sai->other[i].addr = bfd_get_section_vma (nbfd, sec) + loadbase;
-       sai->other[i].name = (char *) bfd_get_section_name (nbfd, sec);
-       sai->other[i].sectindex = sec->index;
-       ++i;
-      }
-
-  objf = symbol_file_add_with_addrs_or_offsets (nbfd, from_tty,
-                                               sai, NULL, 0, 0, OBJF_SHARED);
-
-  /* This might change our ideas about frames already looked at.  */
-  reinit_frame_cache ();
-
-  return objf;
-}
-#endif
-
-static void
-add_symbol_file_from_memory_command (char *args, int from_tty)
-{
-#if 0
-  CORE_ADDR addr;
-  bfd *templ;
-
-  if (args == NULL)
-    error ("add-symbol-file-from-memory requires an expression argument");
-
-  addr = parse_and_eval_address (args);
-
-  /* We need some representative bfd to know the target we are looking at.  */
-  if (symfile_objfile != NULL)
-    templ = symfile_objfile->obfd;
-  else
-    templ = exec_bfd;
-  if (templ == NULL)
-    error ("\
-Must use symbol-file or exec-file before add-symbol-file-from-memory.");
-
-  symbol_file_add_from_memory (templ, addr, from_tty);
-#else
-  error ("add-symbol-file-from-memory not implemented");
+  error (_("This command is not available in this configuration of GDB."));
 #endif
 }
 \f
@@ -1922,14 +1858,14 @@ reread_symbols (void)
                 BFD without closing the descriptor.  */
              obfd_filename = bfd_get_filename (objfile->obfd);
              if (!bfd_close (objfile->obfd))
-               error ("Can't close BFD for %s: %s", objfile->name,
+               error (_("Can't close BFD for %s: %s"), objfile->name,
                       bfd_errmsg (bfd_get_error ()));
              objfile->obfd = bfd_openr (obfd_filename, gnutarget);
              if (objfile->obfd == NULL)
-               error ("Can't open %s to read symbols.", objfile->name);
+               error (_("Can't open %s to read symbols."), objfile->name);
              /* bfd_openr sets cacheable to true, which is what we want.  */
              if (!bfd_check_format (objfile->obfd, bfd_object))
-               error ("Can't read symbols from %s: %s.", objfile->name,
+               error (_("Can't read symbols from %s: %s."), objfile->name,
                       bfd_errmsg (bfd_get_error ()));
 
              /* Save the offsets, we will nuke them with the rest of the
@@ -1947,11 +1883,11 @@ reread_symbols (void)
              /* FIXME: Do we have to free a whole linked list, or is this
                 enough?  */
              if (objfile->global_psymbols.list)
-               xmfree (objfile->md, objfile->global_psymbols.list);
+               xfree (objfile->global_psymbols.list);
              memset (&objfile->global_psymbols, 0,
                      sizeof (objfile->global_psymbols));
              if (objfile->static_psymbols.list)
-               xmfree (objfile->md, objfile->static_psymbols.list);
+               xfree (objfile->static_psymbols.list);
              memset (&objfile->static_psymbols, 0,
                      sizeof (objfile->static_psymbols));
 
@@ -1972,7 +1908,7 @@ reread_symbols (void)
              objfile->free_psymtabs = NULL;
              objfile->cp_namespace_symtab = NULL;
              objfile->msymbols = NULL;
-             objfile->sym_private = NULL;
+             objfile->deprecated_sym_private = NULL;
              objfile->minimal_symbol_count = 0;
              memset (&objfile->msymbol_hash, 0,
                      sizeof (objfile->msymbol_hash));
@@ -1996,7 +1932,7 @@ reread_symbols (void)
              obstack_init (&objfile->objfile_obstack);
              if (build_objfile_section_table (objfile))
                {
-                 error ("Can't find the file sections in `%s': %s",
+                 error (_("Can't find the file sections in `%s': %s"),
                         objfile->name, bfd_errmsg (bfd_get_error ()));
                }
               terminate_minimal_symbol_table (objfile);
@@ -2016,9 +1952,6 @@ reread_symbols (void)
              if (objfile == symfile_objfile)
                {
                  (*objfile->sf->sym_new_init) (objfile);
-#ifdef HPUXHPPA
-                 RESET_HP_UX_GLOBALS ();
-#endif
                }
 
              (*objfile->sf->sym_init) (objfile);
@@ -2165,14 +2098,14 @@ set_ext_lang_command (char *args, int from_tty)
 
   /* First arg is filename extension, starting with '.' */
   if (*cp != '.')
-    error ("'%s': Filename extension must begin with '.'", ext_args);
+    error (_("'%s': Filename extension must begin with '.'"), ext_args);
 
   /* Find end of first arg.  */
   while (*cp && !isspace (*cp))
     cp++;
 
   if (*cp == '\0')
-    error ("'%s': two arguments required -- filename extension and language",
+    error (_("'%s': two arguments required -- filename extension and language"),
           ext_args);
 
   /* Null-terminate first arg */
@@ -2183,7 +2116,7 @@ set_ext_lang_command (char *args, int from_tty)
     cp++;
 
   if (*cp == '\0')
-    error ("'%s': two arguments required -- filename extension and language",
+    error (_("'%s': two arguments required -- filename extension and language"),
           ext_args);
 
   /* Lookup the language from among those we know.  */
@@ -2252,6 +2185,10 @@ init_filename_language_table (void)
       add_filename_language (".pas", language_pascal);
       add_filename_language (".p", language_pascal);
       add_filename_language (".pp", language_pascal);
+      add_filename_language (".adb", language_ada);
+      add_filename_language (".ads", language_ada);
+      add_filename_language (".a", language_ada);
+      add_filename_language (".ada", language_ada);
     }
 }
 
@@ -2583,17 +2520,15 @@ again2:
          || BLOCK_NSYMS (BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK))
          || BLOCK_NSYMS (BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK)))
        {
-         complaint (&symfile_complaints, "Replacing old symbols for `%s'",
+         complaint (&symfile_complaints, _("Replacing old symbols for `%s'"),
                     name);
          clear_symtab_users_queued++;
          make_cleanup (clear_symtab_users_once, 0);
          blewit = 1;
        }
       else
-       {
-         complaint (&symfile_complaints, "Empty symbol table found for `%s'",
-                    name);
-       }
+       complaint (&symfile_complaints, _("Empty symbol table found for `%s'"),
+                  name);
 
       free_symtab (s);
     }
@@ -2778,11 +2713,11 @@ init_psymbol_list (struct objfile *objfile, int total_symbols)
 
   if (objfile->global_psymbols.list)
     {
-      xmfree (objfile->md, objfile->global_psymbols.list);
+      xfree (objfile->global_psymbols.list);
     }
   if (objfile->static_psymbols.list)
     {
-      xmfree (objfile->md, objfile->static_psymbols.list);
+      xfree (objfile->static_psymbols.list);
     }
 
   /* Current best guess is that approximately a twentieth
@@ -2796,15 +2731,15 @@ init_psymbol_list (struct objfile *objfile, int total_symbols)
     {
       objfile->global_psymbols.next =
        objfile->global_psymbols.list = (struct partial_symbol **)
-       xmmalloc (objfile->md, (objfile->global_psymbols.size
-                               * sizeof (struct partial_symbol *)));
+       xmalloc ((objfile->global_psymbols.size
+                 * sizeof (struct partial_symbol *)));
     }
   if (objfile->static_psymbols.size > 0)
     {
       objfile->static_psymbols.next =
        objfile->static_psymbols.list = (struct partial_symbol **)
-       xmmalloc (objfile->md, (objfile->static_psymbols.size
-                               * sizeof (struct partial_symbol *)));
+       xmalloc ((objfile->static_psymbols.size
+                 * sizeof (struct partial_symbol *)));
     }
 }
 
@@ -2968,7 +2903,7 @@ pc_in_unmapped_range (CORE_ADDR pc, asection *section)
   if (overlay_debugging)
     if (section && section_is_overlay (section))
       {
-       size = bfd_get_section_size_before_reloc (section);
+       size = bfd_get_section_size (section);
        if (section->lma <= pc && pc < section->lma + size)
          return 1;
       }
@@ -2988,7 +2923,7 @@ pc_in_mapped_range (CORE_ADDR pc, asection *section)
   if (overlay_debugging)
     if (section && section_is_overlay (section))
       {
-       size = bfd_get_section_size_before_reloc (section);
+       size = bfd_get_section_size (section);
        if (section->vma <= pc && pc < section->vma + size)
          return 1;
       }
@@ -3004,9 +2939,9 @@ sections_overlap (asection *a, asection *b)
   /* FIXME: need bfd *, so we can use bfd_section_vma methods. */
 
   CORE_ADDR a_start = a->vma;
-  CORE_ADDR a_end = a->vma + bfd_get_section_size_before_reloc (a);
+  CORE_ADDR a_end = a->vma + bfd_get_section_size (a);
   CORE_ADDR b_start = b->vma;
-  CORE_ADDR b_end = b->vma + bfd_get_section_size_before_reloc (b);
+  CORE_ADDR b_end = b->vma + bfd_get_section_size (b);
 
   return (a_start < b_end && b_start < a_end);
 }
@@ -3141,7 +3076,7 @@ list_overlays_command (char *args, int from_tty)
 
        vma = bfd_section_vma (objfile->obfd, osect->the_bfd_section);
        lma = bfd_section_lma (objfile->obfd, osect->the_bfd_section);
-       size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
+       size = bfd_get_section_size (osect->the_bfd_section);
        name = bfd_section_name (objfile->obfd, osect->the_bfd_section);
 
        printf_filtered ("Section %s, loaded at ", name);
@@ -3171,12 +3106,12 @@ map_overlay_command (char *args, int from_tty)
   asection *bfdsec;
 
   if (!overlay_debugging)
-    error ("\
+    error (_("\
 Overlay debugging not enabled.  Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
 
   if (args == 0 || *args == 0)
-    error ("Argument required: name of an overlay section");
+    error (_("Argument required: name of an overlay section"));
 
   /* First, find a section matching the user supplied argument */
   ALL_OBJSECTIONS (objfile, sec)
@@ -3207,7 +3142,7 @@ the 'overlay manual' command.");
        }
       return;
     }
-  error ("No overlay section called %s", args);
+  error (_("No overlay section called %s"), args);
 }
 
 /* Function: unmap_overlay_command
@@ -3221,23 +3156,23 @@ unmap_overlay_command (char *args, int from_tty)
   struct obj_section *sec;
 
   if (!overlay_debugging)
-    error ("\
+    error (_("\
 Overlay debugging not enabled.  Use either the 'overlay auto' or\n\
-the 'overlay manual' command.");
+the 'overlay manual' command."));
 
   if (args == 0 || *args == 0)
-    error ("Argument required: name of an overlay section");
+    error (_("Argument required: name of an overlay section"));
 
   /* First, find a section matching the user supplied argument */
   ALL_OBJSECTIONS (objfile, sec)
     if (!strcmp (bfd_section_name (objfile->obfd, sec->the_bfd_section), args))
     {
       if (!sec->ovly_mapped)
-       error ("Section %s is not mapped", args);
+       error (_("Section %s is not mapped"), args);
       sec->ovly_mapped = 0;
       return;
     }
-  error ("No overlay section called %s", args);
+  error (_("No overlay section called %s"), args);
 }
 
 /* Function: overlay_auto_command
@@ -3285,7 +3220,7 @@ overlay_load_command (char *args, int from_tty)
   if (target_overlay_update)
     (*target_overlay_update) (NULL);
   else
-    error ("This target does not know how to read its overlay state.");
+    error (_("This target does not know how to read its overlay state."));
 }
 
 /* Function: overlay_command
@@ -3406,18 +3341,18 @@ simple_read_overlay_table (void)
   novlys_msym = lookup_minimal_symbol ("_novlys", NULL, NULL);
   if (! novlys_msym)
     {
-      error ("Error reading inferior's overlay table: "
+      error (_("Error reading inferior's overlay table: "
              "couldn't find `_novlys' variable\n"
-             "in inferior.  Use `overlay manual' mode.");
+             "in inferior.  Use `overlay manual' mode."));
       return 0;
     }
 
   ovly_table_msym = lookup_minimal_symbol ("_ovly_table", NULL, NULL);
   if (! ovly_table_msym)
     {
-      error ("Error reading inferior's overlay table: couldn't find "
+      error (_("Error reading inferior's overlay table: couldn't find "
              "`_ovly_table' array\n"
-             "in inferior.  Use `overlay manual' mode.");
+             "in inferior.  Use `overlay manual' mode."));
       return 0;
     }
 
@@ -3481,7 +3416,7 @@ simple_overlay_update_1 (struct obj_section *osect)
   bfd *obfd = osect->objfile->obfd;
   asection *bsect = osect->the_bfd_section;
 
-  size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
+  size = bfd_get_section_size (osect->the_bfd_section);
   for (i = 0; i < cache_novlys; i++)
     if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
        && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
@@ -3542,7 +3477,7 @@ simple_overlay_update (struct obj_section *osect)
       bfd *obfd = osect->objfile->obfd;
       asection *bsect = osect->the_bfd_section;
 
-      size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
+      size = bfd_get_section_size (bsect);
       for (i = 0; i < cache_novlys; i++)
        if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
            && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
@@ -3615,13 +3550,6 @@ with the text.  SECT is a section name to be loaded at SECT_ADDR.",
               &cmdlist);
   set_cmd_completer (c, filename_completer);
 
-  c = add_cmd ("add-symbol-file-from-memory", class_files,
-              add_symbol_file_from_memory_command,
-              "\
-Load the symbols out of memory from a dynamically loaded object file.\n\
-Give an expression for the address of the file's shared object file header.",
-              &cmdlist);
-
   c = add_cmd ("add-shared-symbol-files", class_files,
               add_shared_symbol_files_command,
    "Load the symbols from shared objects in the dynamic linker's link map.",
@@ -3634,7 +3562,7 @@ Give an expression for the address of the file's shared object file header.",
 for access from GDB.", &cmdlist);
   set_cmd_completer (c, filename_completer);
 
-  add_show_from_set
+  deprecated_add_show_from_set
     (add_set_cmd ("symbol-reloading", class_support, var_boolean,
                  (char *) &symbol_reloading,
            "Set dynamic symbol table reloading multiple times in one run.",
@@ -3678,7 +3606,7 @@ Usage: set extension-language .foo bar",
   add_info ("extensions", info_ext_lang_command,
            "All filename extensions associated with a source language.");
 
-  add_show_from_set
+  deprecated_add_show_from_set
     (add_set_cmd ("download-write-size", class_obscure,
                  var_integer, (char *) &download_write_size,
                  "Set the write size used when downloading a program.\n"
@@ -3701,6 +3629,6 @@ Usage: set extension-language .foo bar",
         "and lastly at the path of the directory of the binary with\n"
         "the global debug-file directory prepended\n",
         &setlist));
-  add_show_from_set (c, &showlist);
+  deprecated_add_show_from_set (c, &showlist);
   set_cmd_completer (c, filename_completer);
 }