• brucedawson's avatar
    Enable incremental linking in release component builds · 7bf1119c
    brucedawson authored
    Component builds are, by definition, not optimized for maximum
    performance. So incremental linking - which trades a little bit of
    performance for much faster build times - is appropriate in release
    component builds, as well as in debug builds.
    
    This change enables incremental linking in release component builds.
    This also requires turning off /OPT:ICF and /PROFILE in component
    builds because they are incompatible with /incremental, but they are
    performance related flags so they are also not important for component
    builds.
    
    blink_core.dll cannot be incrementally linked in debug x64 component
    builds, but it *can* be incrementally linked in release x64 component
    builds (and debug/release x86 component builds), and this change
    enables incremental linking of blink_core.dll in all supported
    configurations.
    
    This drops the chrome rebuild time after touching
    third_party\WebKit\Source\core\html\AutoplayExperimentHelper.cpp from
    ~260 seconds to 9 seconds. The chrome rebuild time after touching
    base\win\registry.cc drops from ~200 seconds to less than 2 seconds,
    with 21 of 24 link steps skipped entirely.
    
    This also fixes some /INCREMENTAL /OPT:ICF mismatch warnings.
    
    BUG=608801,621236
    
    Review-Url: https://codereview.chromium.org/2331373006
    Cr-Commit-Position: refs/heads/master@{#418660}
    7bf1119c
BUILD.gn 12.9 KB