/* Read ELF (Executable and Linking Format) object files for GDB.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002
- Free Software Foundation, Inc.
+
+ Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
Written by Fred Fish at Cygnus Support.
This file is part of GDB.
asection *mdebugsect; /* Section pointer for .mdebug section */
};
-/* Various things we might complain about... */
-
-struct deprecated_complaint section_info_complaint =
-{"elf/stab section information %s without a preceding file symbol", 0, 0};
-
-struct deprecated_complaint section_info_dup_complaint =
-{"duplicated elf/stab section information for %s", 0, 0};
-
-struct deprecated_complaint stab_info_mismatch_complaint =
-{"elf/stab section information missing for %s", 0, 0};
-
-struct deprecated_complaint stab_info_questionable_complaint =
-{"elf/stab section information questionable for %s", 0, 0};
-
static void free_elfinfo (void *);
/* We are called once per section from elf_symfile_read. We
/* Looks like a compiler-generated label. Skip
it. The assembler should be skipping these (to
keep executables small), but apparently with
- gcc on the (OBSOLETE) delta m88k SVR4, it
- loses. So to have us check too should be
- harmless (but I encourage people to fix this in
- the assembler instead of adding checks here). */
+ gcc on the (deleted) delta m88k SVR4, it loses.
+ So to have us check too should be harmless (but
+ I encourage people to fix this in the assembler
+ instead of adding checks here). */
continue;
else
{
sizeof (*sectinfo));
if (filesym == NULL)
{
- complain (§ion_info_complaint,
- sym->name);
+ complaint (&symfile_complaints,
+ "elf/stab section information %s without a preceding file symbol",
+ sym->name);
}
else
{
{
if (sectinfo->sections[index] != 0)
{
- complain (§ion_info_dup_complaint,
- sectinfo->filename);
+ complaint (&symfile_complaints,
+ "duplicated elf/stab section information for %s",
+ sectinfo->filename);
}
}
else
elf_symtab_read (objfile, 1);
+ /* Install any minimal symbols that have been collected as the current
+ minimal symbols for this objfile. The debug readers below this point
+ should not generate new minimal symbols; if they do it's their
+ responsibility to install them. "mdebug" appears to be the only one
+ which will do this. */
+
+ install_minimal_symbols (objfile);
+ do_cleanups (back_to);
+
/* Now process debugging information, which is contained in
special ELF sections. */
if (str_sect)
elfstab_build_psymtabs (objfile,
mainline,
- ei.stabsect->filepos,
- bfd_section_size (abfd, ei.stabsect),
+ ei.stabsect,
str_sect->filepos,
bfd_section_size (abfd, str_sect));
}
if (DWARF2_BUILD_FRAME_INFO_P ())
DWARF2_BUILD_FRAME_INFO(objfile);
-
- /* Install any minimal symbols that have been collected as the current
- minimal symbols for this objfile. */
-
- install_minimal_symbols (objfile);
-
- do_cleanups (back_to);
}
/* This cleans up the objfile's sym_stab_info pointer, and the chain of
if (maybe == 0 && questionable != 0)
{
- complain (&stab_info_questionable_complaint, filename);
+ complaint (&symfile_complaints,
+ "elf/stab section information questionable for %s", filename);
maybe = questionable;
}
/* We were unable to find any offsets for this file. Complain. */
if (dbx->stab_section_info) /* If there *is* any info, */
- complain (&stab_info_mismatch_complaint, filename);
+ complaint (&symfile_complaints,
+ "elf/stab section information missing for %s", filename);
}
\f
/* Register that we are able to handle ELF object file formats. */