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.h | |
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.h')
-rw-r--r-- | gold/options.h | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/gold/options.h b/gold/options.h index 59e2267..7a694a9 100644 --- a/gold/options.h +++ b/gold/options.h @@ -770,9 +770,20 @@ class General_options DEFINE_string(dynamic_linker, options::TWO_DASHES, 'I', NULL, N_("Set dynamic linker path"), N_("PROGRAM")); - DEFINE_bool(incremental, options::TWO_DASHES, '\0', false, - N_("Work in progress; do not use"), - N_("Do a full build")); + DEFINE_special(incremental, options::TWO_DASHES, '\0', + N_("Do an incremental link if possible; " + "otherwise, do a full link and prepare output " + "for incremental linking"), NULL); + + DEFINE_special(no_incremental, options::TWO_DASHES, '\0', + N_("Do a full link (default)"), NULL); + + DEFINE_special(incremental_full, options::TWO_DASHES, '\0', + N_("Do a full link and " + "prepare output for incremental linking"), NULL); + + DEFINE_special(incremental_update, options::TWO_DASHES, '\0', + N_("Do an incremental link; exit if not possible"), NULL); DEFINE_special(incremental_changed, options::TWO_DASHES, '\0', N_("Assume files changed"), NULL); @@ -1263,6 +1274,25 @@ class General_options finalize_dynamic_list() { this->dynamic_list_.version_script_info()->finalize(); } + // The mode selected by the --incremental options. + enum Incremental_mode + { + // No incremental linking (--no-incremental). + INCREMENTAL_OFF, + // Incremental update only (--incremental-update). + INCREMENTAL_UPDATE, + // Force a full link, but prepare for subsequent incremental link + // (--incremental-full). + INCREMENTAL_FULL, + // Incremental update if possible, fallback to full link (--incremental). + INCREMENTAL_AUTO + }; + + // The incremental linking mode. + Incremental_mode + incremental_mode() const + { return this->incremental_mode_; } + // The disposition given by the --incremental-changed, // --incremental-unchanged or --incremental-unknown option. The // value may change as we proceed parsing the command line flags. @@ -1381,6 +1411,8 @@ class General_options // script.cc, we store this as a Script_options object, even though // we only use a single Version_tree from it. Script_options dynamic_list_; + // The incremental linking mode. + Incremental_mode incremental_mode_; // The disposition given by the --incremental-changed, // --incremental-unchanged or --incremental-unknown option. The // value may change as we proceed parsing the command line flags. |