* dwarf2read.c: Revert Andrew Cagney's change of Dec 15, 1997.
Don't include "bfd-elf.h". (address_significant_size): Delete variable. (dwarf2_build_psymtabs_hard): Don't set it, or check for consistency between it and the Dwarf 2 compilation unit header address size. (read_address): Don't mask off bits above address_significant_size. * Makefile.in (dwarf2read.o): Don't depend on $(elf_bfd_h). (elf_bfd_h): Remove variable; it's no longer used.
This commit is contained in:
parent
faaafcb468
commit
64367e0abc
3 changed files with 16 additions and 33 deletions
|
@ -1,3 +1,16 @@
|
|||
2000-04-08 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* dwarf2read.c: Revert Andrew Cagney's change of Dec 15, 1997.
|
||||
Don't include "bfd-elf.h".
|
||||
(address_significant_size): Delete variable.
|
||||
(dwarf2_build_psymtabs_hard): Don't set it, or check for
|
||||
consistency between it and the Dwarf 2 compilation unit header
|
||||
address size.
|
||||
(read_address): Don't mask off bits above
|
||||
address_significant_size.
|
||||
* Makefile.in (dwarf2read.o): Don't depend on $(elf_bfd_h).
|
||||
(elf_bfd_h): Remove variable; it's no longer used.
|
||||
|
||||
2000-04-08 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||
|
||||
* configure.in (NEW_PROC_API): Escape square brackets when testing
|
||||
|
|
|
@ -500,7 +500,6 @@ LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c
|
|||
getopt_h = $(INCLUDE_DIR)/getopt.h
|
||||
floatformat_h = $(INCLUDE_DIR)/floatformat.h
|
||||
bfd_h = $(BFD_DIR)/bfd.h
|
||||
elf_bfd_h = $(BFD_SRC)/elf-bfd.h
|
||||
dis-asm_h = $(INCLUDE_DIR)/dis-asm.h
|
||||
remote-sim_h = $(INCLUDE_DIR)/remote-sim.h
|
||||
|
||||
|
@ -1243,7 +1242,7 @@ dwarfread.o: dwarfread.c $(bfd_h) buildsym.h complaints.h $(defs_h) \
|
|||
$(expression_h) $(gdbtypes_h) language.h objfiles.h symfile.h \
|
||||
$(symtab_h) gdb_string.h
|
||||
|
||||
dwarf2read.o: dwarf2read.c $(bfd_h) $(elf_bfd_h) buildsym.h $(defs_h) \
|
||||
dwarf2read.o: dwarf2read.c $(bfd_h) buildsym.h $(defs_h) \
|
||||
$(expression_h) $(gdbtypes_h) language.h objfiles.h symfile.h \
|
||||
$(symtab_h) gdb_string.h
|
||||
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
#include "defs.h"
|
||||
#include "bfd.h"
|
||||
#include "elf-bfd.h"
|
||||
#include "symtab.h"
|
||||
#include "gdbtypes.h"
|
||||
#include "symfile.h"
|
||||
|
@ -546,15 +545,6 @@ static struct complaint dwarf2_unsupported_const_value_attr =
|
|||
whatever scope is currently getting read. */
|
||||
static int address_size;
|
||||
|
||||
/* Some elf32 object file formats while linked for a 32 bit address
|
||||
space contain debug information that has assumed 64 bit
|
||||
addresses. Eg 64 bit MIPS target produced by GCC/GAS/LD where the
|
||||
symbol table contains 32bit address values while its .debug_info
|
||||
section contains 64 bit address values.
|
||||
ADDRESS_SIGNIFICANT_SIZE specifies the number significant bits in
|
||||
the ADDRESS_SIZE bytes read from the file */
|
||||
static int address_significant_size;
|
||||
|
||||
/* Externals references. */
|
||||
extern int info_verbose; /* From main.c; nonzero => verbose */
|
||||
|
||||
|
@ -937,9 +927,6 @@ dwarf2_build_psymtabs_hard (objfile, mainline)
|
|||
int comp_unit_has_pc_info;
|
||||
CORE_ADDR lowpc, highpc;
|
||||
|
||||
/* Number of bytes of any addresses that are signficant */
|
||||
address_significant_size = get_elf_backend_data (abfd)->s->arch_size / 8;
|
||||
|
||||
info_ptr = dwarf_info_buffer;
|
||||
abbrev_ptr = dwarf_abbrev_buffer;
|
||||
|
||||
|
@ -980,13 +967,6 @@ dwarf2_build_psymtabs_hard (objfile, mainline)
|
|||
(long) (beg_of_comp_unit - dwarf_info_buffer));
|
||||
return;
|
||||
}
|
||||
if (address_size < address_significant_size)
|
||||
{
|
||||
error ("Dwarf Error: bad address size (%ld) in compilation unit header (offset 0x%lx + 11).",
|
||||
(long) cu_header.addr_size,
|
||||
(long) (beg_of_comp_unit - dwarf_info_buffer));
|
||||
}
|
||||
|
||||
/* Read the abbrevs for this compilation unit into a table */
|
||||
dwarf2_read_abbrevs (abfd, cu_header.abbrev_offset);
|
||||
make_cleanup (dwarf2_empty_abbrev_table, NULL);
|
||||
|
@ -3500,16 +3480,7 @@ read_address (abfd, buf)
|
|||
/* *THE* alternative is 8, right? */
|
||||
abort ();
|
||||
}
|
||||
/* If the address being read is larger than the address that is
|
||||
applicable for the object file format then mask it down to the
|
||||
correct size. Take care to avoid unnecessary shift or shift
|
||||
overflow */
|
||||
if (address_size > address_significant_size
|
||||
&& address_significant_size < sizeof (CORE_ADDR))
|
||||
{
|
||||
CORE_ADDR mask = ((CORE_ADDR) 0) - 1;
|
||||
retval &= ~(mask << (address_significant_size * 8));
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue