Record minimal symbols directly in reader.

This patch changes minimal symbol creation in two ways.  First, it
removes global variables in favor of members of minimal_symbol_reader.
Second, it changes functions like prim_record_minimal_symbol to be
member functions of minimal_symbol_reader.

2016-10-21  Tom Tromey  <tom@tromey.com>

	* xcoffread.c (record_minimal_symbol, scan_xcoff_symtab): Add
	"reader" argument.  Update.
	(xcoff_initial_scan): Update.
	* symfile.h (mdebug_build_psymtabs): Add "reader" argument.
	* mipsread.c (mipscoff_symfile_read): Update.
	(read_alphacoff_dynamic_symtab): Add "reader" argument.  Update.
	* minsyms.h (minimal_symbol_reader) <record, record_full>:
	Declare.
	<m_msym_bunch, m_msym_bunch_index, m_msym_count>: New members.
	<record_with_info>: New function, renamed from
	prim_record_minimal_symbol_and_info.
	* minsyms.c (msym_bunch, msym_bunch_index, msym_count): Remove
	globals.
	(minimal_symbol_reader): Initialize new members.
	(minimal_symbol_reader::record): Renamed from
	prim_record_minimal_symbol.
	(minimal_symbol_reader::record_full): Renamed from
	prim_record_minimal_symbol_full.
	(prim_record_minimal_symbol_and_info): Move to minsyms.h; rename.
	* mdebugread.c (mdebug_build_psymtabs, parse_partial_symbols)
	(record_minimal_symbol): Add "reader" argument.  Update.
	(elfmdebug_build_psymtabs): Update.
	* machoread.c (macho_symtab_add_minsym, macho_symtab_read): Add
	"reader" argument.  Update.
	(macho_symfile_read): Update.
	* elfread.c (record_minimal_symbol, elf_symtab_read)
	(elf_rel_plt_read): Add "reader" argument.  Update.
	(elf_read_minimal_symbols): Update.
	* dbxread.c (record_minimal_symbol, read_dbx_dynamic_symtab)
	(read_dbx_symtab): Add "reader" argument.  Update.
	(dbx_symfile_read): Update.
	* coffread.c (record_minimal_symbol, coff_symtab_read): Add
	"reader" argument.  Update.
	(coff_symfile_read): Update.
	* coff-pe-read.h (read_pe_exported_syms): Add "reader" argument.
	* coff-pe-read.c (add_pe_exported_sym, add_pe_forwarded_sym)
	(read_pe_exported_syms): Add "reader" argument.  Update.
This commit is contained in:
Tom Tromey
2016-09-22 14:25:08 -06:00
parent d25e871993
commit 8dddcb8f00
13 changed files with 274 additions and 235 deletions

View File

@@ -97,7 +97,8 @@ macho_register_oso (VEC (oso_el) **oso_vector_ptr,
/* Add symbol SYM to the minimal symbol table of OBJFILE. */
static void
macho_symtab_add_minsym (struct objfile *objfile, const asymbol *sym)
macho_symtab_add_minsym (minimal_symbol_reader &reader,
struct objfile *objfile, const asymbol *sym)
{
if (sym->name == NULL || *sym->name == '\0')
{
@@ -147,10 +148,9 @@ macho_symtab_add_minsym (struct objfile *objfile, const asymbol *sym)
else
return; /* Skip this symbol. */
prim_record_minimal_symbol_and_info
(sym->name, symaddr, ms_type,
gdb_bfd_section_index (objfile->obfd, sym->section),
objfile);
reader.record_with_info (sym->name, symaddr, ms_type,
gdb_bfd_section_index (objfile->obfd,
sym->section));
}
}
@@ -158,7 +158,8 @@ macho_symtab_add_minsym (struct objfile *objfile, const asymbol *sym)
NUMBER_OF_SYMBOLS for OBJFILE. Registers OSO filenames found. */
static void
macho_symtab_read (struct objfile *objfile,
macho_symtab_read (minimal_symbol_reader &reader,
struct objfile *objfile,
long number_of_symbols, asymbol **symbol_table,
VEC (oso_el) **oso_vector_ptr)
{
@@ -227,7 +228,7 @@ macho_symtab_read (struct objfile *objfile,
else
{
/* Non-debugging symbols go to the minimal symbol table. */
macho_symtab_add_minsym (objfile, sym);
macho_symtab_add_minsym (reader, objfile, sym);
}
break;
@@ -864,7 +865,8 @@ macho_symfile_read (struct objfile *objfile, int symfile_flags)
bfd_get_filename (objfile->obfd),
bfd_errmsg (bfd_get_error ()));
macho_symtab_read (objfile, symcount, symbol_table, &oso_vector);
macho_symtab_read (reader, objfile, symcount, symbol_table,
&oso_vector);
reader.install ();
}