mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
Remove special support in gdb for Sun's version of stabs.
Discussion: https://sourceware.org/ml/gdb-patches/2015-05/msg00169.html gdb/ChangeLog: * NEWS: Mention Sun's version of stabs is no longer supported. * elfread.c (free_elfinfo): Delete. All uses updated. (elfstab_offset_sections): Delete. All uses updated. * gdb-stabs.h (stab_section_info): Delete. All uses updated. * psympriv.h (partial_symtab) <section_offsets>: Delete. All uses updated. * psymtab.c (start_psymtab_common): Delete arg section_offsets. All callers updated. gdb/doc/ChangeLog: * stabs.texinfo (ELF Linker Relocation): Mention Sun stabs is no longer supported.
This commit is contained in:
parent
ef8b8d4ad5
commit
18a94d75a0
@ -1,3 +1,14 @@
|
||||
2015-06-19 Doug Evans <dje@google.com>
|
||||
|
||||
* NEWS: Mention Sun's version of stabs is no longer supported.
|
||||
* elfread.c (free_elfinfo): Delete. All uses updated.
|
||||
(elfstab_offset_sections): Delete. All uses updated.
|
||||
* gdb-stabs.h (stab_section_info): Delete. All uses updated.
|
||||
* psympriv.h (partial_symtab) <section_offsets>: Delete.
|
||||
All uses updated.
|
||||
* psymtab.c (start_psymtab_common): Delete arg section_offsets.
|
||||
All callers updated.
|
||||
|
||||
2015-06-18 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* common/rsp-low.c (needs_escaping): New.
|
||||
|
2
gdb/NEWS
2
gdb/NEWS
@ -7,6 +7,8 @@
|
||||
targets has been added. GDB now supports recording of A64 instruction set
|
||||
including advance SIMD instructions.
|
||||
|
||||
* Support for Sun's version of the "stabs" debug file format has been removed.
|
||||
|
||||
* GDB now honors the content of the file /proc/PID/coredump_filter
|
||||
(PID is the process ID) on GNU/Linux systems. This file can be used
|
||||
to specify the types of memory mappings that will be included in a
|
||||
|
@ -631,8 +631,6 @@ dbx_symfile_init (struct objfile *objfile)
|
||||
|
||||
/* FIXME POKING INSIDE BFD DATA STRUCTURES. */
|
||||
|
||||
DBX_SYMFILE_INFO (objfile)->stab_section_info = NULL;
|
||||
|
||||
text_sect = bfd_get_section_by_name (sym_bfd, ".text");
|
||||
if (!text_sect)
|
||||
error (_("Can't find .text section in symbol file"));
|
||||
@ -2174,8 +2172,8 @@ start_psymtab (struct objfile *objfile, char *filename, CORE_ADDR textlow,
|
||||
struct partial_symbol **static_syms)
|
||||
{
|
||||
struct partial_symtab *result =
|
||||
start_psymtab_common (objfile, objfile->section_offsets,
|
||||
filename, textlow, global_syms, static_syms);
|
||||
start_psymtab_common (objfile, filename, textlow,
|
||||
global_syms, static_syms);
|
||||
|
||||
result->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct symloc));
|
||||
@ -2186,14 +2184,6 @@ start_psymtab (struct objfile *objfile, char *filename, CORE_ADDR textlow,
|
||||
STRING_OFFSET (result) = string_table_offset;
|
||||
FILE_STRING_OFFSET (result) = file_string_table_offset;
|
||||
|
||||
#ifdef HAVE_ELF
|
||||
/* If we're handling an ELF file, drag some section-relocation info
|
||||
for this source file out of the ELF symbol table, to compensate for
|
||||
Sun brain death. This replaces the section_offsets in this psymtab,
|
||||
if successful. */
|
||||
elfstab_offset_sections (objfile, result);
|
||||
#endif
|
||||
|
||||
/* Deduce the source language from the filename for this psymtab. */
|
||||
psymtab_language = deduce_language_from_filename (filename);
|
||||
|
||||
@ -2321,8 +2311,6 @@ end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
|
||||
struct partial_symtab *subpst =
|
||||
allocate_psymtab (include_list[i], objfile);
|
||||
|
||||
/* Copy the sesction_offsets array from the main psymtab. */
|
||||
subpst->section_offsets = pst->section_offsets;
|
||||
subpst->read_symtab_private =
|
||||
obstack_alloc (&objfile->objfile_obstack, sizeof (struct symloc));
|
||||
LDSYMOFF (subpst) =
|
||||
@ -2503,11 +2491,7 @@ read_ofile_symtab (struct objfile *objfile, struct partial_symtab *pst)
|
||||
sym_size = LDSYMLEN (pst);
|
||||
text_offset = pst->textlow;
|
||||
text_size = pst->texthigh - pst->textlow;
|
||||
/* This cannot be simply objfile->section_offsets because of
|
||||
elfstab_offset_sections() which initializes the psymtab section
|
||||
offsets information in a special way, and that is different from
|
||||
objfile->section_offsets. */
|
||||
section_offsets = pst->section_offsets;
|
||||
section_offsets = objfile->section_offsets;
|
||||
|
||||
dbxread_objfile = objfile;
|
||||
|
||||
@ -3042,17 +3026,12 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
|
||||
p = strchr (name, ':');
|
||||
if (p != 0 && p[1] == 'S')
|
||||
{
|
||||
/* The linker relocated it. We don't want to add an
|
||||
elfstab_offset_sections-type offset, but we *do*
|
||||
/* The linker relocated it. We don't want to add a
|
||||
Sun-stabs Tfoo.foo-like offset, but we *do*
|
||||
want to add whatever solib.c passed to
|
||||
symbol_file_add as addr (this is known to affect
|
||||
SunOS 4, and I suspect ELF too). Since
|
||||
elfstab_offset_sections currently does not muck
|
||||
with the text offset (there is no Ttext.text
|
||||
symbol), we can get addr from the text offset. If
|
||||
elfstab_offset_sections ever starts dealing with
|
||||
the text offset, and we still need to do this, we
|
||||
need to invent a SECT_OFF_ADDR_KLUDGE or something. */
|
||||
SunOS 4, and I suspect ELF too). Since there is no
|
||||
Ttext.text symbol, we can get addr from the text offset. */
|
||||
valu += ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile));
|
||||
goto define_a_symbol;
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2015-06-19 Doug Evans <dje@google.com>
|
||||
|
||||
* stabs.texinfo (ELF Linker Relocation): Mention Sun stabs is no
|
||||
longer supported.
|
||||
|
||||
2015-06-17 Patrick Palka <patrick@parcs.ath.cx>
|
||||
|
||||
* gdb.texinfo (Command History): Mention that setting
|
||||
|
@ -4062,7 +4062,8 @@ the @code{.stabstr} section.
|
||||
@appendixsec Having the Linker Relocate Stabs in ELF
|
||||
|
||||
This section describes some Sun hacks for Stabs in ELF; it does not
|
||||
apply to COFF or SOM.
|
||||
apply to COFF or SOM. While @value{GDBN} no longer supports this hack
|
||||
for Sun Stabs in ELF, this section is kept to document the issue.
|
||||
|
||||
To keep linking fast, you don't want the linker to have to relocate very
|
||||
many stabs. Making sure this is done for @code{N_SLINE},
|
||||
@ -4100,8 +4101,8 @@ the address from the ELF symbols.
|
||||
Finding the correct @code{Bbss.bss}, etc., symbol is difficult, because
|
||||
the linker simply concatenates the @code{.stab} sections from each
|
||||
@file{.o} file without including any information about which part of a
|
||||
@code{.stab} section comes from which @file{.o} file. The way GDB does
|
||||
this is to look for an ELF @code{STT_FILE} symbol which has the same
|
||||
@code{.stab} section comes from which @file{.o} file. The way GDB use to
|
||||
do this is to look for an ELF @code{STT_FILE} symbol which has the same
|
||||
name as the last component of the file name from the @code{N_SO} symbol
|
||||
in the stabs (for example, if the file name is @file{../../gdb/main.c},
|
||||
it looks for an ELF @code{STT_FILE} symbol named @code{main.c}). This
|
||||
|
@ -4489,7 +4489,6 @@ dwarf2_create_include_psymtab (const char *name, struct partial_symtab *pst,
|
||||
subpst->dirname = pst->dirname;
|
||||
}
|
||||
|
||||
subpst->section_offsets = pst->section_offsets;
|
||||
subpst->textlow = 0;
|
||||
subpst->texthigh = 0;
|
||||
|
||||
@ -5890,8 +5889,7 @@ create_partial_symtab (struct dwarf2_per_cu_data *per_cu, const char *name)
|
||||
struct objfile *objfile = per_cu->objfile;
|
||||
struct partial_symtab *pst;
|
||||
|
||||
pst = start_psymtab_common (objfile, objfile->section_offsets,
|
||||
name, 0,
|
||||
pst = start_psymtab_common (objfile, name, 0,
|
||||
objfile->global_psymbols.next,
|
||||
objfile->static_psymbols.next);
|
||||
|
||||
|
184
gdb/elfread.c
184
gdb/elfread.c
@ -66,8 +66,6 @@ struct elfinfo
|
||||
|
||||
static const struct bfd_data *probe_key = NULL;
|
||||
|
||||
static void free_elfinfo (void *);
|
||||
|
||||
/* Minimal symbols located at the GOT entries for .plt - that is the real
|
||||
pointer where the given entry will jump to. It gets updated by the real
|
||||
function address during lazy ld.so resolving in the inferior. These
|
||||
@ -236,14 +234,8 @@ elf_symtab_read (struct objfile *objfile, int type,
|
||||
CORE_ADDR symaddr;
|
||||
CORE_ADDR offset;
|
||||
enum minimal_symbol_type ms_type;
|
||||
/* If sectinfo is nonNULL, it contains section info that should end up
|
||||
filed in the objfile. */
|
||||
struct stab_section_info *sectinfo = NULL;
|
||||
/* If filesym is nonzero, it points to a file symbol, but we haven't
|
||||
seen any section info for it yet. */
|
||||
asymbol *filesym = 0;
|
||||
/* Name of filesym. This is either a constant string or is saved on
|
||||
the objfile's filename cache. */
|
||||
/* Name of the last file symbol. This is either a constant string or is
|
||||
saved on the objfile's filename cache. */
|
||||
const char *filesymname = "";
|
||||
struct dbx_symfile_info *dbx = DBX_SYMFILE_INFO (objfile);
|
||||
int stripped = (bfd_get_symcount (objfile->obfd) == 0);
|
||||
@ -345,16 +337,7 @@ elf_symtab_read (struct objfile *objfile, int type,
|
||||
continue;
|
||||
if (sym->flags & BSF_FILE)
|
||||
{
|
||||
/* STT_FILE debugging symbol that helps stabs-in-elf debugging.
|
||||
Chain any old one onto the objfile; remember new sym. */
|
||||
if (sectinfo != NULL)
|
||||
{
|
||||
sectinfo->next = dbx->stab_section_info;
|
||||
dbx->stab_section_info = sectinfo;
|
||||
sectinfo = NULL;
|
||||
}
|
||||
filesym = sym;
|
||||
filesymname = bcache (filesym->name, strlen (filesym->name) + 1,
|
||||
filesymname = bcache (sym->name, strlen (sym->name) + 1,
|
||||
objfile->per_bfd->filename_cache);
|
||||
}
|
||||
else if (sym->flags & BSF_SECTION_SYM)
|
||||
@ -451,77 +434,6 @@ elf_symtab_read (struct objfile *objfile, int type,
|
||||
}
|
||||
else if (sym->flags & BSF_LOCAL)
|
||||
{
|
||||
/* Named Local variable in a Data section.
|
||||
Check its name for stabs-in-elf. */
|
||||
int special_local_sect;
|
||||
|
||||
if (strcmp ("Bbss.bss", sym->name) == 0)
|
||||
special_local_sect = SECT_OFF_BSS (objfile);
|
||||
else if (strcmp ("Ddata.data", sym->name) == 0)
|
||||
special_local_sect = SECT_OFF_DATA (objfile);
|
||||
else if (strcmp ("Drodata.rodata", sym->name) == 0)
|
||||
special_local_sect = SECT_OFF_RODATA (objfile);
|
||||
else
|
||||
special_local_sect = -1;
|
||||
if (special_local_sect >= 0)
|
||||
{
|
||||
/* Found a special local symbol. Allocate a
|
||||
sectinfo, if needed, and fill it in. */
|
||||
if (sectinfo == NULL)
|
||||
{
|
||||
int max_index;
|
||||
size_t size;
|
||||
|
||||
max_index = SECT_OFF_BSS (objfile);
|
||||
if (objfile->sect_index_data > max_index)
|
||||
max_index = objfile->sect_index_data;
|
||||
if (objfile->sect_index_rodata > max_index)
|
||||
max_index = objfile->sect_index_rodata;
|
||||
|
||||
/* max_index is the largest index we'll
|
||||
use into this array, so we must
|
||||
allocate max_index+1 elements for it.
|
||||
However, 'struct stab_section_info'
|
||||
already includes one element, so we
|
||||
need to allocate max_index aadditional
|
||||
elements. */
|
||||
size = (sizeof (struct stab_section_info)
|
||||
+ (sizeof (CORE_ADDR) * max_index));
|
||||
sectinfo = (struct stab_section_info *)
|
||||
xmalloc (size);
|
||||
memset (sectinfo, 0, size);
|
||||
sectinfo->num_sections = max_index;
|
||||
if (filesym == NULL)
|
||||
{
|
||||
complaint (&symfile_complaints,
|
||||
_("elf/stab section information %s "
|
||||
"without a preceding file symbol"),
|
||||
sym->name);
|
||||
}
|
||||
else
|
||||
{
|
||||
sectinfo->filename =
|
||||
(char *) filesym->name;
|
||||
}
|
||||
}
|
||||
if (sectinfo->sections[special_local_sect] != 0)
|
||||
complaint (&symfile_complaints,
|
||||
_("duplicated elf/stab section "
|
||||
"information for %s"),
|
||||
sectinfo->filename);
|
||||
/* BFD symbols are section relative. */
|
||||
symaddr = sym->value + sym->section->vma;
|
||||
/* Relocate non-absolute symbols by the
|
||||
section offset. */
|
||||
if (sym->section != bfd_abs_section_ptr)
|
||||
symaddr += offset;
|
||||
sectinfo->sections[special_local_sect] = symaddr;
|
||||
/* The special local symbols don't go in the
|
||||
minimal symbol table, so ignore this one. */
|
||||
continue;
|
||||
}
|
||||
/* Not a special stabs-in-elf symbol, do regular
|
||||
symbol processing. */
|
||||
if (sym->section->flags & SEC_LOAD)
|
||||
{
|
||||
ms_type = mst_file_data;
|
||||
@ -1130,11 +1042,8 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags,
|
||||
/* Allocate struct to keep track of the symfile. */
|
||||
dbx = XCNEW (struct dbx_symfile_info);
|
||||
set_objfile_data (objfile, dbx_objfile_data_key, dbx);
|
||||
make_cleanup (free_elfinfo, (void *) objfile);
|
||||
|
||||
/* Process the normal ELF symbol table first. This may write some
|
||||
chain of info into the dbx_symfile_info of the objfile, which can
|
||||
later be used by elfstab_offset_sections. */
|
||||
/* Process the normal ELF symbol table first. */
|
||||
|
||||
storage_needed = bfd_get_symtab_upper_bound (objfile->obfd);
|
||||
if (storage_needed < 0)
|
||||
@ -1369,28 +1278,6 @@ read_psyms (struct objfile *objfile)
|
||||
dwarf2_build_psymtabs (objfile);
|
||||
}
|
||||
|
||||
/* This cleans up the objfile's dbx symfile info, and the chain of
|
||||
stab_section_info's, that might be dangling from it. */
|
||||
|
||||
static void
|
||||
free_elfinfo (void *objp)
|
||||
{
|
||||
struct objfile *objfile = (struct objfile *) objp;
|
||||
struct dbx_symfile_info *dbxinfo = DBX_SYMFILE_INFO (objfile);
|
||||
struct stab_section_info *ssi, *nssi;
|
||||
|
||||
ssi = dbxinfo->stab_section_info;
|
||||
while (ssi)
|
||||
{
|
||||
nssi = ssi->next;
|
||||
xfree (ssi);
|
||||
ssi = nssi;
|
||||
}
|
||||
|
||||
dbxinfo->stab_section_info = 0; /* Just say No mo info about this. */
|
||||
}
|
||||
|
||||
|
||||
/* Initialize anything that needs initializing when a completely new symbol
|
||||
file is specified (not just adding some symbols from another file, e.g. a
|
||||
shared library).
|
||||
@ -1427,69 +1314,6 @@ elf_symfile_init (struct objfile *objfile)
|
||||
objfile->flags |= OBJF_REORDERED;
|
||||
}
|
||||
|
||||
/* When handling an ELF file that contains Sun STABS debug info,
|
||||
some of the debug info is relative to the particular chunk of the
|
||||
section that was generated in its individual .o file. E.g.
|
||||
offsets to static variables are relative to the start of the data
|
||||
segment *for that module before linking*. This information is
|
||||
painfully squirreled away in the ELF symbol table as local symbols
|
||||
with wierd names. Go get 'em when needed. */
|
||||
|
||||
void
|
||||
elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
|
||||
{
|
||||
const char *filename = pst->filename;
|
||||
struct dbx_symfile_info *dbx = DBX_SYMFILE_INFO (objfile);
|
||||
struct stab_section_info *maybe = dbx->stab_section_info;
|
||||
struct stab_section_info *questionable = 0;
|
||||
int i;
|
||||
|
||||
/* The ELF symbol info doesn't include path names, so strip the path
|
||||
(if any) from the psymtab filename. */
|
||||
filename = lbasename (filename);
|
||||
|
||||
/* FIXME: This linear search could speed up significantly
|
||||
if it was chained in the right order to match how we search it,
|
||||
and if we unchained when we found a match. */
|
||||
for (; maybe; maybe = maybe->next)
|
||||
{
|
||||
if (filename[0] == maybe->filename[0]
|
||||
&& filename_cmp (filename, maybe->filename) == 0)
|
||||
{
|
||||
/* We found a match. But there might be several source files
|
||||
(from different directories) with the same name. */
|
||||
if (0 == maybe->found)
|
||||
break;
|
||||
questionable = maybe; /* Might use it later. */
|
||||
}
|
||||
}
|
||||
|
||||
if (maybe == 0 && questionable != 0)
|
||||
{
|
||||
complaint (&symfile_complaints,
|
||||
_("elf/stab section information questionable for %s"),
|
||||
filename);
|
||||
maybe = questionable;
|
||||
}
|
||||
|
||||
if (maybe)
|
||||
{
|
||||
/* Found it! Allocate a new psymtab struct, and fill it in. */
|
||||
maybe->found++;
|
||||
pst->section_offsets = (struct section_offsets *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
|
||||
for (i = 0; i < maybe->num_sections; i++)
|
||||
(pst->section_offsets)->offsets[i] = maybe->sections[i];
|
||||
return;
|
||||
}
|
||||
|
||||
/* We were unable to find any offsets for this file. Complain. */
|
||||
if (dbx->stab_section_info) /* If there *is* any info, */
|
||||
complaint (&symfile_complaints,
|
||||
_("elf/stab section information missing for %s"), filename);
|
||||
}
|
||||
|
||||
/* Implementation of `sym_get_probes', as documented in symfile.h. */
|
||||
|
||||
static VEC (probe_p) *
|
||||
|
@ -30,20 +30,6 @@
|
||||
global because it is referenced by several modules. */
|
||||
extern const struct objfile_data *dbx_objfile_data_key;
|
||||
|
||||
/* The stab_section_info chain remembers info from the ELF symbol table,
|
||||
while psymtabs are being built for the other symbol tables in the
|
||||
objfile. It is destroyed at the complation of psymtab-reading.
|
||||
Any info that was used from it has been copied into psymtabs. */
|
||||
|
||||
struct stab_section_info
|
||||
{
|
||||
char *filename;
|
||||
struct stab_section_info *next;
|
||||
int found; /* Count of times it's found in searching. */
|
||||
size_t num_sections;
|
||||
CORE_ADDR sections[1];
|
||||
};
|
||||
|
||||
/* Information is passed among various dbxread routines for accessing
|
||||
symbol files. A pointer to this structure is kept in the objfile,
|
||||
using the dbx_objfile_data_key. */
|
||||
@ -57,9 +43,6 @@ struct dbx_symfile_info
|
||||
int stringtab_size; /* Its size */
|
||||
file_ptr symtab_offset; /* Offset in file to symbol table */
|
||||
int symbol_size; /* Bytes in a single symbol */
|
||||
struct stab_section_info *stab_section_info; /* Section starting points
|
||||
of the original .o files
|
||||
before linking. */
|
||||
|
||||
/* See stabsread.h for the use of the following. */
|
||||
struct header_file *header_files;
|
||||
|
@ -2646,7 +2646,7 @@ parse_partial_symbols (struct objfile *objfile)
|
||||
}
|
||||
else
|
||||
textlow = 0;
|
||||
pst = start_psymtab_common (objfile, objfile->section_offsets,
|
||||
pst = start_psymtab_common (objfile,
|
||||
fdr_name (fh),
|
||||
textlow,
|
||||
objfile->global_psymbols.next,
|
||||
@ -3935,6 +3935,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
struct linetable *lines;
|
||||
CORE_ADDR lowest_pdr_addr = 0;
|
||||
int last_symtab_ended = 0;
|
||||
struct section_offsets *section_offsets = objfile->section_offsets;
|
||||
|
||||
if (pst->readin)
|
||||
return;
|
||||
@ -4051,7 +4052,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
&& previous_stab_code != (unsigned char) N_SO
|
||||
&& *name == '\000')
|
||||
{
|
||||
valu += ANOFFSET (pst->section_offsets,
|
||||
valu += ANOFFSET (section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
previous_stab_code = N_SO;
|
||||
cust = end_symtab (valu, SECT_OFF_TEXT (objfile));
|
||||
@ -4062,14 +4063,14 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
{
|
||||
last_symtab_ended = 0;
|
||||
process_one_symbol (type_code, 0, valu, name,
|
||||
pst->section_offsets, objfile);
|
||||
section_offsets, objfile);
|
||||
}
|
||||
}
|
||||
/* Similarly a hack. */
|
||||
else if (name[0] == '#')
|
||||
{
|
||||
process_one_symbol (N_SLINE, 0, valu, name,
|
||||
pst->section_offsets, objfile);
|
||||
section_offsets, objfile);
|
||||
}
|
||||
if (type_code == N_FUN)
|
||||
{
|
||||
@ -4101,7 +4102,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
else
|
||||
{
|
||||
/* Handle encoded stab line number. */
|
||||
valu += ANOFFSET (pst->section_offsets,
|
||||
valu += ANOFFSET (section_offsets,
|
||||
SECT_OFF_TEXT (objfile));
|
||||
record_line (current_subfile, sh.index,
|
||||
gdbarch_addr_bits_remove (gdbarch, valu));
|
||||
@ -4225,7 +4226,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
c = parse_symbol (&sh,
|
||||
debug_info->external_aux + fh->iauxBase,
|
||||
sym_ptr, fh->fBigendian,
|
||||
pst->section_offsets, objfile);
|
||||
section_offsets, objfile);
|
||||
sym_ptr += c * external_sym_size;
|
||||
}
|
||||
|
||||
@ -4300,7 +4301,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
ext_ptr = PST_PRIVATE (pst)->extern_tab;
|
||||
for (i = PST_PRIVATE (pst)->extern_count; --i >= 0; ext_ptr++)
|
||||
parse_external (ext_ptr, fh->fBigendian,
|
||||
pst->section_offsets, objfile);
|
||||
section_offsets, objfile);
|
||||
|
||||
/* If there are undefined symbols, tell the user.
|
||||
The alpha has an undefined symbol for every symbol that is
|
||||
@ -4758,7 +4759,6 @@ new_psymtab (char *name, struct objfile *objfile)
|
||||
struct partial_symtab *psymtab;
|
||||
|
||||
psymtab = allocate_psymtab (name, objfile);
|
||||
psymtab->section_offsets = objfile->section_offsets;
|
||||
|
||||
/* Keep a backpointer to the file's symbols. */
|
||||
|
||||
|
@ -98,12 +98,6 @@ struct partial_symtab
|
||||
|
||||
const char *dirname;
|
||||
|
||||
/* Set of relocation offsets to apply to each section.
|
||||
This is typically objfile->section_offsets, but in some cases
|
||||
it's different. See, e.g., elfstab_offset_sections. */
|
||||
|
||||
struct section_offsets *section_offsets;
|
||||
|
||||
/* Range of text addresses covered by this file; texthigh is the
|
||||
beginning of the next section. Do not use if PSYMTABS_ADDRMAP_SUPPORTED
|
||||
is set. */
|
||||
@ -224,7 +218,6 @@ extern void add_psymbol_to_list (const char *, int,
|
||||
extern void init_psymbol_list (struct objfile *, int);
|
||||
|
||||
extern struct partial_symtab *start_psymtab_common (struct objfile *,
|
||||
struct section_offsets *,
|
||||
const char *, CORE_ADDR,
|
||||
struct partial_symbol **,
|
||||
struct partial_symbol **);
|
||||
|
@ -1014,18 +1014,6 @@ dump_psymtab (struct objfile *objfile, struct partial_symtab *psymtab,
|
||||
fprintf_filtered (outfile, ")\n");
|
||||
}
|
||||
|
||||
fprintf_filtered (outfile, " Relocate symbols by ");
|
||||
for (i = 0; i < objfile->num_sections; ++i)
|
||||
{
|
||||
if (i != 0)
|
||||
fprintf_filtered (outfile, ", ");
|
||||
wrap_here (" ");
|
||||
fputs_filtered (paddress (gdbarch,
|
||||
ANOFFSET (psymtab->section_offsets, i)),
|
||||
outfile);
|
||||
}
|
||||
fprintf_filtered (outfile, "\n");
|
||||
|
||||
fprintf_filtered (outfile, " Symbols cover text addresses ");
|
||||
fputs_filtered (paddress (gdbarch, psymtab->textlow), outfile);
|
||||
fprintf_filtered (outfile, "-");
|
||||
@ -1526,7 +1514,6 @@ sort_pst_symbols (struct objfile *objfile, struct partial_symtab *pst)
|
||||
|
||||
struct partial_symtab *
|
||||
start_psymtab_common (struct objfile *objfile,
|
||||
struct section_offsets *section_offsets,
|
||||
const char *filename,
|
||||
CORE_ADDR textlow, struct partial_symbol **global_syms,
|
||||
struct partial_symbol **static_syms)
|
||||
@ -1534,7 +1521,6 @@ start_psymtab_common (struct objfile *objfile,
|
||||
struct partial_symtab *psymtab;
|
||||
|
||||
psymtab = allocate_psymtab (filename, objfile);
|
||||
psymtab->section_offsets = section_offsets;
|
||||
psymtab->textlow = textlow;
|
||||
psymtab->texthigh = psymtab->textlow; /* default */
|
||||
psymtab->globals_offset = global_syms - objfile->global_psymbols.list;
|
||||
|
@ -189,8 +189,6 @@ extern void coffstab_build_psymtabs
|
||||
extern void stabsect_build_psymtabs (struct objfile *objfile, char *stab_name,
|
||||
char *stabstr_name, char *text_name);
|
||||
|
||||
extern void elfstab_offset_sections (struct objfile *,
|
||||
struct partial_symtab *);
|
||||
extern int symbol_reference_defined (char **);
|
||||
|
||||
extern void ref_add (int, struct symbol *, char *, CORE_ADDR);
|
||||
|
@ -2016,7 +2016,7 @@ xcoff_start_psymtab (struct objfile *objfile,
|
||||
struct partial_symbol **static_syms)
|
||||
{
|
||||
struct partial_symtab *result =
|
||||
start_psymtab_common (objfile, objfile->section_offsets,
|
||||
start_psymtab_common (objfile,
|
||||
filename,
|
||||
/* We fill in textlow later. */
|
||||
0,
|
||||
@ -2079,7 +2079,6 @@ xcoff_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
|
||||
struct partial_symtab *subpst =
|
||||
allocate_psymtab (include_list[i], objfile);
|
||||
|
||||
subpst->section_offsets = pst->section_offsets;
|
||||
subpst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct symloc));
|
||||
((struct symloc *) subpst->read_symtab_private)->first_symnum = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user