diff options
author | Tom Tromey <tom@tromey.com> | 2021-03-20 17:23:40 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-03-20 17:23:46 -0600 |
commit | eb36a3eb2f846b8d4b16c1bb114136961d0ce5bf (patch) | |
tree | 66db807b35c33f6ba4ab2406e19308ecd2ac4a29 /gdb/xcoffread.c | |
parent | Switch objfile to hold a list of psymbol readers (diff) | |
download | binutils-gdb-eb36a3eb2f846b8d4b16c1bb114136961d0ce5bf.tar.gz binutils-gdb-eb36a3eb2f846b8d4b16c1bb114136961d0ce5bf.tar.bz2 binutils-gdb-eb36a3eb2f846b8d4b16c1bb114136961d0ce5bf.zip |
Allow multiple partial symbol readers per objfile
This patch finally changes gdb so that an objfile can have multiple
sources of partial symbols (or mixed partial symbols and other kinds
of indices).
This is done by having each symbol reader create its own
psymbol_functions object and add it to the 'qf' list in the objfile.
gdb/ChangeLog
2021-03-20 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_initial_scan): Create partial symtabs.
* symfile.c (syms_from_objfile_1, reread_symbols): Update.
* psymtab.h (make_psymbol_functions): Don't declare.
* psymtab.c (make_psymbol_functions): Remove.
(maintenance_print_psymbols): Update.
* psympriv.h (struct psymbol_functions): Add no-argument
constructor.
* objfiles.h (struct objfile) <reset_psymtabs>: Remove.
<partial_symtabs>: Remove.
* mdebugread.c (mdebug_build_psymtabs): Create partial symtabs.
* elfread.c (read_partial_symbols): Update.
(elf_symfile_read): Remove check for existing partial symbols.
Don't clear "qf".
* dwarf2/read.c (dwarf2_has_info): Remove check for existing
partial symbols.
(dwarf2_build_psymtabs): Add psymbol_functions parameter. Create
partial symtabs.
* dwarf2/public.h (dwarf2_build_psymtabs): Add psymbol_functions
parameter.
* dbxread.c (dbx_symfile_read): Create partial symtabs.
* ctfread.c (elfctf_build_psymtabs): Create partial symtabs.
Diffstat (limited to 'gdb/xcoffread.c')
-rw-r--r-- | gdb/xcoffread.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index f8d428127da..30ac876e8e3 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -2946,7 +2946,9 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags) /* Now that the symbol table data of the executable file are all in core, process them and define symbols accordingly. */ - psymtab_storage *partial_symtabs = objfile->partial_symtabs.get (); + psymbol_functions *psf = new psymbol_functions (); + psymtab_storage *partial_symtabs = psf->get_partial_symtabs ().get (); + objfile->qf.emplace_front (psf); scan_xcoff_symtab (reader, partial_symtabs, objfile); /* Install any minimal symbols that have been collected as the current |