When turning is_win_fastlink on or off we would, ideally, just relink the affected binaries. The reality is more complex because many of those binaries are used to generate headers or code, which is itself some extra work. Then, those generated headers and code, despite being unchanged, have updated file dates which forces recompilation.
In the end, when building the 'chrome' target build the settings below I see 27 binaries being relinked and 1322 compilations.
is_debug = false
is_component_build = false
symbol_level = 1
#is_win_fastlink = true
This was tested on Windows but the behavior is probably the same elsewhere.
The most robust fix would be for more generated files, such as gen/mojo/public/tools/bindings/cpp_templates.zip, to be written in such a way that the file data is only changed if the contents change. This is done for some generated files already.
Comment 1 by brucedaw...@chromium.org
, Nov 9 2016