* A few more improvements to gx jit prototype.
[deliverable/binutils-gdb.git] / gdb / buildsym.h
index 1f82c857e797f403e9155ddbcbbf516fe38a20d5..5cf7548345a69900d4341e87dec81e4c2db10d8e 100644 (file)
@@ -1,5 +1,5 @@
 /* Build symbol tables in GDB's internal format.
-   Copyright (C) 1986-1991 Free Software Foundation, Inc.
+   Copyright (C) 1986-1996 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -15,7 +15,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 (BUILDSYM_H)
 #define BUILDSYM_H 1
@@ -59,6 +59,8 @@ struct subfile
   char *dirname;
   struct linetable *line_vector;
   int line_vector_length;
+  enum language language;
+  char *debugformat;
 };
 
 EXTERN struct subfile *subfiles;
@@ -70,7 +72,11 @@ EXTERN struct subfile *current_subfile;
 
 EXTERN unsigned char processing_gcc_compilation;
 
-/* When set, we are processing a .o file compiled by sun acc */
+/* When set, we are processing a .o file compiled by sun acc.  This is
+   misnamed; it refers to all stabs-in-elf implementations which use
+   N_UNDF the way Sun does, including Solaris gcc.  Hopefully all
+   stabs-in-elf implementations ever invented will choose to be
+   compatible.  */
 
 EXTERN unsigned char processing_acc_compilation;
 
@@ -91,10 +97,6 @@ struct pending
   struct symbol *symbol[PENDINGSIZE];
 };
 
-/* List of free `struct pending' structures for reuse.  */
-
-EXTERN struct pending *free_pendings;
-
 /* Here are the three lists that symbols are put on.  */
 
 EXTERN struct pending *file_symbols;   /* static at top level, and types */
@@ -164,6 +166,11 @@ struct pending_block
   struct block *block;
 };
 
+/* Pointer to the head of a linked list of symbol blocks which have
+   already been finalized (lexical contexts already closed) and which are
+   just waiting to be built into a blockvector when finalizing the
+   associated symtab. */
+
 EXTERN struct pending_block *pending_blocks;
 
 \f
@@ -175,11 +182,11 @@ struct subfile_stack
 
 EXTERN struct subfile_stack *subfile_stack;
 
-#define next_symbol_text() (*next_symbol_text_func)()
+#define next_symbol_text(objfile) (*next_symbol_text_func)(objfile)
 
 /* Function to invoke get the next symbol.  Return the symbol name. */
 
-EXTERN char *(*next_symbol_text_func) PARAMS ((void));
+EXTERN char *(*next_symbol_text_func) PARAMS ((struct objfile *));
 
 /* Vector of types defined so far, indexed by their type numbers.
    Used for both stabs and coff.
@@ -226,7 +233,7 @@ extern char *
 pop_subfile PARAMS ((void));
 
 extern struct symtab *
-end_symtab PARAMS ((CORE_ADDR, int, int, struct objfile *));
+end_symtab PARAMS ((CORE_ADDR, struct objfile *, int));
 
 extern void
 scan_file_globals PARAMS ((struct objfile *));
@@ -246,20 +253,27 @@ record_line PARAMS ((struct subfile *, int, CORE_ADDR));
 extern void
 start_symtab PARAMS ((char *, char *, CORE_ADDR));
 
-extern struct partial_symtab *
-start_psymtab PARAMS ((struct objfile *, struct section_offsets *, char *,
-                      CORE_ADDR, int, struct partial_symbol *,
-                      struct partial_symbol *));
+extern int
+hashname PARAMS ((char *));
+
+extern void
+free_pending_blocks PARAMS ((void));
+
+/* FIXME: Note that this is used only in buildsym.c and dstread.c,
+   which should be fixed to not need direct access to make_blockvector. */
+
+extern struct blockvector *
+make_blockvector PARAMS ((struct objfile *));
+
+/* FIXME: Note that this is used only in buildsym.c and dstread.c,
+   which should be fixed to not need direct access to record_pending_block. */
 
 extern void
-end_psymtab PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR,
-                    struct partial_symtab **, int));
+record_pending_block PARAMS ((struct objfile *, struct block *,
+                             struct pending_block *));
 
 extern void
-process_one_symbol PARAMS ((int, int, CORE_ADDR, char *,
-                           struct section_offsets *, struct objfile *));
-extern int
-hashname PARAMS ((char *));
+record_debugformat PARAMS ((char *));
 
 #undef EXTERN
 
This page took 0.025373 seconds and 4 git commands to generate.