diff options
author | Cary Coutant <ccoutant@google.com> | 2011-05-26 18:44:27 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2011-05-26 18:44:27 +0000 |
commit | 89d8a36b24e188ccbb032c55e302425b94516e74 (patch) | |
tree | d2f12e016f2502c4a2a088ab09891d197565de9b /gold/object.cc | |
parent | d8b344530cba74a754ec101ccdd8869b3a48ec90 (diff) | |
download | gdb-89d8a36b24e188ccbb032c55e302425b94516e74.zip gdb-89d8a36b24e188ccbb032c55e302425b94516e74.tar.gz gdb-89d8a36b24e188ccbb032c55e302425b94516e74.tar.bz2 |
* incremental-dump.cc (dump_incremental_inputs): Print COMDAT groups.
* incremental.cc (Incremental_inputs::report_input_section): Fix
comment, indentation.
(Incremental_inputs::report_comdat_group): New function.
(Output_section_incremental_inputs::set_final_data_size): Adjust size
of data for incremental input file entry.
(Output_section_incremental_inputs::write_info_blocks): Write COMDAT
group count, COMDAT group signatures.
(Sized_incr_relobj::do_layout): Record kept COMDAT group info from
an unchanged input file.
* incremental.h (Incremental_object_entry::Incremental_object_entry):
Initialize new data member.
(Incremental_object_entry::add_comdat_group): New function.
(Incremental_object_entry::get_comdat_group_count): New function.
(Incremental_object_entry::get_comdat_signature_key): New function.
(Incremental_object_entry::groups_): New data member.
(Incremental_inputs::report_comdat_group): New function.
(Incremental_input_entry_reader::get_symbol_offset): Adjust size of
data for incremental input file entry.
(Incremental_input_entry_reader::get_comdat_group_count): New function.
(Incremental_input_entry_reader::get_input_section): Adjust size of
data for incremental input file entry.
(Incremental_input_entry_reader::get_global_symbol_reader): Likewise.
(Incremental_input_entry_reader::get_comdat_group_signature): New
function.
* object.cc (Sized_relobj::include_section_group): Report kept
COMDAT groups for incremental links.
Diffstat (limited to 'gold/object.cc')
-rw-r--r-- | gold/object.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gold/object.cc b/gold/object.cc index 1160f0c..b14c85d 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -825,6 +825,13 @@ Sized_relobj_file<size, big_endian>::include_section_group( is_comdat = true; } + if (is_comdat && include_group) + { + Incremental_inputs* incremental_inputs = layout->incremental_inputs(); + if (incremental_inputs != NULL) + incremental_inputs->report_comdat_group(this, signature.c_str()); + } + size_t count = shdr.get_sh_size() / sizeof(elfcpp::Elf_Word); std::vector<unsigned int> shndxes; |