Allow multiple partial symbol readers per objfile
authorTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:40 +0000 (17:23 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:46 +0000 (17:23 -0600)
commiteb36a3eb2f846b8d4b16c1bb114136961d0ce5bf
tree66db807b35c33f6ba4ab2406e19308ecd2ac4a29
parente11145903f25b7ac91dd12e6330df3faec0a3f1b
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.
13 files changed:
gdb/ChangeLog
gdb/ctfread.c
gdb/dbxread.c
gdb/dwarf2/public.h
gdb/dwarf2/read.c
gdb/elfread.c
gdb/mdebugread.c
gdb/objfiles.h
gdb/psympriv.h
gdb/psymtab.c
gdb/psymtab.h
gdb/symfile.c
gdb/xcoffread.c