aboutsummaryrefslogtreecommitdiff
path: root/gold/incremental.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2011-07-06 22:15:12 +0000
committerCary Coutant <ccoutant@google.com>2011-07-06 22:15:12 +0000
commit221597a548c93ec0cd0de1f90f206ae04be7f83d (patch)
treedec23f370ddddf9004c8f66ed19ff803cabdc73f /gold/incremental.cc
parentfacde0e593ae909c801e03cada83c05bec89aad5 (diff)
downloadfsf-binutils-gdb-221597a548c93ec0cd0de1f90f206ae04be7f83d.zip
fsf-binutils-gdb-221597a548c93ec0cd0de1f90f206ae04be7f83d.tar.gz
fsf-binutils-gdb-221597a548c93ec0cd0de1f90f206ae04be7f83d.tar.bz2
* 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.
Diffstat (limited to 'gold/incremental.cc')
-rw-r--r--gold/incremental.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/gold/incremental.cc b/gold/incremental.cc
index 0988ed4..710effc 100644
--- a/gold/incremental.cc
+++ b/gold/incremental.cc
@@ -460,6 +460,12 @@ Sized_incremental_binary<size, big_endian>::do_file_has_changed(
if (input_argument != NULL)
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)
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-unchanged") == 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-patch=", argv[i])
|| is_prefix_of("--debug=", argv[i]))