diff options
author | Cary Coutant <ccoutant@google.com> | 2013-03-01 23:05:27 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2013-03-01 23:05:27 +0000 |
commit | d5834edbc87adeb263abe8e1df77e87f265b2e2c (patch) | |
tree | 57c60161a1892836d71eee39c5e96c0982d55f04 /gold/dwarf_reader.cc | |
parent | merge from gcc (diff) | |
download | binutils-gdb-d5834edbc87adeb263abe8e1df77e87f265b2e2c.tar.gz binutils-gdb-d5834edbc87adeb263abe8e1df77e87f265b2e2c.tar.bz2 binutils-gdb-d5834edbc87adeb263abe8e1df77e87f265b2e2c.zip |
Add dwp support for v2 DWARF package file format.
gold/
* dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add
tu_length parameter. Adjust all callers.
* dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise.
* dwp.cc: Include dwarf.h.
(Section_bounds): New struct type.
(Unit_set): New struct type.
(Dwo_file::Dwo_file): Initialize new data member.
(Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index):
Combine and rename to...
(Dwo_file::read_unit_index): ...this.
(Dwo_file::sized_read_compunit_index)
(Dwo_file::sized_read_typeunit_index): Combine and rename to...
(Dwo_file::sized_read_unit_index): ...this.
(Dwo_file::copy_section): Remove section_name, is_str_offsets
parameters; add section_id parameter.
(Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to...
(Dwo_file::add_unit_set): ...this.
(Dwo_file::shndx_map_): Remove.
(Dwo_file::sect_offsets_): New data member.
(Dwp_output_file::Dwp_output_file): Initialize new data members.
(Dwp_output_file::add_section): Rename to...
(Dwp_output_file::add_contribution): ...this.
(Dwp_output_file::add_cu_set): Combine parameters into a struct.
(Dwp_output_file::add_tu_set): Likewise.
(Dwp_output_file::Contribution): New type.
(Dwp_output_file::Section::contributions): New data member.
(Dwp_output_file::Cu_or_tu_set): Remove.
(Dwp_output_file::Section::Section): New ctor.
(Dwp_output_file::Dwp_index::Shndx_pool): Remove.
(Dwp_output_file::Dwp_index::Section_table): New type.
(Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members.
(Dwp_output_file::Dwp_index::enter_set): Change type of "set"
parameter.
(Dwp_output_file::Dwp_index::shndx_pool): Remove.
(Dwp_output_file::Dwp_index::shndx_pool_end): Remove.
(Dwp_output_file::Dwp_index::section_table): New member function.
(Dwp_output_file::Dwp_index::section_table_end): New member function.
(Dwp_output_file::Dwp_index::shndx_pool_size): Remove.
(Dwp_output_file::Dwp_index::section_table_rows): New member function.
(Dwp_output_file::Dwp_index::section_table_cols): New member function.
(Dwp_output_file::Dwp_index::shndx_pool_): Remove.
(Dwp_output_file::Dwp_index::section_table_): New data member.
(Dwp_output_file::Dwp_index::section_mask_): New data member.
(Dwp_output_file::add_output_section): New member function.
(Dwp_output_file::write_new_section): New member function.
(Dwp_output_file::write_contributions): New member function.
(Dwp_output_file::section_id_map_): New data member.
(class Dwo_id_info_reader): Remove.
(class Unit_reader): New class.
(get_dwarf_section_name): New function.
(Dwo_file::read_executable): Adjust initializations of class data.
(Dwo_file::read): Add support for v2 package file format.
(Dwo_file::read_unit_index): Likewise.
(Dwo_file::sized_read_unit_index): Likewise.
(Dwo_file::copy_section): Likewise.
(Dwo_file::add_unit_set): Likewise.
(Dwp_output_file::add_output_section): Likewise.
(Dwp_output_file::add_contribution): Likewise.
(Dwp_output_file::Dwp_index::find_or_add): Use row index to check
for empty slot.
(Dwp_output_file::Dwp_index::enter_set): Add support for v2 package
file format.
(Dwp_output_file::Dwp_index::grow): Use row index to check for empty
slot.
(Dwp_output_file::initialize): Remove unused function.
(Dwp_output_file::finalize): Add support for v2 package file format.
(Dwp_output_file::write_index): Likewise.
* gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust
function prototype.
Diffstat (limited to 'gold/dwarf_reader.cc')
-rw-r--r-- | gold/dwarf_reader.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc index de4141827cf..6b01b7fc95a 100644 --- a/gold/dwarf_reader.cc +++ b/gold/dwarf_reader.cc @@ -1285,7 +1285,8 @@ Dwarf_info_reader::do_parse() // Visit the CU or TU. if (this->is_type_unit_) this->visit_type_unit(section_offset + this->cu_offset_, - type_offset, signature, &root_die); + cu_end - cu_start, type_offset, signature, + &root_die); else this->visit_compilation_unit(section_offset + this->cu_offset_, cu_end - cu_start, &root_die); @@ -1428,7 +1429,7 @@ Dwarf_info_reader::visit_compilation_unit(off_t, off_t, Dwarf_die*) // Process a type unit and parse its child DIE. void -Dwarf_info_reader::visit_type_unit(off_t, off_t, uint64_t, Dwarf_die*) +Dwarf_info_reader::visit_type_unit(off_t, off_t, off_t, uint64_t, Dwarf_die*) { } |