* xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read):
authorJim Kingdon <jkingdon@engr.sgi.com>
Thu, 21 Oct 1993 04:41:56 +0000 (04:41 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Thu, 21 Oct 1993 04:41:56 +0000 (04:41 +0000)
Sort symtabs for this objfile only, not for all objfiles.
* symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used.

gdb/ChangeLog
gdb/coffread.c
gdb/xcoffread.c

index 609bd0d54b6f32744025da97d7603ea6eb0dc225..786bffff04ece122f7354f66d8c1a910cd726a36 100644 (file)
@@ -1,5 +1,9 @@
 Wed Oct 20 11:35:43 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read):
+       Sort symtabs for this objfile only, not for all objfiles.
+       * symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used.
+
        * mipsread.c (parse_symbol): In third-eye, a function has a block
        within it which represents the whole function.  Create only one
        GDB block for both.
index ac252d7dd80612cb6f4e3ab513e90436c83c93e3..415ee18b4aa3ccc85e27f046cdb4ee3e42cde289 100644 (file)
@@ -40,22 +40,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "libcoff.h"           /* FIXME secret internal data from BFD */
 
 struct coff_symfile_info {
-  asection *text_sect;         /* Text section accessor */
-  int symcount;                        /* How many symbols are there in the file */
-  char *stringtab;             /* The actual string table */
-  int stringtab_size;          /* Its size */
-  file_ptr symtab_offset;      /* Offset in file to symbol table */
-  int symbol_size;             /* Bytes in a single symbol */
-  struct stab_section_info *stab_section_info;         /* section starting points
-                                  of the original .o files before linking. */
+  file_ptr min_lineno_offset;          /* Where in file lowest line#s are */
+  file_ptr max_lineno_offset;          /* 1+last byte of line#s in file */
 
   asection *stabsect;          /* Section pointer for .stab section */
   asection *stabstrsect;               /* Section pointer for .stab section */
   asection *stabindexsect;     /* Section pointer for .stab.index section */
   char *stabstrdata;
-
-  file_ptr min_lineno_offset;          /* Where in file lowest line#s are */
-  file_ptr max_lineno_offset;          /* 1+last byte of line#s in file */
 };
 
 /* Translate an external name string into a user-visible name.  */
@@ -297,9 +288,9 @@ coff_locate_sections PARAMS ((bfd *, asection *, PTR));
    if so, stash away some access information for the section.
 
    FIXME: The section names should not be hardwired strings (what
-   should they be?  I don't think most debug formats have enough
-   special section flags to specify what kind of debug section it is
-   -kingdon). */
+   should they be?  I don't think most object file formats have enough
+   section flags to specify what kind of debug section it is
+   -kingdon).  */
 
 static void
 coff_locate_sections (ignore_abfd, sectp, csip)
@@ -525,6 +516,12 @@ coff_symfile_init (objfile)
   asection     *section, *strsection;
   bfd *abfd = objfile->obfd;
 
+  /* Allocate struct to keep track of stab reading. */
+  objfile->sym_stab_info = (PTR)
+    xmmalloc (objfile -> md, sizeof (struct dbx_symfile_info));
+
+  memset ((PTR) objfile->sym_stab_info, 0, sizeof (struct dbx_symfile_info));
+
   /* Allocate struct to keep track of the symfile */
   objfile -> sym_private = xmmalloc (objfile -> md,
                                     sizeof (struct coff_symfile_info));
@@ -595,6 +592,7 @@ coff_symfile_read (objfile, section_offsets, mainline)
      int mainline;
 {
   struct coff_symfile_info *info;
+  struct dbx_symfile_info *dbxinfo;
   bfd *abfd = objfile->obfd;
   coff_data_type *cdata = coff_data (abfd);
   char *name = bfd_get_filename (abfd);
@@ -607,6 +605,7 @@ coff_symfile_read (objfile, section_offsets, mainline)
   int stabsize, stabstrsize;
 
   info = (struct coff_symfile_info *) objfile -> sym_private;
+  dbxinfo = (struct dbx_symfile_info *) objfile->sym_stab_info;
   symfile_bfd = abfd;                  /* Kludge for swap routines */
 
 /* WARNING WILL ROBINSON!  ACCESSING BFD-PRIVATE DATA HERE!  FIXME!  */
@@ -663,7 +662,10 @@ coff_symfile_read (objfile, section_offsets, mainline)
 
   /* Sort symbols alphabetically within each block.  */
 
-  sort_all_symtab_syms ();
+  for (s = objfile -> symtabs; s != NULL; s = s -> next)
+    {
+      sort_symtab_syms (s);
+    }
 
   /* Install any minimal symbols that have been collected as the current
      minimal symbols for this objfile. */
index 3ecdf1869cd6f22b2c922c29d27f71898ee6684c..4d22f944cf204af22bedd9105fab76c1bb208c50 100644 (file)
@@ -2079,7 +2079,10 @@ xcoff_symfile_read (objfile, section_offset, mainline)
   free_debugsection ();
 
   /* Sort symbols alphabetically within each block.  */
-  sort_all_symtab_syms ();
+  for (s = objfile -> symtabs; s != NULL; s = s -> next)
+    {
+      sort_symtab_syms (s);
+    }
 
   /* Install any minimal symbols that have been collected as the current
      minimal symbols for this objfile. */