aboutsummaryrefslogtreecommitdiff
path: root/gold/parameters.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2010-10-14 22:10:22 +0000
committerCary Coutant <ccoutant@google.com>2010-10-14 22:10:22 +0000
commit8c21d9d382512278b484e29aa85053d9378c8b63 (patch)
tree038ec21bf537ae5a092363241d2347be7091b849 /gold/parameters.h
parentcfc08d490ef2b07c1faaf6ca72ba512dfd764f89 (diff)
downloadfsf-binutils-gdb-8c21d9d382512278b484e29aa85053d9378c8b63.zip
fsf-binutils-gdb-8c21d9d382512278b484e29aa85053d9378c8b63.tar.gz
fsf-binutils-gdb-8c21d9d382512278b484e29aa85053d9378c8b63.tar.bz2
* debug.h (DEBUG_INCREMENTAL): New flag.
(debug_string_to_enum): Add DEBUG_INCREMENTAL). * gold.cc (queue_initial_tasks): Check parameters for incremental link mode. * incremental.cc (report_command_line): Ignore all forms of --incremental. * layout.cc (Layout::Layout): Check parameters for incremental link mode. * options.cc (General_options::parse_incremental): New function. (General_options::parse_no_incremental): New function. (General_options::parse_incremental_full): New function. (General_options::parse_incremental_update): New function. (General_options::incremental_mode_): New data member. (General_options::finalize): Check incremental_mode_. * options.h (General_options): Update help text for --incremental. Add --no-incremental, --incremental-full, --incremental-update. (General_options::Incremental_mode): New enum type. (General_options::incremental_mode): New function. (General_options::incremental_mode_): New data member. * parameters.cc (Parameters::incremental_mode_): New data member. (Parameters::set_options): Set incremental_mode_. (Parameters::set_incremental_full): New function. (Parameters::incremental): New function. (Parameters::incremental_update): New function. (set_parameters_incremental_full): New function. * parameters.h (Parameters::set_incremental_full): New function. (Parameters::incremental): New function. (Parameters::incremental_update): New function. (Parameters::incremental_mode_): New data member. (set_parameters_incremental_full): New function. * plugin.cc (Plugin_manager::add_input_file): Check parameters for incremental link mode. * reloc.cc (Sized_relobj::do_read_relocs): Likewise. (Sized_relobj::do_relocate_sections): Likewise. * testsuite/Makefile.am (incremental_test): Use --incremental-full option. * testsuite/Makefile.in: Regenerate. * testsuite/incremental_test.sh: Filter all forms of --incremental.
Diffstat (limited to 'gold/parameters.h')
-rw-r--r--gold/parameters.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/gold/parameters.h b/gold/parameters.h
index 0ca2941..f9022ae 100644
--- a/gold/parameters.h
+++ b/gold/parameters.h
@@ -144,6 +144,20 @@ class Parameters
Target_size_endianness
size_and_endianness() const;
+ // Set the incremental linking mode to INCREMENTAL_FULL. Used when
+ // the linker determines that an incremental update is not possible.
+ // Returns false if the incremental mode was INCREMENTAL_UPDATE,
+ // indicating that the linker should exit if an update is not possible.
+ bool
+ set_incremental_full();
+
+ // Return true if we need to prepare incremental linking information.
+ bool
+ incremental() const;
+
+ // Return true if we are doing an incremental update.
+ bool
+ incremental_update() const;
private:
void
@@ -160,6 +174,7 @@ class Parameters
bool doing_static_link_valid_;
bool doing_static_link_;
int debug_;
+ int incremental_mode_;
Set_parameters_target_once* set_parameters_target_once_;
};
@@ -181,6 +196,9 @@ set_parameters_target(Target* target);
extern void
set_parameters_doing_static_link(bool doing_static_link);
+extern bool
+set_parameters_incremental_full();
+
// Ensure that the target to be valid by using the default target if
// necessary.