Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Issue 2702203004: Allow using goma on Windows with symbol_level == 2 (Closed)

Created:
3 years, 10 months ago by brucedawson
Modified:
3 years, 10 months ago
Reviewers:
Dirk Pranke
CC:
chromium-reviews, scottmg
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Allow using goma on Windows with symbol_level == 2 Relanding with fix for amd64-generic Trusty build failure. Previous version was crrev.com/2661023010. 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 In addition, these two settings are strongly recommended if you want the fastest possible builds: is_component_build = true target_cpu="x86" - to ensure incremental linking always works The fastlink PDBs work well for most scenarios but there are a few scenarios 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 windbg's "x" command or similar will report nothing - 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. BUG=630074, 688203 Review-Url: https://codereview.chromium.org/2702203004 Cr-Commit-Position: refs/heads/master@{#452171} Committed: https://chromium.googlesource.com/chromium/src/+/77bdd81b8517ef0166ba14549545fa1f27d9bfec

Patch Set 1 #

Patch Set 2 : Made assert Windows only #

Patch Set 3 : Tweaked comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -1 line) Patch
M build/config/compiler/BUILD.gn View 1 chunk +6 lines, -1 line 0 comments Download
M build/config/compiler/compiler.gni View 1 2 2 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 24 (18 generated)
brucedawson
Hey, I'm back and I thought I'd try this change again. The previous version (crrev.com/2661023010) ...
3 years, 10 months ago (2017-02-22 01:41:22 UTC) #11
Dirk Pranke
lgtm
3 years, 10 months ago (2017-02-22 01:47:57 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2702203004/40001
3 years, 10 months ago (2017-02-22 02:03:25 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) chromeos_amd64-generic_chromium_compile_only_ng on ...
3 years, 10 months ago (2017-02-22 03:43:29 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2702203004/40001
3 years, 10 months ago (2017-02-22 17:43:30 UTC) #21
commit-bot: I haz the power
3 years, 10 months ago (2017-02-22 19:58:11 UTC) #24
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://chromium.googlesource.com/chromium/src/+/77bdd81b8517ef0166ba14549545...

Powered by Google App Engine
This is Rietveld 408576698