diff options
author | Cary Coutant <ccoutant@google.com> | 2010-10-14 22:10:22 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2010-10-14 22:10:22 +0000 |
commit | 8c21d9d382512278b484e29aa85053d9378c8b63 (patch) | |
tree | 038ec21bf537ae5a092363241d2347be7091b849 /gold/options.cc | |
parent | cfc08d490ef2b07c1faaf6ca72ba512dfd764f89 (diff) | |
download | gdb-8c21d9d382512278b484e29aa85053d9378c8b63.zip gdb-8c21d9d382512278b484e29aa85053d9378c8b63.tar.gz 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/options.cc')
-rw-r--r-- | gold/options.cc | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/gold/options.cc b/gold/options.cc index 21e3f28..6839ba4 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")); |