summaryrefslogtreecommitdiffstats
path: root/gold/options.cc
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/options.cc
parentcfc08d490ef2b07c1faaf6ca72ba512dfd764f89 (diff)
downloadppe42-binutils-8c21d9d382512278b484e29aa85053d9378c8b63.tar.gz
ppe42-binutils-8c21d9d382512278b484e29aa85053d9378c8b63.zip
* 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/options.cc')
-rw-r--r--gold/options.cc31
1 files changed, 30 insertions, 1 deletions
diff --git a/gold/options.cc b/gold/options.cc
index 21e3f28c29..6839ba46f8 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -317,6 +317,34 @@ General_options::parse_defsym(const char*, const char* arg,
}
void
+General_options::parse_incremental(const char*, const char*,
+ Command_line*)
+{
+ this->incremental_mode_ = INCREMENTAL_AUTO;
+}
+
+void
+General_options::parse_no_incremental(const char*, const char*,
+ Command_line*)
+{
+ this->incremental_mode_ = INCREMENTAL_OFF;
+}
+
+void
+General_options::parse_incremental_full(const char*, const char*,
+ Command_line*)
+{
+ this->incremental_mode_ = INCREMENTAL_FULL;
+}
+
+void
+General_options::parse_incremental_update(const char*, const char*,
+ Command_line*)
+{
+ this->incremental_mode_ = INCREMENTAL_UPDATE;
+}
+
+void
General_options::parse_incremental_changed(const char*, const char*,
Command_line*)
{
@@ -852,6 +880,7 @@ General_options::General_options()
do_demangle_(false),
plugins_(NULL),
dynamic_list_(),
+ incremental_mode_(INCREMENTAL_OFF),
incremental_disposition_(INCREMENTAL_CHECK),
implicit_incremental_(false),
excluded_libs_(),
@@ -1137,7 +1166,7 @@ General_options::finalize()
"[0.0, 1.0)"),
this->hash_bucket_empty_fraction());
- if (this->implicit_incremental_ && !this->incremental())
+ if (this->implicit_incremental_ && this->incremental_mode_ == INCREMENTAL_OFF)
gold_fatal(_("Options --incremental-changed, --incremental-unchanged, "
"--incremental-unknown require the use of --incremental"));
OpenPOWER on IntegriCloud