|
|
Chromium Code Reviews|
Created:
3 years, 9 months ago by brucedawson Modified:
3 years, 9 months ago Reviewers:
brettw CC:
chromium-reviews Target Ref:
refs/heads/master Project:
chromium Visibility:
Public. |
DescriptionSplit browser.lib to avoid hitting 4 GB limit
In some build configurations on Windows (official build, goma with
symbol_level = 2) browser.lib can grow to about 4 GB which leads to
cryptic build failures. Rather than trying to carefully calculate which
configurations need to split browser.lib it is simpler to just always
split it on Windows. There is no real 'cost' for doing this other than
some potential confusion when developers look at the build internals.
Instead of building obj\chrome\browser\browser.lib the files built will
be obj\chrome\browser\browser_?.lib where '?' is 0-4.
BUG=701862
Review-Url: https://codereview.chromium.org/2767693002
Cr-Commit-Position: refs/heads/master@{#458961}
Committed: https://chromium.googlesource.com/chromium/src/+/69ae14a2e56b0ee3642bd5961fe76704848f68e3
Patch Set 1 #Patch Set 2 : Split browser.lib always on Windows #Messages
Total messages: 20 (14 generated)
brucedawson@chromium.org changed reviewers: + brettw@chromium.org
I wanted your thoughts on this. The problem is that browser.lib grows to ~4 GB when doing goma builds with symbol_level == 2 because this requires putting debug information in the .obj files (/Z7) which bloats them considerably. Getting the exact right conditions is tricky so I'm tempted to just split browser.lib always on Windows, because I'm not aware of any reason not to. Thoughts?
The CQ bit was checked by brucedawson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
I think the main reason not to split it is just when people are debugging commands on disk. I'm thinking splitting on Windows all the time might be the most clear rather than trying to track some complicated conditions. LGTM
The CQ bit was checked by brucedawson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Split browser.lib when using goma to avoid hitting 4 GB limit Maybe do this on all debug builds? Or always? Could also use a source_set on debug builds, but that seems more likely to cause issues by having debug/release builds too different. BUG=701862 ========== to ========== Split browser.lib to avoid hitting 4 GB limit In some build configurations on Windows (official build, goma with symbol_level = 2) browser.lib can grow to about 4 GB which leads to cryptic build failures. Rather than trying to carefully calculate which configurations need to split browser.lib it is simpler to just always split it on Windows. There is no real 'cost' for doing this other than some potential confusion when developers look at the build internals. Instead of building obj\chrome\browser\browser.lib the files built will be obj\chrome\browser\browser_?.lib where '?' is 0-4. BUG=701862 ==========
Yep, I agree. I updated the CL and finalized the description. I'm also going to file a feature request with Microsoft for an indirect-library which would be a .lib file which just contained links to the .obj files. That would preserve the sometimes desirable behavior of .lib files (only pulling in .obj files as needed) while avoiding the waste of copying ~4 GB of data to a .lib file.
I filed this bug to request an alternative to creating these huge .lib files. Maybe, some day, ... https://developercommunity.visualstudio.com/content/problem/34370/vs-linker-n...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by brucedawson@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from brettw@chromium.org Link to the patchset: https://codereview.chromium.org/2767693002/#ps20001 (title: "Split browser.lib always on Windows")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 20001, "attempt_start_ts": 1490229989633120,
"parent_rev": "f59872240739c45017e90aa1be20548177d6df59", "commit_rev":
"69ae14a2e56b0ee3642bd5961fe76704848f68e3"}
Message was sent while issue was closed.
Description was changed from ========== Split browser.lib to avoid hitting 4 GB limit In some build configurations on Windows (official build, goma with symbol_level = 2) browser.lib can grow to about 4 GB which leads to cryptic build failures. Rather than trying to carefully calculate which configurations need to split browser.lib it is simpler to just always split it on Windows. There is no real 'cost' for doing this other than some potential confusion when developers look at the build internals. Instead of building obj\chrome\browser\browser.lib the files built will be obj\chrome\browser\browser_?.lib where '?' is 0-4. BUG=701862 ========== to ========== Split browser.lib to avoid hitting 4 GB limit In some build configurations on Windows (official build, goma with symbol_level = 2) browser.lib can grow to about 4 GB which leads to cryptic build failures. Rather than trying to carefully calculate which configurations need to split browser.lib it is simpler to just always split it on Windows. There is no real 'cost' for doing this other than some potential confusion when developers look at the build internals. Instead of building obj\chrome\browser\browser.lib the files built will be obj\chrome\browser\browser_?.lib where '?' is 0-4. BUG=701862 Review-Url: https://codereview.chromium.org/2767693002 Cr-Commit-Position: refs/heads/master@{#458961} Committed: https://chromium.googlesource.com/chromium/src/+/69ae14a2e56b0ee3642bd5961fe7... ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as https://chromium.googlesource.com/chromium/src/+/69ae14a2e56b0ee3642bd5961fe7... |
