This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 4/4] [gold] Add dwp support for DWARF package file format version 2


This patch adds dwp support for version 2 of the proposed DWARF
package file format, documented here:

   http://gcc.gnu.org/wiki/DebugFissionDWP

Because dwp is not intended to consume .dwp files that were produced by
an earlier version, I've removed all support for version 1 of the format,
which was purely experimental. The only .dwp files that dwp should be
asked to read will have been created by the same version of the tool
as part of an intermediate build.

Tested on x86_64 with GCC 4.7 -gsplit-dwarf. OK to commit?

-cary

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]