+extern char *pop_subfile (void);
+
+extern struct symtab *end_symtab (CORE_ADDR end_addr,
+ struct objfile *objfile, int section);
+
+/* Defined in stabsread.c. */
+
+extern void scan_file_globals (struct objfile *objfile);
+
+extern void buildsym_new_init (void);
+
+extern void buildsym_init (void);
+
+extern struct context_stack *push_context (int desc, CORE_ADDR valu);
+
+extern struct context_stack *pop_context (void);
+
+extern void record_line (struct subfile *subfile, int line, CORE_ADDR pc);
+
+extern void start_symtab (char *name, char *dirname, CORE_ADDR start_addr);
+
+extern int hashname (char *name);
+
+extern void free_pending_blocks (void);
+
+/* 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 record_pending_block (struct objfile *objfile,
+ struct block *block,
+ struct pending_block *opblock);
+
+/* Record the name of the debug format in the current pending symbol
+ table. FORMAT must be a string with a lifetime at least as long as
+ the symtab's objfile. */
+
+extern void record_debugformat (const char *format);
+
+/* Record the name of the debuginfo producer (usually the compiler) in
+ the current pending symbol table. PRODUCER must be a string with a
+ lifetime at least as long as the symtab's objfile. */
+
+extern void record_producer (const char *producer);
+
+extern void merge_symbol_lists (struct pending **srclist,
+ struct pending **targetlist);
+
+/* The macro table for the compilation unit whose symbols we're
+ currently reading. All the symtabs for this CU will point to
+ this. */
+EXTERN struct macro_table *pending_macros;
+
+#undef EXTERN
+
+#endif /* defined (BUILDSYM_H) */