Add new devices x1122 x1132 emulation.
[deliverable/binutils-gdb.git] / gdb / elfread.c
index e76cd0d4a358b8e1b0b9916e45179cb28ec1eda9..7aee37cc5db37685ce7c0f5e5607d8d692a3976b 100644 (file)
@@ -1,7 +1,8 @@
 /* Read ELF (Executable and Linking Format) object files for GDB.
-   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002
-   Free Software Foundation, Inc.
+
+   Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
    Written by Fred Fish at Cygnus Support.
 
    This file is part of GDB.
@@ -52,20 +53,6 @@ struct elfinfo
     asection *mdebugsect;      /* Section pointer for .mdebug section */
   };
 
-/* Various things we might complain about... */
-
-struct complaint section_info_complaint =
-{"elf/stab section information %s without a preceding file symbol", 0, 0};
-
-struct complaint section_info_dup_complaint =
-{"duplicated elf/stab section information for %s", 0, 0};
-
-struct complaint stab_info_mismatch_complaint =
-{"elf/stab section information missing for %s", 0, 0};
-
-struct complaint stab_info_questionable_complaint =
-{"elf/stab section information questionable for %s", 0, 0};
-
 static void free_elfinfo (void *);
 
 /* We are called once per section from elf_symfile_read.  We
@@ -357,24 +344,14 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
                           || ((sym->flags & BSF_LOCAL)
                               && sym->name[0] == '$'
                               && sym->name[1] == 'L'))
-                   /* Looks like a compiler-generated label.  Skip it.
-                      The assembler should be skipping these (to keep
-                      executables small), but apparently with gcc on the
-                      delta m88k SVR4, it loses.  So to have us check too
-                      should be harmless (but I encourage people to fix this
-                      in the assembler instead of adding checks here).  */
+                   /* Looks like a compiler-generated label.  Skip
+                      it.  The assembler should be skipping these (to
+                      keep executables small), but apparently with
+                      gcc on the (deleted) delta m88k SVR4, it loses.
+                      So to have us check too should be harmless (but
+                      I encourage people to fix this in the assembler
+                      instead of adding checks here).  */
                    continue;
-#ifdef HARRIS_TARGET
-                 else if (sym->name[0] == '.' && sym->name[1] == '.')
-                   {
-                     /* Looks like a Harris compiler generated label for the
-                        purpose of marking instructions that are relevant to
-                        DWARF dies.  The assembler can't get rid of these 
-                        because they are relocatable addresses that the
-                        linker needs to resolve. */
-                     continue;
-                   }
-#endif
                  else
                    {
                      ms_type = mst_file_text;
@@ -425,8 +402,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
                                      sizeof (*sectinfo));
                              if (filesym == NULL)
                                {
-                                 complain (&section_info_complaint,
-                                           sym->name);
+                                 complaint (&symfile_complaints,
+                                            "elf/stab section information %s without a preceding file symbol",
+                                            sym->name);
                                }
                              else
                                {
@@ -438,8 +416,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
                            { 
                              if (sectinfo->sections[index] != 0)
                                {
-                                 complain (&section_info_dup_complaint,
-                                           sectinfo->filename);
+                                 complaint (&symfile_complaints,
+                                            "duplicated elf/stab section information for %s",
+                                            sectinfo->filename);
                                }
                            }
                          else
@@ -563,6 +542,15 @@ elf_symfile_read (struct objfile *objfile, int mainline)
 
   elf_symtab_read (objfile, 1);
 
+  /* Install any minimal symbols that have been collected as the current
+     minimal symbols for this objfile.  The debug readers below this point
+     should not generate new minimal symbols; if they do it's their
+     responsibility to install them.  "mdebug" appears to be the only one
+     which will do this.  */
+
+  install_minimal_symbols (objfile);
+  do_cleanups (back_to);
+
   /* Now process debugging information, which is contained in
      special ELF sections. */
 
@@ -612,8 +600,7 @@ elf_symfile_read (struct objfile *objfile, int mainline)
       if (str_sect)
        elfstab_build_psymtabs (objfile,
                                mainline,
-                               ei.stabsect->filepos,
-                               bfd_section_size (abfd, ei.stabsect),
+                               ei.stabsect,
                                str_sect->filepos,
                                bfd_section_size (abfd, str_sect));
     }
@@ -633,13 +620,6 @@ elf_symfile_read (struct objfile *objfile, int mainline)
 
   if (DWARF2_BUILD_FRAME_INFO_P ())
     DWARF2_BUILD_FRAME_INFO(objfile);
-
-  /* Install any minimal symbols that have been collected as the current
-     minimal symbols for this objfile. */
-
-  install_minimal_symbols (objfile);
-
-  do_cleanups (back_to);
 }
 
 /* This cleans up the objfile's sym_stab_info pointer, and the chain of
@@ -750,7 +730,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
 
   if (maybe == 0 && questionable != 0)
     {
-      complain (&stab_info_questionable_complaint, filename);
+      complaint (&symfile_complaints,
+                "elf/stab section information questionable for %s", filename);
       maybe = questionable;
     }
 
@@ -767,7 +748,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
 
   /* We were unable to find any offsets for this file.  Complain.  */
   if (dbx->stab_section_info)  /* If there *is* any info, */
-    complain (&stab_info_mismatch_complaint, filename);
+    complaint (&symfile_complaints,
+              "elf/stab section information missing for %s", filename);
 }
 \f
 /* Register that we are able to handle ELF object file formats.  */
This page took 0.025055 seconds and 4 git commands to generate.