/* Read a symbol table in MIPS' format (Third-Eye).
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
- 1998, 1999, 2000, 2001
+ 1998, 1999, 2000, 2001, 2003, 2004
Free Software Foundation, Inc.
Contributed by Alessandro Forin (af@cs.cmu.edu) at CMU. Major work
by Per Bothner, John Gilmore and Ian Lance Taylor at Cygnus Support.
#include "gdb_string.h"
#include "bfd.h"
#include "symtab.h"
-#include "symfile.h"
#include "objfiles.h"
#include "buildsym.h"
#include "stabsread.h"
-#include "gdb-stabs.h"
#include "coff/sym.h"
#include "coff/internal.h"
symbol file is specified (not just adding some symbols from another
file, e.g. a shared library). */
-extern CORE_ADDR sigtramp_address;
-
static void
mipscoff_new_init (struct objfile *ignore)
{
- sigtramp_address = 0;
stabsread_new_init ();
buildsym_new_init ();
}
minimal symbols for this objfile. */
install_minimal_symbols (objfile);
-
- /* If the entry_file bounds are still unknown after processing the
- partial symbols, then try to set them from the minimal symbols
- surrounding the entry_point. */
-
- if (mainline
- && objfile->ei.entry_point != INVALID_ENTRY_POINT
- && objfile->ei.entry_file_lowpc == INVALID_ENTRY_LOWPC)
- {
- struct minimal_symbol *m;
-
- m = lookup_minimal_symbol_by_pc (objfile->ei.entry_point);
- if (m && SYMBOL_NAME (m + 1))
- {
- objfile->ei.entry_file_lowpc = SYMBOL_VALUE_ADDRESS (m);
- objfile->ei.entry_file_highpc = SYMBOL_VALUE_ADDRESS (m + 1);
- }
- }
-
do_cleanups (back_to);
}
asection *got_sect; /* Section pointer for .got section */
};
-static void alphacoff_locate_sections (bfd *, asection *, void *);
-
/* We are called once per section from read_alphacoff_dynamic_symtab.
We need to examine each section we are passed, check to see
if it is something we are interested in processing, and
if so, stash away some access information for the section. */
static void
-alphacoff_locate_sections (bfd *ignore_abfd, asection *sectp, PTR sip)
+alphacoff_locate_sections (bfd *ignore_abfd, asection *sectp, void *sip)
{
- register struct alphacoff_dynsecinfo *si;
+ struct alphacoff_dynsecinfo *si;
si = (struct alphacoff_dynsecinfo *) sip;
- if (STREQ (sectp->name, ".dynsym"))
+ if (DEPRECATED_STREQ (sectp->name, ".dynsym"))
{
si->sym_sect = sectp;
}
- else if (STREQ (sectp->name, ".dynstr"))
+ else if (DEPRECATED_STREQ (sectp->name, ".dynstr"))
{
si->str_sect = sectp;
}
- else if (STREQ (sectp->name, ".dynamic"))
+ else if (DEPRECATED_STREQ (sectp->name, ".dynamic"))
{
si->dyninfo_sect = sectp;
}
- else if (STREQ (sectp->name, ".got"))
+ else if (DEPRECATED_STREQ (sectp->name, ".got"))
{
si->got_sect = sectp;
}
/* Locate the dynamic symbols sections and read them in. */
memset ((char *) &si, 0, sizeof (si));
- bfd_map_over_sections (abfd, alphacoff_locate_sections, (PTR) & si);
+ bfd_map_over_sections (abfd, alphacoff_locate_sections, (void *) & si);
if (si.sym_sect == NULL
|| si.str_sect == NULL
|| si.dyninfo_sect == NULL
|| si.got_sect == NULL)
return;
- sym_secsize = bfd_get_section_size_before_reloc (si.sym_sect);
- str_secsize = bfd_get_section_size_before_reloc (si.str_sect);
- dyninfo_secsize = bfd_get_section_size_before_reloc (si.dyninfo_sect);
- got_secsize = bfd_get_section_size_before_reloc (si.got_sect);
+ sym_secsize = bfd_get_section_size (si.sym_sect);
+ str_secsize = bfd_get_section_size (si.str_sect);
+ dyninfo_secsize = bfd_get_section_size (si.dyninfo_sect);
+ got_secsize = bfd_get_section_size (si.got_sect);
sym_secptr = xmalloc (sym_secsize);
cleanups = make_cleanup (free, sym_secptr);
str_secptr = xmalloc (str_secsize);