aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2013-07-01 20:12:11 +0000
committerCary Coutant <ccoutant@google.com>2013-07-01 20:12:11 +0000
commit267257d249baacd6ca4452a02abcbc0ca62e4ba6 (patch)
tree3556c13f7ffe4a7780c2372fcedb2f7766af6bd1 /gold/dwarf_reader.h
parentchange gdb to use BFD's "dwz" functions (diff)
downloadbinutils-gdb-267257d249baacd6ca4452a02abcbc0ca62e4ba6.tar.gz
binutils-gdb-267257d249baacd6ca4452a02abcbc0ca62e4ba6.tar.bz2
binutils-gdb-267257d249baacd6ca4452a02abcbc0ca62e4ba6.zip
gold/
* dwarf_reader.cc (Dwarf_ranges_table::read_ranges_table): Save reloc_type_. (Dwarf_ranges_table::read_range_list): Call lookup_reloc. (Dwarf_ranges_table::lookup_reloc): New function. * dwarf_reader.h (Dwarf_ranges_table::Dwarf_ranges_table): Initialize reloc_type_. (Dwarf_ranges_table::lookup_reloc): New function. (Dwarf_ranges_table::reloc_type_): New data member.
Diffstat (limited to 'gold/dwarf_reader.h')
-rw-r--r--gold/dwarf_reader.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/gold/dwarf_reader.h b/gold/dwarf_reader.h
index 13d278a8e24..9ee483c35c1 100644
--- a/gold/dwarf_reader.h
+++ b/gold/dwarf_reader.h
@@ -338,7 +338,7 @@ class Dwarf_ranges_table
Dwarf_ranges_table(Dwarf_info_reader* dwinfo)
: dwinfo_(dwinfo), ranges_shndx_(0), ranges_buffer_(NULL),
ranges_buffer_end_(NULL), owns_ranges_buffer_(false),
- ranges_reloc_mapper_(NULL), output_section_offset_(0)
+ ranges_reloc_mapper_(NULL), reloc_type_(0), output_section_offset_(0)
{ }
~Dwarf_ranges_table()
@@ -365,6 +365,11 @@ class Dwarf_ranges_table
unsigned int ranges_shndx,
off_t ranges_offset);
+ // Look for a relocation at offset OFF in the range table,
+ // and return the section index and offset of the target.
+ unsigned int
+ lookup_reloc(off_t off, off_t* target_off);
+
private:
// The Dwarf_info_reader, for reading data.
Dwarf_info_reader* dwinfo_;
@@ -377,6 +382,8 @@ class Dwarf_ranges_table
bool owns_ranges_buffer_;
// Relocation mapper for the .debug_ranges section.
Elf_reloc_mapper* ranges_reloc_mapper_;
+ // Type of the relocation section (SHT_REL or SHT_RELA).
+ unsigned int reloc_type_;
// For incremental update links, this will hold the offset of the
// input section within the output section. Offsets read from
// relocated data will be relative to the output section, and need