aboutsummaryrefslogtreecommitdiff
path: root/gold/output.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2011-07-06 21:19:32 +0000
committerCary Coutant <ccoutant@google.com>2011-07-06 21:19:32 +0000
commit9fbd3822ad34dced1ec88410f3f1b447d30e6435 (patch)
tree095ca61510e2bbeca8a22eb82909691b0d945da1 /gold/output.h
parent438640d1120a37fb0309164e84c82e01fe98c5a9 (diff)
downloadgdb-9fbd3822ad34dced1ec88410f3f1b447d30e6435.zip
gdb-9fbd3822ad34dced1ec88410f3f1b447d30e6435.tar.gz
gdb-9fbd3822ad34dced1ec88410f3f1b447d30e6435.tar.bz2
* incremental.cc (Incremental_inputs::report_command_line): Ignore
--incremental-patch option. * layout.cc (Free_list::allocate): Extend allocation beyond original end if enabled. (Layout::make_output_section): Mark sections that should get patch space. * options.cc (parse_percent): New function. * options.h (parse_percent): New function. (DEFINE_percent): New macro. (General_options): Add --incremental-patch option. * output.cc (Output_section::Output_section): Initialize new data members. (Output_section::add_input_section): Print section name when out of patch space. (Output_section::add_output_section_data): Likewise. (Output_section::set_final_data_size): Add patch space when doing --incremental-full. (Output_section::do_reset_address_and_file_offset): Remove patch space. (Output_segment::set_section_list_addresses): Print debug output only if --incremental-update. * output.h (Output_section::set_is_patch_space_allowed): New function. (Output_section::is_patch_space_allowed_): New data member. (Output_section::patch_space_): New data member. * parameters.cc (Parameters::incremental_full): New function. * parameters.h (Parameters::incremental_full): New function * testsuite/Makefile.am (incremental_test_2): Add test for --incremental-patch option. * testsuite/Makefile.in: Regenerate. * testsuite/two_file_test_1_v1.cc (t1, t2, t3): Add comments. (t18): Remove function body.
Diffstat (limited to 'gold/output.h')
-rw-r--r--gold/output.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gold/output.h b/gold/output.h
index 72d1dba..7fb87de 100644
--- a/gold/output.h
+++ b/gold/output.h
@@ -3427,6 +3427,12 @@ class Output_section : public Output_data
has_fixed_layout() const
{ return this->has_fixed_layout_; }
+ // Set flag to allow patch space for this section. Used for full
+ // incremental links.
+ void
+ set_is_patch_space_allowed()
+ { this->is_patch_space_allowed_ = true; }
+
// Reserve space within the fixed layout for the section. Used for
// incremental update links.
void
@@ -3890,6 +3896,8 @@ class Output_section : public Output_data
bool always_keeps_input_sections_ : 1;
// Whether this section has a fixed layout, for incremental update links.
bool has_fixed_layout_ : 1;
+ // True if we can add patch space to this section.
+ bool is_patch_space_allowed_ : 1;
// For SHT_TLS sections, the offset of this section relative to the base
// of the TLS segment.
uint64_t tls_offset_;
@@ -3900,6 +3908,8 @@ class Output_section : public Output_data
// List of available regions within the section, for incremental
// update links.
Free_list free_list_;
+ // Amount added as patch space for incremental linking.
+ off_t patch_space_;
};
// An output segment. PT_LOAD segments are built from collections of