diff options
-rw-r--r-- | gold/ChangeLog | 8 | ||||
-rw-r--r-- | gold/gold.cc | 3 | ||||
-rw-r--r-- | gold/object.cc | 9 |
3 files changed, 18 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 15b0b0b..5c705bf 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,11 @@ +2011-06-09 Cary Coutant <ccoutant@google.com> + + PR gold/12804 + * gold/gold.cc (queue_initial_tasks): Warn if --incremental is + used with --compress-debug-sections. + * gold/object.cc (Sized_relobj_file::do_layout): Report + uncompressed size of compressed input sections. + 2011-06-08 Cary Coutant <ccoutant@google.com> PR gold/12804 diff --git a/gold/gold.cc b/gold/gold.cc index 95c226c..f68ba3e 100644 --- a/gold/gold.cc +++ b/gold/gold.cc @@ -200,6 +200,9 @@ queue_initial_tasks(const General_options& options, gold_error(_("incremental linking is incompatible with --icf")); if (options.has_plugins()) gold_error(_("incremental linking is incompatible with --plugin")); + if (strcmp(options.compress_debug_sections(), "none") != 0) + gold_error(_("incremental linking is incompatible with " + "--compress-debug-sections")); if (parameters->incremental_update()) { diff --git a/gold/object.cc b/gold/object.cc index b14c85d..b51cbfe 100644 --- a/gold/object.cc +++ b/gold/object.cc @@ -1299,8 +1299,13 @@ Sized_relobj_file<size, big_endian>::do_layout(Symbol_table* symtab, && (shdr.get_sh_type() == elfcpp::SHT_PROGBITS || shdr.get_sh_type() == elfcpp::SHT_NOBITS || shdr.get_sh_type() == elfcpp::SHT_NOTE)) - incremental_inputs->report_input_section(this, i, name, - shdr.get_sh_size()); + { + off_t sh_size = shdr.get_sh_size(); + section_size_type uncompressed_size; + if (this->section_is_compressed(i, &uncompressed_size)) + sh_size = uncompressed_size; + incremental_inputs->report_input_section(this, i, name, sh_size); + } if (discard) { |