aboutsummaryrefslogtreecommitdiff
path: root/gold/layout.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-04-24 15:44:02 +0000
committerIan Lance Taylor <ian@airs.com>2009-04-24 15:44:02 +0000
commit3ce2c28e3f647d0771a197b76477ddc8cbb611b2 (patch)
tree14d493e1d69102339db0ded1b5e365584dd79986 /gold/layout.h
parentf50230ae440d80638167b5520afbe4dc6480df4f (diff)
downloadgdb-3ce2c28e3f647d0771a197b76477ddc8cbb611b2.zip
gdb-3ce2c28e3f647d0771a197b76477ddc8cbb611b2.tar.gz
gdb-3ce2c28e3f647d0771a197b76477ddc8cbb611b2.tar.bz2
* incremental.cc (Incremental_inputs_header_data): Renamed from
Incremental_input_header_data. (Incremental_inputs_header_data::data_size): New field. (Incremental_inputs_header_data::put_input_file_count): Renamed from input_file_count. (Incremental_inputs_header_data::put_command_line_offset): Renamed from command_line_offset. (Incremental_inputs_header_data::put_reserved): Renamed from put_reserved. (Incremental_inputs_entry_data): Renamed from Incremental_input_entry_data. (Incremental_inputs_entry_data::data_size): New field. (Incremental_inputs::report_command_line): New method. (Incremental_inputs::finalize): New method. (Incremental_inputs::create_incremental_inputs_data): New method. (Incremental_inputs::sized_create_incremental_inputs_data): New method. * incremental.h: New file. * layout.cc (Layout::Layout): Handle new incremental_inputs_. (Layout::finalize): Create incremental inputs section in incremental builds. (Layout::create_incremental_info_sections): New method. * layout.h (Layout::incremental_inputs): New method. (Layout::create_incremental_info_sections): New method. (Layout::incremental_inputs_): New field. * main.cc (main): Notify Incremental_input of the command line.
Diffstat (limited to 'gold/layout.h')
-rw-r--r--gold/layout.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gold/layout.h b/gold/layout.h
index 52be1d4..0a9146b 100644
--- a/gold/layout.h
+++ b/gold/layout.h
@@ -39,6 +39,7 @@ namespace gold
{
class General_options;
+class Incremental_inputs;
class Input_objects;
class Mapfile;
class Symbol_table;
@@ -368,6 +369,12 @@ class Layout
script_options() const
{ return this->script_options_; }
+ // Return the object managing inputs in incremental build. NULL in
+ // non-incremental builds.
+ Incremental_inputs*
+ incremental_inputs()
+ { return this->incremental_inputs_; }
+
// Compute and write out the build ID if needed.
void
write_build_id(Output_file*) const;
@@ -473,6 +480,11 @@ class Layout
void
create_build_id();
+ // Create .gnu_incremental_inputs and .gnu_incremental_strtab sections needed
+ // for the next run of incremental linking to check what has changed.
+ void
+ create_incremental_info_sections();
+
// Find the first read-only PT_LOAD segment, creating one if
// necessary.
Output_segment*
@@ -717,6 +729,9 @@ class Layout
bool any_postprocessing_sections_;
// Whether we have resized the signatures_ hash table.
bool resized_signatures_;
+ // In incremental build, holds information check the inputs and build the
+ // .gnu_incremental_inputs section.
+ Incremental_inputs* incremental_inputs_;
};
// This task handles writing out data in output sections which is not