This attempts to port https://github.com/google/syzygy/blob/master/syzygy/swapimport/swapimport_app.cc#L143
The motivation is to be able to run this on non-Windows hosts. This is
the last thing that's required to be able to link chrome.exe (with some
other local changes).
Not relying on a checked-in binary also makes changing the script easier.
Bug: 761849
Change-Id: I9956ce5c0929dcb3fd1309a8f0b2acc80b7b92ce
Reviewed-on: https://chromium-review.googlesource.com/649810
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Chris Hamilton <chrisha@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#499824}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cf357e4d70c3f537994bbbce771b678bc6ef2d3e
Some versions of mc.exe apparently don't do that, see chromium-dev
"message_compiler.py build failure due to innocent enum ordering changes"
Also print a slightly more detailed diff.
Bug: 756607
Change-Id: I100891d0d1d06256448e568b9fa0ed8938d5957b
Reviewed-on: https://chromium-review.googlesource.com/649768
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#499663}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 570a3b4c38a155a075e4370a37bf184c7d35bbd4
This reverts commit d000a95b5c7189076d3e6d61f243caef3edeaa48.
Reason for revert: Speculating that this CL has caused a tree closure - see https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Win/builds/21668
Original change's description:
> mc: Copy over checked-in outputs on non-Windows hosts.
>
> On Windows hosts, verify that the checked-in outputs are identical to
> what mc.exe actually produces.
>
> Bug: 756607
> Change-Id: If827c2b5d64730a27cf409af25783794366c1843
> Reviewed-on: https://chromium-review.googlesource.com/646659
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Scott Graham <scottmg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#499221}
TBR=thakis@chromium.org,scottmg@chromium.org
Change-Id: I9d2dc77942bdba7198ed442cedb2f3d815510f9f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 756607
Reviewed-on: https://chromium-review.googlesource.com/648146
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#499227}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ea662297506102da12eb1ee04e40fad15b77a1d5
On Windows hosts, verify that the checked-in outputs are identical to
what mc.exe actually produces.
Bug: 756607
Change-Id: If827c2b5d64730a27cf409af25783794366c1843
Reviewed-on: https://chromium-review.googlesource.com/646659
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#499221}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d000a95b5c7189076d3e6d61f243caef3edeaa48
This has a bunch of minor advantages:
1. It's less code
2. It's a build step less per windows_manifest
3. /manifest:embed automatically sets 1 or 2 based on /dll, so
clients of windows_manifest() clients no longer need to set type
4. rc.exe is no longer required for every single binary, which
helps bootstrapping of cross-building some chrome/win binaries
on non-win
No intended behavior change.
TBR=sergeyu,grt
Bug: 495204
Cq-Include-Trybots: master.tryserver.chromium.win:win10_chromium_x64_rel_ng
Change-Id: I13cd9103829fa535997fa7a7e5ec009dbc1b8039
Reviewed-on: https://chromium-review.googlesource.com/585109
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#489729}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 132e149a98b37ee78eaf86434dbe37f22fa40d4c
pgomgr.exe sometime fails to merge too many files at the same time, with
what seems to be a memory issue (process peak at ~4GB before failing,
it's a 64-bit process so it's probably a size_t/uint32_t issue). I've a
local repro that I'll send to MS, but in the meantime this fix is
required to fix the official build (and the PGO ones in general).
Bug: 729894
Change-Id: I9c862c0179de50ee89b22a03789c9fb0a1071d48
Reviewed-on: https://chromium-review.googlesource.com/528354
Commit-Queue: Sébastien Marchand <sebmarchand@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#478066}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0c6adbef4d5f4722e2a224c90164f30ec9cf26dd
pgomgr.exe has been moved to a different location in VS2017 so the logic
that find it should be updated.
It can't just be copied to the build directory because we always run the
x64 bit version of this binary (and we don't want to mix x86 and x64
binaries in the same build dir)
BUG=719319
Review-Url: https://codereview.chromium.org/2884613003
Cr-Original-Commit-Position: refs/heads/master@{#473438}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ab3a1821bb57a51d11be2b038b3a698236ccd5fc
The PGO build is failing for the VS2017 binaries because some of the
dependencies (pgort140.dll, pgosweep.exe...) have moved to a different
directory of the toolchain.
There's also a change to the profiling script to use a copy of
pgosweep.exe from the build directory rather than the one in the
toolchain's directory, this is required in order to be able to use
Swarming for the profiling step (and this is probably cleaner because
it avoid duplicating the logic that find these runtime dependencies).
BUG=719319
Review-Url: https://codereview.chromium.org/2878693002
Cr-Original-Commit-Position: refs/heads/master@{#471299}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 79a9cbda265c5ab725a0a25d725980bd0b376439
This benchmark has been failing (timing out) for months now, so removing it won't affect the performance.
The issue seem to be that Speedometer takes a while to tun, and it's much slower in a PGI build, so we timeout after 10 minutes and at this
point the benchmark is still running. We could increase the timeout
but as mentioned above this has been failing for months and we haven't noticed a performance regression.
BUG=650432
Review-Url: https://codereview.chromium.org/2814103003
Cr-Original-Commit-Position: refs/heads/master@{#465682}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aa335b32311ded1c056247d4a8baca404de732c6
Workaround for a flakyness in pgomgr.exe where it can run out of address
space while trying to merge all the PGC files at the same time.
This will also allow to upload the pgd file before running the optimize step.
BUG=674956
Review-Url: https://codereview.chromium.org/2575543002
Review-Url: https://codereview.chromium.org/2575543002
Cr-Original-Commit-Position: refs/heads/master@{#449082}
Committed: 6c18b1e861
Cr-Original-Original-Commit-Position: refs/heads/master@{#448332}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4a19948e1bc13344a301c439445d36b44c207bb1
Reason for revert:
Breaks the PGO bots.
Original issue's description:
> Add a script to merge the PGC files.
>
> Workaround for a flakyness in pgomgr.exe where it can run out of address
> space while trying to merge all the PGC files at the same time.
>
> This will also allow to upload the pgd file before running the optimize step.
>
> BUG=674956
>
> Review-Url: https://codereview.chromium.org/2575543002
> Cr-Commit-Position: refs/heads/master@{#448332}
> Committed: 6c18b1e861TBR=scottmg@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=674956
Review-Url: https://codereview.chromium.org/2680683002
Cr-Original-Commit-Position: refs/heads/master@{#448561}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6c2f8b4bd17f67d03b3e4d85401a0eaa68597afa
Workaround for a flakyness in pgomgr.exe where it can run out of address
space while trying to merge all the PGC files at the same time.
This will also allow to upload the pgd file before running the optimize step.
BUG=674956
Review-Url: https://codereview.chromium.org/2575543002
Cr-Original-Commit-Position: refs/heads/master@{#448332}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6c18b1e861ec6a9c96d24b3bd962688e50c83597
VS 2015 Update 3 offers numerous improvements such as improved
language conformance, fixes to avoid linker crashes, and
improved code-gen for faster performance. Update 3 also resolves
some problems with incremental linking silently falling back to
a full link.
It also fixes an internal compiler error in /analyze builds.
The landmines change is needed because otherwise things like the
out\Release\cdb directory do not get regenerated.
The process for creating this package is:
- Create a clean Windows VM running Windows Server 2012 R2 (en_windows_server_2012_r2_vl_with_update_x64_dvd_6052766.iso, SHA1: 247EAEE5628850A41F0C51471656AAFB2492EA08, Standard Edition)
- Install depot tools, run ‘gclient’, and add depot_tools to the path
- Install VS 2015 Professional Update 3 - must have been installed after July 12th to get the latest fixes - with these settings and nothing else:
* Visual C++ and make sure the three nodes underneath are also selected
* Under Universal Windows App Development Tools make sure the "Tools (1.4.1) and Windows 10 SDK (10.0.14393)" and the "Windows 10 SDK (10.0.10586)" nodes are selected and nothing else
- Copy the *Debugger and Tools*.msi installers from another machine and run them. The 10.0.14393 versions (Anniversary Edition) should be used.
- Then run:
python depot_tools\win_toolchain\package_from_installed.py 2015
It is also possible to package the 14393 SDK by running this command,
but that change is being saved for later:
python depot_tools\win_toolchain\package_from_installed.py 2015 -w 10.0.14393.0
BUG=627216,636468,427616,637456
Review-Url: https://codereview.chromium.org/2106203002
Cr-Original-Commit-Position: refs/heads/master@{#417157}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 02343c661ee0482cb73ad0cf861999f2c57eeb11
Reason for revert:
It's breaking the Gyp Official build and I can't fix this right now.
BUG=626828
Original issue's description:
> Move the Syzygy scripts out of //chrome/
>
> Also move the syzygy_optimize and syzygy_asan GN templates to //build/win/syzygy so they can be reused in //content (without adding a dependency with //chrome).
>
> BUG=619086
>
> Committed: https://crrev.com/71a43cab53042f33d77fe8eebe8c2463a92f9758
> Cr-Commit-Position: refs/heads/master@{#404503}
TBR=chrisha@chromium.org,dpranke@chromium.org,gab@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=619086
Review-Url: https://codereview.chromium.org/2129333002
Cr-Original-Commit-Position: refs/heads/master@{#404530}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6318d34b911380a6ebb3f1c8787024ba3e3400eb
Also move the syzygy_optimize and syzygy_asan GN templates to //build/win/syzygy so they can be reused in //content (without adding a dependency with //chrome).
BUG=619086
Review-Url: https://codereview.chromium.org/2126673002
Cr-Original-Commit-Position: refs/heads/master@{#404503}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 71a43cab53042f33d77fe8eebe8c2463a92f9758
These are required to get access to the !uniqstack command, to be able
to dump all threads' stacks from a minidump.
BUG=609252
Review-Url: https://codereview.chromium.org/2092083004
Cr-Original-Commit-Position: refs/heads/master@{#402295}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f9319d64b21f372bddd073b46c6bd0a089dc657f
If DEPOT_TOOLS_WIN_TOOLCHAIN=0 and vcvarsall.bat has not been run then
WINDOWSSDKDIR will probably not be set and copying cdb\cdb.exe will fail
when copy_cdb_to_output.py tries to read WINDOWSSDKDIR from environ.
This change handles that case by using the default SDK location.
BUG=616146
Review-Url: https://codereview.chromium.org/2030723002
Cr-Original-Commit-Position: refs/heads/master@{#397483}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 250abd283b7db0274df689e6b0dad571fd180a4f
This delay loads additional libraries so the set of delay-loaded and non-delay-loaded libraries is the same between GYP and GN for 32-bit Windows official builds of chrome.exe and chrome.dll. I checked the imported libraries but not the individual functions.
Remove user32 delay imports. This was a hack for Windows XP. I checked all the functions in the list of imports and they are all available on Windows 7. There was a lot of machinery required for this that was removed.
BUG=512861
Reland of https://crrev.com/080e7e885be49295f8373eb0fa54e6772206bc64 with fix.
Review-Url: https://codereview.chromium.org/2008643002
Cr-Original-Commit-Position: refs/heads/master@{#395432}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cc84b6cdb2ba06927c498632c86cb0c81e50e9ec
In order to roll GN c51453e958..d6763a7390 (r358852:r358968) and pick up
the following changes:
d6763a7 Support script response files in GN.
9eca8d0 include what you use: errno.h in exec_process.cc
Adds shell=True to the message compiler wrapper script. This is required for the new way that GN sets the environment on actions, and matches how it used to run (gyp-win-tool used to set this).
Do the same plus set the environment for the prep_libc step.
TBR=dpranke@chromium.org
CQ_EXTRA_TRYBOTS=tryserver.chromium.mac:mac_chromium_gn_dbg;tryserver.chromium.win:win8_chromium_gn_dbg,win_chromium_gn_x64_rel
Review URL: https://codereview.chromium.org/1433093002
Cr-Original-Commit-Position: refs/heads/master@{#359365}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 46c86d0ba1f6bf1abea78629ccb099eb8285ea7e
There were previously two message compiler wrapper scripts which this unifies into one template and script in build.
Explicitly sets the environment block when running mc.exe. Currently GN sets this automatically but will soon stop doing this.
Review URL: https://codereview.chromium.org/1440693003
Cr-Original-Commit-Position: refs/heads/master@{#359155}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4744642adb27d4c27a8a0cd0e55e1fbeffc9803b
There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity.
Fix the cloud print size_t to int warnings and remove the warning disable from GYP.
Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is.
Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way.
Reland of https://codereview.chromium.org/1397433004/ with grid directory fixes
Reland of https://codereview.chromium.org/1393123003/ with warning fixes
TBR=dpranke
Review URL: https://codereview.chromium.org/1408623002
Cr-Original-Commit-Position: refs/heads/master@{#354154}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 70b359a5032e58cb8309a16068868f63cba00c45
Reason for revert:
Causes compile failures:
http://build.chromium.org/p/chromium/builders/Win/builds/36509/steps/compile/logs/stdio
ninja:error: 'gen/cloud_print/service_resources_en.rc', needed by 'obj/cloud_print/service/win/gen/cloud_print/cloud_print_service.service_resources_en.res', missing and no known rule to make it
Original issue's description:
> Add cloud_print to the GN build.
>
> There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity.
>
> Fix the cloud print size_t to int warnings and remove the warning disable from GYP.
>
> Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is.
>
> Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way.
>
> Reland of https://codereview.chromium.org/1393123003/ with warning fixes
> TBR=dpranke
>
> Committed: https://crrev.com/70d2f990df7755c6e76aa20f156ff1f92a25f318
> Cr-Commit-Position: refs/heads/master@{#354089}
TBR=dpranke@google.com,brettw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1409563002
Cr-Original-Commit-Position: refs/heads/master@{#354098}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 297953be4033da6b26b9d084350b96c326aacefb
There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity.
Fix the cloud print size_t to int warnings and remove the warning disable from GYP.
Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is.
Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way.
Reland of https://codereview.chromium.org/1393123003/ with warning fixes
TBR=dpranke
Review URL: https://codereview.chromium.org/1397433004
Cr-Original-Commit-Position: refs/heads/master@{#354089}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 70d2f990df7755c6e76aa20f156ff1f92a25f318
Reason for revert:
Broke http://build.chromium.org/p/chromium.win/builders/Win%20x64%20Builder%20%28dbg%29/builds/14017
Original issue's description:
> Add cloud_print to the GN build.
>
> There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity.
>
> Fix the cloud print size_t to int warnings and remove the warning disable from GYP.
>
> Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is.
>
> Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way.
>
> Committed: https://crrev.com/53eae14bacb401632d4f2045ed8715705dcd8d1d
> Cr-Commit-Position: refs/heads/master@{#353928}
TBR=dpranke@chromium.org,brettw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1407623003
Cr-Original-Commit-Position: refs/heads/master@{#353938}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 515fe9b0261a76412f696062c0c70440db743118
There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity.
Fix the cloud print size_t to int warnings and remove the warning disable from GYP.
Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is.
Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way.
Review URL: https://codereview.chromium.org/1393123003
Cr-Original-Commit-Position: refs/heads/master@{#353928}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 53eae14bacb401632d4f2045ed8715705dcd8d1d
At first I didn't hook up the script correctly in the gn build. swapimport.exe
printed
ERROR:swapimport_app.cc(214)] Path does not exist: ../../chrome/initialexe\chrome.exe
but that didn't make the build fail -- instead, it silently left the old
chrome.exe (from prior builds) around. Make it so that swapimport.exe failing
makes the build fail.
BUG=505062, 512599
Review URL: https://codereview.chromium.org/1363243002
Cr-Original-Commit-Position: refs/heads/master@{#350482}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7c3c949a348b5f6e47eea84f5d533918d816fba4
Adds manifest data for content shell. The result matches the GYP build.
Attaches a default manifest to all tests in the GN build. The GYP build's tests have manifests that specify elevation only. In GN it also specifies Windows and common control compat that matches what we ship with Chrome.
BUG=510612
TBR=dpranke@chromium.org
Reland of https://codereview.chromium.org/1240893004/ with no cloud print or remoting changes
Review URL: https://codereview.chromium.org/1238293005
Cr-Original-Commit-Position: refs/heads/master@{#339709}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2e2220c02f2bbd3116b7b718aad627f37ad59b92
Adds manifest data for content shell. The result matches the GYP build.
Attaches a default manifest to all tests in the GN build. The GYP build's tests have manifests that specify elevation only. In GN it also specifies Windows and common control compat that matches what we ship with Chrome.
Moved the common control compat files that were duplicated to a shared place in build/win, update cloud_print and remoting which had their own copies to use this shared one.
BUG=510612
Review URL: https://codereview.chromium.org/1240893004
Cr-Original-Commit-Position: refs/heads/master@{#339663}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c34cad367a0557d8b029fb81d04cc37b5979fee0
This fixes the hang that caused the addition of the early out in
stack_trace_win.cc.
Removing that in turn fixes symbolization of stack traces on XP bots.
R=cpu@chromium.org
BUG=460506
Review URL: https://codereview.chromium.org/943933005
Cr-Original-Commit-Position: refs/heads/master@{#317651}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 92d69f7733f4028cf8b3d5b4b97a31173e687594