* symfile.h (INLINE_ADD_PSYMBOL): Default this to 0 and possibly
authorFred Fish <fnf@specifix.com>
Fri, 16 Feb 1996 02:10:15 +0000 (02:10 +0000)
committerFred Fish <fnf@specifix.com>
Fri, 16 Feb 1996 02:10:15 +0000 (02:10 +0000)
delete entirely someday.

gdb/ChangeLog
gdb/symfile.h

index f4b4507..9433d4d 100644 (file)
@@ -1,3 +1,8 @@
+Thu Feb 15 18:08:13 1996  Fred Fish  <fnf@cygnus.com>
+
+       * symfile.h (INLINE_ADD_PSYMBOL): Default this to 0 and possibly
+       delete entirely someday.
+
 Thu Feb 15 15:25:34 1996  Stan Shebs  <shebs@andros.cygnus.com>
 
        * mpw-make.sed: Edit out makefile rebuild rule.
index 306735d..6271a72 100644 (file)
@@ -1,5 +1,6 @@
 /* Definitions for reading symbol files into GDB.
-   Copyright (C) 1990, 1991, 1992  Free Software Foundation, Inc.
+   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1996
+   Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -15,7 +16,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #if !defined (SYMFILE_H)
 #define SYMFILE_H
@@ -33,18 +34,10 @@ struct psymbol_allocation_list {
 
 struct sym_fns {
 
-  /* is the name, or name prefix, of the BFD "target type" that this
-     set of functions handles.  E.g. "a.out" or "sunOs" or "coff" or "elf".  */
+  /* BFD flavour that we handle, or (as a special kludge, see xcoffread.c,
+     (enum bfd_flavour)-1 for xcoff).  */
 
-  char *sym_name;
-
-  /* counts how many bytes of sym_name should be checked against the
-     BFD target type of the file being read.  If an exact match is
-     desired, specify the number of characters in sym_name plus 1 for
-     the NULL.  If a prefix match is desired, specify the number of
-     characters in sym_name.  */
-
-  int sym_namelen;
+  enum bfd_flavour sym_flavour;
 
   /* Initializes anything that is global to the entire symbol table.  It is
      called during symbol_file_add, when we begin debugging an entirely new
@@ -100,9 +93,14 @@ extend_psymbol_list PARAMS ((struct psymbol_allocation_list *,
 /* Add any kind of symbol to a psymbol_allocation_list. */
 
 #ifndef INLINE_ADD_PSYMBOL
-#define INLINE_ADD_PSYMBOL 1
+/* Default this to off for now, and probably eventually remove support for inlining via
+   macros.  Real world tests show no performance improvements by inlining, and the macros
+   just make debugging gdb more complicated and make gdb larger by up to 150 Kb. */
+#define INLINE_ADD_PSYMBOL 0
 #endif
 
+#include "demangle.h"
+
 #if !INLINE_ADD_PSYMBOL
 
 /* Since one arg is a struct, we have to pass in a ptr and deref it (sigh) */
@@ -115,12 +113,9 @@ extend_psymbol_list PARAMS ((struct psymbol_allocation_list *,
 
 #else  /* !INLINE_ADD_PSYMBOL */
 
-#include "demangle.h"
-
 #define        ADD_PSYMBOL_VT_TO_LIST(NAME,NAMELENGTH,NAMESPACE,CLASS,LIST,VALUE,VT,LANGUAGE, OBJFILE) \
   do {                                                                 \
     register struct partial_symbol *psym;                              \
-    register char *demangled_name;                                     \
     if ((LIST).next >= (LIST).list + (LIST).size)                      \
       extend_psymbol_list (&(LIST),(OBJFILE));                         \
     psym = (LIST).next++;                                              \
@@ -130,11 +125,13 @@ extend_psymbol_list PARAMS ((struct psymbol_allocation_list *,
     memcpy (SYMBOL_NAME (psym), (NAME), (NAMELENGTH));                 \
     SYMBOL_NAME (psym)[(NAMELENGTH)] = '\0';                           \
     SYMBOL_NAMESPACE (psym) = (NAMESPACE);                             \
+    SYMBOL_SECTION (psym) = 0;                                         \
     PSYMBOL_CLASS (psym) = (CLASS);                                    \
     VT (psym) = (VALUE);                                               \
     SYMBOL_LANGUAGE (psym) = (LANGUAGE);                               \
-    SYMBOL_INIT_DEMANGLED_NAME (psym, &objfile->psymbol_obstack);      \
-  } while (0);
+    SYMBOL_INIT_LANGUAGE_SPECIFIC (psym, LANGUAGE);                    \
+    OBJSTAT (objfile, n_psyms++);                                      \
+  } while (0)
 
 /* Add a symbol with an integer value to a psymtab. */
 
@@ -148,7 +145,7 @@ extend_psymbol_list PARAMS ((struct psymbol_allocation_list *,
 
 #endif /* INLINE_ADD_PSYMBOL */
 
-                       /*   Functions   */
+extern void init_psymbol_list PARAMS ((struct objfile *, int));
 
 extern void
 sort_pst_symbols PARAMS ((struct partial_symtab *));
@@ -188,9 +185,6 @@ sort_block_syms PARAMS ((struct block *));
 extern void
 sort_symtab_syms PARAMS ((struct symtab *));
 
-extern void
-sort_all_symtab_syms PARAMS ((void));
-
 /* Make a copy of the string at PTR with SIZE characters in the symbol obstack
    (and add a null character at the end in the copy).
    Returns the address of the copy.  */
@@ -207,25 +201,43 @@ obconcat PARAMS ((struct obstack *obstackp, const char *, const char *,
 
                        /*   Variables   */
 
+/* whether to auto load solibs at startup time:  0/1. */
+
+extern int auto_solib_add;
+
 /* From symfile.c */
 
 extern struct partial_symtab *
 allocate_psymtab PARAMS ((char *, struct objfile *));
 
+/* Remote targets may wish to use this as their load function.  */
+extern void generic_load PARAMS ((char *name, int from_tty));
+
 /* From dwarfread.c */
 
 extern void
 dwarf_build_psymtabs PARAMS ((struct objfile *, struct section_offsets *, int,
                              file_ptr, unsigned int, file_ptr, unsigned int));
 
-/* From dbxread.c */
+/* From mdebugread.c */
+
+/* Hack to force structures to exist before use in parameter list.  */
+struct ecoff_debug_hack
+{
+  struct ecoff_debug_swap *a;
+  struct ecoff_debug_info *b;
+};
+extern void
+mdebug_build_psymtabs PARAMS ((struct objfile *,
+                              const struct ecoff_debug_swap *,
+                              struct ecoff_debug_info *,
+                              struct section_offsets *));
 
 extern void
-elfstab_build_psymtabs PARAMS ((struct objfile *objfile,
-       struct section_offsets *section_offsets,
-       int mainline,
-       file_ptr staboff, unsigned int stabsize,
-       file_ptr stabstroffset, unsigned int stabstrsize));
+elfmdebug_build_psymtabs PARAMS ((struct objfile *,
+                                 const struct ecoff_debug_swap *,
+                                 asection *,
+                                 struct section_offsets *));
 
 /* From demangle.c */