[RFA] Pass all symfile flags to sym_read.

Tristan Gingold
2009-12-04T12:43:24Z

Hi

This is preliminary work to make sym_read handles separate debug files.
This is trivially done as mainline is not read anymore.

Tristan.

2009-12-02 Tristan Gingold <gingold@adacore.com>

* symfile.h (struct sym_fns): Adjust comment on sym_read.
* symfile.c (syms_from_objfile): Pass all symfile flags to sym_read.
* dbxread.c (dbx_symfile_read): Rename mainline to symfile_flags,
adjust header comment.
* elfread.c (elf_symfile_read): Ditto.
* somread.c (som_symfile_read): Ditto.
* xcoffread.c (xcoff_initial_scan): Ditto.
* coffread.c (coff_symfile_read): Rename mainline to symfile_flags.
* machoread.c (macho_symfile_read): Ditto.
* mipsread.c (mipscoff_symfile_read): Ditto.
---
gdb/coffread.c | 2 +-
gdb/dbxread.c | 7 ++-----
gdb/elfread.c | 5 +----
gdb/machoread.c | 2 +-
gdb/mipsread.c | 2 +-
gdb/somread.c | 5 +----
gdb/symfile.c | 2 +-
gdb/symfile.h | 7 +++----
gdb/xcoffread.c | 5 ++---
9 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/gdb/coffread.c b/gdb/coffread.c
index 1f71db2..3f5ff96 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -501,7 +501,7 @@ static bfd *symfile_bfd;
/* Read a symbol file, after initialization by coff_symfile_init. */

static void
-coff_symfile_read (struct objfile *objfile, int mainline)
+coff_symfile_read (struct objfile *objfile, int symfile_flags)
{
struct coff_symfile_info *info;
struct dbx_symfile_info *dbxinfo;
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 3efaa65..0c89ccf 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -520,13 +520,10 @@ record_minimal_symbol (char *name, CORE_ADDR address, int type,
/* Scan and build partial symbols for a symbol file.
We have been initialized by a call to dbx_symfile_init, which
put all the relevant info into a "struct dbx_symfile_info",
- hung off the objfile structure.
-
- MAINLINE is true if we are reading the main symbol
- table (as opposed to a shared lib or dynamically loaded file). */
+ hung off the objfile structure. */

static void
-dbx_symfile_read (struct objfile *objfile, int mainline)
+dbx_symfile_read (struct objfile *objfile, int symfile_flags)
{
bfd *sym_bfd;
int val;
diff --git a/gdb/elfread.c b/gdb/elfread.c
index f9052c1..dd844fc 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -576,9 +576,6 @@ elf_symtab_read (struct objfile *objfile, int type,
in each section. We simplify it down to a single offset for all
symbols. FIXME.

- MAINLINE is true if we are reading the main symbol
- table (as opposed to a shared lib or dynamically loaded file).
-
This function only does the minimum work necessary for letting the
user "name" things symbolically; it does not read the entire symtab.
Instead, it reads the external and static symbols and puts them in partial
@@ -600,7 +597,7 @@ elf_symtab_read (struct objfile *objfile, int type,
capability even for files compiled without -g. */

static void
-elf_symfile_read (struct objfile *objfile, int mainline)
+elf_symfile_read (struct objfile *objfile, int symfile_flags)
{
bfd *abfd = objfile->obfd;
struct elfinfo ei;
diff --git a/gdb/machoread.c b/gdb/machoread.c
index 081027f..a449963 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -574,7 +574,7 @@ macho_check_dsym (struct objfile *objfile)
}

static void
-macho_symfile_read (struct objfile *objfile, int mainline)
+macho_symfile_read (struct objfile *objfile, int symfile_flags)
{
bfd *abfd = objfile->obfd;
struct cleanup *back_to;
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index a84003f..cac10e6 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -67,7 +67,7 @@ mipscoff_symfile_init (struct objfile *objfile)
/* Read a symbol file from a file. */

static void
-mipscoff_symfile_read (struct objfile *objfile, int mainline)
+mipscoff_symfile_read (struct objfile *objfile, int symfile_flags)
{
bfd *abfd = objfile->obfd;
struct cleanup *back_to;
diff --git a/gdb/somread.c b/gdb/somread.c
index d519d2c..04f0684 100644
--- a/gdb/somread.c
+++ b/gdb/somread.c
@@ -292,9 +292,6 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
SECTION_OFFSETS is a set of offsets to apply to relocate the symbols
in each section. This is ignored, as it isn't needed for SOM.

- MAINLINE is true if we are reading the main symbol
- table (as opposed to a shared lib or dynamically loaded file).
-
This function only does the minimum work necessary for letting the
user "name" things symbolically; it does not read the entire symtab.
Instead, it reads the external and static symbols and puts them in partial
@@ -315,7 +312,7 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
capability even for files compiled without -g. */

static void
-som_symfile_read (struct objfile *objfile, int mainline)
+som_symfile_read (struct objfile *objfile, int symfile_flags)
{
bfd *abfd = objfile->obfd;
struct cleanup *back_to;
diff --git a/gdb/symfile.c b/gdb/symfile.c
index b635691..6e1b915 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -886,7 +886,7 @@ syms_from_objfile (struct objfile *objfile,
init_objfile_sect_indices (objfile);
}

- (*objfile->sf->sym_read) (objfile, mainline);
+ (*objfile->sf->sym_read) (objfile, add_flags);

/* Discard cleanups as symbol reading was successful. */

diff --git a/gdb/symfile.h b/gdb/symfile.h
index 40f7db7..cca7cba 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -132,11 +132,10 @@ struct sym_fns

void (*sym_init) (struct objfile *);

- /* sym_read (objfile, mainline) Reads a symbol file into a psymtab
+ /* sym_read (objfile, symfile_flags) Reads a symbol file into a psymtab
(or possibly a symtab). OBJFILE is the objfile struct for the
- file we are reading. MAINLINE is 1 if this is the main symbol
- table being read, and 0 if a secondary symbol file (e.g. shared
- library or dynamically loaded file) is being read. */
+ file we are reading. SYMFILE_FLAGS are the flags passed to
+ symbol_fil_add & co. */

void (*sym_read) (struct objfile *, int);

diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 35d8f1d..01dffab 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2868,11 +2868,10 @@ xcoff_get_toc_offset (struct objfile *objfile)

SECTION_OFFSETS contains offsets relative to which the symbols in the
various sections are (depending where the sections were actually loaded).
- MAINLINE is true if we are reading the main symbol
- table (as opposed to a shared lib or dynamically loaded file). */
+*/

static void
-xcoff_initial_scan (struct objfile *objfile, int mainline)
+xcoff_initial_scan (struct objfile *objfile, int symfile_flags)
{
bfd *abfd;
int val;
--
1.6.2