DescriptionRevert of Allow using goma on Windows with symbol_level == 2 (patchset #2 id:20001 of https://codereview.chromium.org/2661023010/ )
Reason for revert:
It broke amd64-generic Trusty informational build at generate_build_files:
ERROR at //build/config/compiler/compiler.gni:115:3: Assertion failed.
assert(is_win_fastlink || !use_goma,
^-----
Goma builds that use symbol_level 2 must use is_win_fastlink.
See //BUILD.gn:11:1: whence it was imported.
import("//build/config/compiler/compiler.gni")
^--------------------------------------------
GN gen failed: 1
step returned non-zero exit code: 1
@@@STEP_FAILURE@@@
See crbug.com/688203 for more info.
Original issue's description:
> Allow using goma on Windows with symbol_level == 2
>
> Traditionally goma for Chrome has been less useful on Windows than on
> other platforms because it was incompatible with full debug information.
> Building with goma requires using /Z7 instead of /Zi, and this causes
> the linker's memory usage and runtime to blow up as all of the debug
> information is merged.
>
> However, /debug:fastlink makes this work. Because it doesn't merge all
> of the debug information it makes goma and /Z7 practical. Full release
> component builds can be done in less than fifteen minutes, with
> incremental builds taking just a few seconds. Without goma a full
> release component build of Chrome can easily take 40+ minutes, even on a
> Z840.
>
> Goma's speedup comes from massively parallelizing the compile phase,
> however even with /debug:fastlink the linking phases are longer with the
> /Z7 switch that is required by goma. A /debug:fastlink of chrome.dll in
> a component build goes from ~32 seconds to ~110 seconds on a Z620 when
> /Z7 (goma) is selected. This penalty will be reduced by VC++ 2017 which
> claims 30% speed improvements on /debug:fastlink.
>
> So, if you frequently need to do full relinks then goma may still be a
> bad choice. However for most scenarios this change should make goma a
> good choice for component builds of Chrome, even with full debug
> information enabled. To make use of this ability you need to explicitly
> specify the switches below - symbol_level will otherwise default to 1
> when use_goma == true.
>
> use_goma = true
> is_win_fastlink = true
> symbol_level = 2
>
> The fastlink PDBs work well for most scenarios but there are a few
> scenarios (rare for most people) where they do not work:
> - Copying PDBs to another machine (fails due to references to the .obj
> files)
> - Reporting on all symbols/globals with SymbolSort or similar fails
> - ETW tracing fails
> - VS heap profiling fails
> Ideally mspdbcmf.exe would let us create "normal" PDBs when needed but
> in practice this appears to be unusable with /Z7 created PDBs.
>
> R=scottmg@chromium.org
>
> Review-Url: https://codereview.chromium.org/2661023010
> Cr-Commit-Position: refs/heads/master@{#447892}
> Committed: https://chromium.googlesource.com/chromium/src/+/4a3cadb2d998fb8f477d0ebc7ff13619b123a805
TBR=scottmg@chromium.org,dpranke@chromium.org,brucedawson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2669373002
Cr-Commit-Position: refs/heads/master@{#447895}
Committed: https://chromium.googlesource.com/chromium/src/+/169e1ad7aeb6cf86dda8912fbf7e2ef3e2321344
Patch Set 1 #
Messages
Total messages: 6 (3 generated)
|