* incremental.cc (Sized_incremental_binary::do_file_has_changed):
Check disposition for startup file. (Incremental_inputs::report_command_line): Ignore --incremental-startup-unchanged option. * options.cc (General_options::parse_incremental_startup_unchanged): New function. (General_options::General_options): Initialize new data member. * options.h (Incremental_disposition): Add INCREMENTAL_STARTUP. (General_options): Add --incremental-startup-unchanged option. (General_options::incremental_startup_disposition): New function. (General_options::incremental_startup_disposition_): New data member.
This commit is contained in:
parent
facde0e593
commit
221597a548
@ -1,3 +1,17 @@
|
|||||||
|
2011-07-06 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
|
* incremental.cc (Sized_incremental_binary::do_file_has_changed):
|
||||||
|
Check disposition for startup file.
|
||||||
|
(Incremental_inputs::report_command_line): Ignore
|
||||||
|
--incremental-startup-unchanged option.
|
||||||
|
* options.cc (General_options::parse_incremental_startup_unchanged):
|
||||||
|
New function.
|
||||||
|
(General_options::General_options): Initialize new data member.
|
||||||
|
* options.h (Incremental_disposition): Add INCREMENTAL_STARTUP.
|
||||||
|
(General_options): Add --incremental-startup-unchanged option.
|
||||||
|
(General_options::incremental_startup_disposition): New function.
|
||||||
|
(General_options::incremental_startup_disposition_): New data member.
|
||||||
|
|
||||||
2011-07-06 Cary Coutant <ccoutant@google.com>
|
2011-07-06 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* incremental.cc (Sized_incremental_binary::setup_readers): Pass
|
* incremental.cc (Sized_incremental_binary::setup_readers): Pass
|
||||||
|
@ -460,6 +460,12 @@ Sized_incremental_binary<size, big_endian>::do_file_has_changed(
|
|||||||
if (input_argument != NULL)
|
if (input_argument != NULL)
|
||||||
disp = input_argument->file().options().incremental_disposition();
|
disp = input_argument->file().options().incremental_disposition();
|
||||||
|
|
||||||
|
// For files at the beginning of the command line (i.e., those added
|
||||||
|
// implicitly by gcc), check whether the --incremental-startup-unchanged
|
||||||
|
// option was used.
|
||||||
|
if (disp == INCREMENTAL_STARTUP)
|
||||||
|
disp = parameters->options().incremental_startup_disposition();
|
||||||
|
|
||||||
if (disp != INCREMENTAL_CHECK)
|
if (disp != INCREMENTAL_CHECK)
|
||||||
return disp == INCREMENTAL_CHANGED;
|
return disp == INCREMENTAL_CHANGED;
|
||||||
|
|
||||||
@ -938,6 +944,7 @@ Incremental_inputs::report_command_line(int argc, const char* const* argv)
|
|||||||
|| strcmp(argv[i], "--incremental-changed") == 0
|
|| strcmp(argv[i], "--incremental-changed") == 0
|
||||||
|| strcmp(argv[i], "--incremental-unchanged") == 0
|
|| strcmp(argv[i], "--incremental-unchanged") == 0
|
||||||
|| strcmp(argv[i], "--incremental-unknown") == 0
|
|| strcmp(argv[i], "--incremental-unknown") == 0
|
||||||
|
|| strcmp(argv[i], "--incremental-startup-unchanged") == 0
|
||||||
|| is_prefix_of("--incremental-base=", argv[i])
|
|| is_prefix_of("--incremental-base=", argv[i])
|
||||||
|| is_prefix_of("--incremental-patch=", argv[i])
|
|| is_prefix_of("--incremental-patch=", argv[i])
|
||||||
|| is_prefix_of("--debug=", argv[i]))
|
|| is_prefix_of("--debug=", argv[i]))
|
||||||
|
@ -397,6 +397,14 @@ General_options::parse_incremental_unknown(const char*, const char*,
|
|||||||
this->incremental_disposition_ = INCREMENTAL_CHECK;
|
this->incremental_disposition_ = INCREMENTAL_CHECK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
General_options::parse_incremental_startup_unchanged(const char*, const char*,
|
||||||
|
Command_line*)
|
||||||
|
{
|
||||||
|
this->implicit_incremental_ = true;
|
||||||
|
this->incremental_startup_disposition_ = INCREMENTAL_UNCHANGED;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
General_options::parse_library(const char*, const char* arg,
|
General_options::parse_library(const char*, const char* arg,
|
||||||
Command_line* cmdline)
|
Command_line* cmdline)
|
||||||
@ -910,7 +918,8 @@ General_options::General_options()
|
|||||||
plugins_(NULL),
|
plugins_(NULL),
|
||||||
dynamic_list_(),
|
dynamic_list_(),
|
||||||
incremental_mode_(INCREMENTAL_OFF),
|
incremental_mode_(INCREMENTAL_OFF),
|
||||||
incremental_disposition_(INCREMENTAL_CHECK),
|
incremental_disposition_(INCREMENTAL_STARTUP),
|
||||||
|
incremental_startup_disposition_(INCREMENTAL_CHECK),
|
||||||
implicit_incremental_(false),
|
implicit_incremental_(false),
|
||||||
excluded_libs_(),
|
excluded_libs_(),
|
||||||
symbols_to_retain_(),
|
symbols_to_retain_(),
|
||||||
|
@ -63,6 +63,11 @@ class Script_info;
|
|||||||
|
|
||||||
enum Incremental_disposition
|
enum Incremental_disposition
|
||||||
{
|
{
|
||||||
|
// Startup files that appear before the first disposition option.
|
||||||
|
// These will default to INCREMENTAL_CHECK unless the
|
||||||
|
// --incremental-startup-unchanged option is given.
|
||||||
|
// (For files added implicitly by gcc before any user options.)
|
||||||
|
INCREMENTAL_STARTUP,
|
||||||
// Determine the status from the timestamp (default).
|
// Determine the status from the timestamp (default).
|
||||||
INCREMENTAL_CHECK,
|
INCREMENTAL_CHECK,
|
||||||
// Assume the file changed from the previous build.
|
// Assume the file changed from the previous build.
|
||||||
@ -822,6 +827,10 @@ class General_options
|
|||||||
DEFINE_special(incremental_unknown, options::TWO_DASHES, '\0',
|
DEFINE_special(incremental_unknown, options::TWO_DASHES, '\0',
|
||||||
N_("Use timestamps to check files (default)"), NULL);
|
N_("Use timestamps to check files (default)"), NULL);
|
||||||
|
|
||||||
|
DEFINE_special(incremental_startup_unchanged, options::TWO_DASHES, '\0',
|
||||||
|
N_("Assume startup files unchanged "
|
||||||
|
"(files preceding this option)"), NULL);
|
||||||
|
|
||||||
DEFINE_percent(incremental_patch, options::TWO_DASHES, '\0', 10,
|
DEFINE_percent(incremental_patch, options::TWO_DASHES, '\0', 10,
|
||||||
N_("Amount of extra space to allocate for patches"),
|
N_("Amount of extra space to allocate for patches"),
|
||||||
N_("PERCENT"));
|
N_("PERCENT"));
|
||||||
@ -1342,6 +1351,12 @@ class General_options
|
|||||||
incremental_disposition() const
|
incremental_disposition() const
|
||||||
{ return this->incremental_disposition_; }
|
{ return this->incremental_disposition_; }
|
||||||
|
|
||||||
|
// The disposition to use for startup files (those that precede the
|
||||||
|
// first --incremental-changed, etc. option).
|
||||||
|
Incremental_disposition
|
||||||
|
incremental_startup_disposition() const
|
||||||
|
{ return this->incremental_startup_disposition_; }
|
||||||
|
|
||||||
// Return true if S is the name of a library excluded from automatic
|
// Return true if S is the name of a library excluded from automatic
|
||||||
// symbol export.
|
// symbol export.
|
||||||
bool
|
bool
|
||||||
@ -1459,9 +1474,12 @@ class General_options
|
|||||||
// --incremental-unchanged or --incremental-unknown option. The
|
// --incremental-unchanged or --incremental-unknown option. The
|
||||||
// value may change as we proceed parsing the command line flags.
|
// value may change as we proceed parsing the command line flags.
|
||||||
Incremental_disposition incremental_disposition_;
|
Incremental_disposition incremental_disposition_;
|
||||||
|
// The disposition to use for startup files (those marked
|
||||||
|
// INCREMENTAL_STARTUP).
|
||||||
|
Incremental_disposition incremental_startup_disposition_;
|
||||||
// Whether we have seen one of the options that require incremental
|
// Whether we have seen one of the options that require incremental
|
||||||
// build (--incremental-changed, --incremental-unchanged or
|
// build (--incremental-changed, --incremental-unchanged,
|
||||||
// --incremental-unknown)
|
// --incremental-unknown, or --incremental-startup-unchanged).
|
||||||
bool implicit_incremental_;
|
bool implicit_incremental_;
|
||||||
// Libraries excluded from automatic export, via --exclude-libs.
|
// Libraries excluded from automatic export, via --exclude-libs.
|
||||||
Unordered_set<std::string> excluded_libs_;
|
Unordered_set<std::string> excluded_libs_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user