#include "command.h"
#include "target.h"
#include "gdbcore.h" /* for bfd stuff */
-#include "libbfd.h" /* FIXME Secret internal BFD stuff (bfd_read) */
#include "libaout.h" /* FIXME Secret internal BFD stuff for a.out */
#include "symfile.h"
#include "objfiles.h"
{"N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", 0, 0};
struct complaint repeated_header_complaint =
- {"\"repeated\" header file not previously seen, at symtab pos %d", 0, 0};
-
-struct complaint repeated_header_name_complaint =
- {"\"repeated\" header file not previously seen, named %s", 0, 0};
+ {"\"repeated\" header file %s not previously seen, at symtab pos %d", 0, 0};
\f
/* During initial symbol readin, we need to have a structure to keep
track of which psymtabs have which bincls in them. This structure
add_this_object_header_file (i);
return;
}
- complain (&repeated_header_complaint, symnum);
- complain (&repeated_header_name_complaint, name);
+ complain (&repeated_header_complaint, name, symnum);
}
/* Add to this file a "new" header file: definitions for its types follow.
bfd_section_vma (sym_bfd, DBX_TEXT_SECT (objfile)),
bfd_section_size (sym_bfd, DBX_TEXT_SECT (objfile)));
- /* Add the dynamic symbols if we are reading the main symbol table. */
+ /* Add the dynamic symbols. */
- if (mainline)
- read_dbx_dynamic_symtab (section_offsets, objfile);
+ read_dbx_dynamic_symtab (section_offsets, objfile);
/* Install any minimal symbols that have been collected as the current
minimal symbols for this objfile. */
install_minimal_symbols (objfile);
- if (!have_partial_symbols ()) {
- wrap_here ("");
- printf_filtered ("(no debugging symbols found)...");
- wrap_here ("");
- }
-
do_cleanups (back_to);
}
&& STREQ (name, bincl->name))
return bincl->pst;
+ complain (&repeated_header_complaint, name, symnum);
return (struct partial_symtab *) 0;
}
long dynrel_count;
arelent **dynrels;
CORE_ADDR sym_value;
+ char *name;
/* Check that the symbol file has dynamic symbols that we know about.
bfd_arch_unknown can happen if we are reading a sun3 symbol file
if (sym->flags & BSF_GLOBAL)
type |= N_EXT;
- record_minimal_symbol ((char *) bfd_asymbol_name (sym), sym_value,
- type, objfile);
+ name = (char *) bfd_asymbol_name (sym);
+ record_minimal_symbol
+ (obsavestring (name, strlen (name), &objfile -> symbol_obstack),
+ sym_value,
+ type,
+ objfile);
}
}
counter++, relptr++)
{
arelent *rel = *relptr;
- CORE_ADDR address = rel->address;
+ CORE_ADDR address =
+ rel->address + ANOFFSET (section_offsets, SECT_OFF_DATA);
switch (bfd_get_arch (abfd))
{
continue;
}
- prim_record_minimal_symbol (bfd_asymbol_name (*rel->sym_ptr_ptr),
- address,
- mst_solib_trampoline,
- objfile);
+ name = bfd_asymbol_name (*rel->sym_ptr_ptr);
+ prim_record_minimal_symbol
+ (obsavestring (name, strlen (name), &objfile -> symbol_obstack),
+ address,
+ mst_solib_trampoline,
+ objfile);
}
do_cleanups (back_to);