Chrome has not built with VS 2013 for a while now, so no need to carry
that baggage around as we add VS 2017 support.
Review-Url: https://codereview.chromium.org/2771333002
Cr-Original-Commit-Position: refs/heads/master@{#459876}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e7c0d998d5416b380ffefe1f6acd6126e35d11ed
This change adds a hash for the VS 2017 RTM toolchain download in depot
tools. This allows Googlers to use VS 2017 to build Chrome without
needing to install it, and lets build machines use VS 2017 (although
they continue to default to VS 2015.
The package was created on a Windows Server 2016 VM. One would hope that
the OS used wouldn't matter, but ...? Previous installs of VS 2015 or
the platform SDK are likely to leave files lying around that will alter
the hash so a clean VM is needed. Then follow these steps:
Install VS 2017 Professional RTM, selecting the "Desktop development with
C++" component, and add the MFC and ATL support option.
After this is done you need to install the debugger packages from the
Windows 10 SDK. Go to:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
and be sure to check the Debugging Tools option. Once the installers
have downloaded you can find the x86 and x64 debugger installers in the
download directory in "Windows Kits\10\StandaloneSDK\Installers" - run
them both.
Then run the packaging script, like this:
> python depot_tools\win_toolchain\package_from_installed.py 2017
Note that this packages the 10.0.14393.0 SDK, but this is not the same
10.0.14393.0 SDK that was used in the previous VS 2015 packaging. The
SDK was updated without changing the version number. Most of the changes
should not matter, but be aware.
To use this package set these two environment variables:
DEPOT_TOOLS_WIN_TOOLCHAIN=1
GYP_MSVS_VERSION=2017
Then run "gclient runhooks" to download the new package. The .ninja
files will not automatically update so you may need to run gn gen on
your output directories.
The 'chrome' target should build cleanly without warnings. However
VS 2017 is not yet a supported toolchain so warnings may appear. You
may want to use the treat_warnings_as_errors = false build flag.
To run VS 2017 tests on the buildbots you need to change the
CURRENT_DEFAULT_TOOLCHAIN_VERSION in build\vs_toolchain.py to '2017'
and you need to add a landmine to force a rebuild.
The build process was tested on two separate VMs to ensure that the
results were consistent. They were.
BUG=683729
Review-Url: https://codereview.chromium.org/2777643002
Cr-Original-Commit-Position: refs/heads/master@{#459593}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 560bb951d9a6625633fcad4e4168fb7054bb4dfa
In component builds where DEPOT_TOOLS_WIN_TOOLCHAIN=0 the VS toolchain
script would copy *most* of the UCRT DLLs, but not all of them. It would
fail to copy the api-ms-win-crt-*.dll files. This was not noticed
because these only need to be copied in if you make the mini_installer
target, and if you had previously done generated your output directory
with DEPOT_TOOLS_WIN_TOOLCHAIN=1 then the files would be copied in then,
and retained.
This changes the script to copy from %WINDOWSSDKDIR%\Redist\ucrt\DLLs
directory, or the default location if this variable is not set. This
path is used elsewhere, why copy_cdb_to_output.py and is supported by
both values of DEPOT_TOOLS_WIN_TOOLCHAIN. If the SDK is installed in a
non-default location then DEPOT_TOOLS_WIN_TOOLCHAIN=0 users will have to
ensure that WINDOWSSDKDIR is set.
Local testing confirms that the set of files copied is now identical for
DEPOT_TOOLS_WIN_TOOLCHAIN=0/1 (the file versions are different due to
SDK updates but that is known and expected).
BUG=692300
Review-Url: https://codereview.chromium.org/2743423002
Cr-Original-Commit-Position: refs/heads/master@{#456484}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 46cd6d9361fffc104929e0ed654576eb3b286f14
Building with VS 2017 using a packaged toolchain is not yet supported
but if you try to do it you get a surprising result - the VS 2013
toolchain gets downloaded. This adds a 2013 check to avoid this, and
also simplifies/corrects an existing 2017 check and comment.
This lets us fail-fast if a user tries the VS 2017 depot-tools
combination before it is supported.
BUG=683729
Review-Url: https://codereview.chromium.org/2741783006
Cr-Original-Commit-Position: refs/heads/master@{#456226}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fead74a8e3d55044bc89fe96500275a0b5e3f24c
This updates the toolchain scripts enough so that it is possible to
build Chrome with VC++ 2017 if DEPOT_TOOLS_WIN_TOOLCHAIN=0 and
GYP_MSVS_VERSION=2017, followed by gclient runhooks.
There are still some local patches needed to make it work, and
treat_warnings_as_errors = false and is_component_build = false in
args.gn may be needed initially, but my local builds are working.
The toolchain code should be updated eventually to use COM to locate
the VC++ install location, instead of the hard-coded path which is being
used as a temporary measure in this change.
R=scottmg@chromium.org
BUG=683729
Review-Url: https://codereview.chromium.org/2653473002
Cr-Original-Commit-Position: refs/heads/master@{#445329}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: adddab40528d1fb6dd94c0e4d2bc794ffccf194a
The 10.0.14393.0 SDK was packaged at the same time as the 10.0.10586.0
SDK, during the switch to VS 2015 Update 3. The only reason the SDK
wasn't switched at the same time was to isolate the two changes from
each other, and there's no reason I am aware not to change the SDK now.
R=brucedawson@chromium.org
BUG=440500
Review-Url: https://codereview.chromium.org/2555393003
Cr-Original-Commit-Position: refs/heads/master@{#437190}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b77dd4921b8c3bd94d4543d88dfc160a85dbf868
At some point we may need to build with the 10.0.14393 (Windows 10
Anniversary Edition) SDK. It's all packaged up and ready to go, and
this is as good a way as any to record what the hash is for when we
need it.
Any Google employee developing Chrome on Windows can test this out by
setting DEPOT_TOOLS_WIN_SDK_PRERELEASE=1 and running gclient
runhooks.
BUG=440500
Review-Url: https://codereview.chromium.org/2492573002
Cr-Original-Commit-Position: refs/heads/master@{#431387}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5456b380fd8b29d954ad293c19d13b18b975f166
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
Upgrading to Update 3 is hitting a few roadblocks, which is preventing
Windows developers from getting its fast-incremental-linking goodness.
This change lets developers opt-in to using it by going:
set DEPOT_TOOLS_WIN_TOOLCHAIN_PRERELEASE=1
gclient runhooks
If the environment variable is not set then this has no effect.
BUG=627216
Review-Url: https://codereview.chromium.org/2263763002
Cr-Original-Commit-Position: refs/heads/master@{#413279}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0ea25a46ed83e529d928190cbf3259964acd3ad1
When DEPOT_TOOLS_WIN_TOOLCHAIN=0 it is assumed that the developer has a
local install of Visual Studio, and therefore the CRT DLLs don't need to
be copied to the output directory in order to run binaries. However,
when creating packages for running elsewhere (isolates or the
mini_installer) those DLLs are needed. In order to avoid special cases
elsewhere this change copies them to the output directories when 'gn gen'
or 'gn args' runs.
This change also makes the newly copied files writable so that they can
easily be deleted. For backwards compatibility it also makes the files
writable before deleting them. This avoids a problem with pgort140.dll
which can end up read-only and thus impossible to copy over or delete
without first removing the read-only flag.
This change also removes the need for create_installer_archive.py to
copy CRT DLLs, which should avoid bugs with over-copying of these DLLs.
This change also updates that script to say that ucrtbase*.dll is
required.
BUG=611934,585556, 610336
Review-Url: https://codereview.chromium.org/2021353003
Cr-Original-Commit-Position: refs/heads/master@{#397189}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e7bd0348e692e635c039328cd06aac1ce23b7d4f
Add toolchain hash for Update 3 pre-release and fix declarations of
delay-load hooks for VS 2015 Update 3. The new toolchain is not used
unless you go "set DEPOT_TOOLS_WIN_TOOLCHAIN_PRERELEASE=1", run
"gclient runhooks", and then regenerate ninja files (if using gn).
Therefore this change is a NOP for the build machines and the code
we ship.
VS 2015 Update 3 changes the delay hook function pointers to be const
because this is important for security. This matches that change.
The new compiler is discussed here:
https://blogs.msdn.microsoft.com/vcblog/2016/05/04/new-code-optimizer/
The version packaged up for this change was installed May 16th.
BUG=440500
Review-Url: https://codereview.chromium.org/1959413002
Cr-Original-Commit-Position: refs/heads/master@{#394031}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a80d80c3e4c086a791b93a07ee089413fa60630d
Also fix last-modified-time comparison code to handle minor float
differences and thus correctly not copy identical files (for some
reason there appears to be a ~1e-07 diff between last-modified-time
of copied files...?).
BUG=603603
TEST=No more copy output from gyp_chromium when copied DLLs are already
there or gyp_rc != 0 :-)
Review URL: https://codereview.chromium.org/1890053004
Cr-Original-Commit-Position: refs/heads/master@{#387911}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 381d9f17b002b97ea4cf38a859d91fafd051c587
VS 2015 is used for Chromium builds, but having VS 2013 available is
useful, in particular for SDK bots for nacl. This changes the VS 2013
tool set to one that has setenv.*.json files that were made necessary
by crrev.com/1805173002 so that VS 2013 can still be used.
BUG=495204
Review URL: https://codereview.chromium.org/1886493002
Cr-Original-Commit-Position: refs/heads/master@{#387032}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b10de5ecc2966315ace053a8f8f6054844324d3a
This is the official VS 2015 Update 2 release. This includes all of the
bug fixes which Chromium has been depending on.
BUG=440500
Review URL: https://codereview.chromium.org/1851573002
Cr-Original-Commit-Position: refs/heads/master@{#384480}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 21d776d93f2e432995f6076045f8183c141cd335
When building with DEPOT_TOOLS_WIN_TOOLCHAIN=0 the vs_toolchain.py
script uses environment variables set up by vcvarsall.bat, such as
WINDOWSSDKDIR. The default value of this with VS 2015 is
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\ - note the
trailing slash.
When ninja runs "build\vs_toolchain.py get_toolchain_dir" it translates
this to:
sdk_path = "C:\Program Files (x86)\Windows Kits\10\"
The trailing slash in front of the quote confuses the gn parser. This
change strips those trailing slashes. For more details see the gn
docs:
https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/language.md#Strings
BUG=593154
Review URL: https://codereview.chromium.org/1827663002
Cr-Original-Commit-Position: refs/heads/master@{#382752}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 12bbca48cda56b2a10a68f8f69bb90906189c4bf
Reason for revert:
Preparing a revert in order to reland VS 2015. The CL is not reading for committing yet.
Original issue's description:
> Revert of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1740583002/ )
>
> Reason for revert:
> Broke isolate tests on Win8 GN (dbg) and Win x64 GN (dbg).
>
> Original issue's description:
> > Reland of Change default Windows compiler to VS 2015
> >
> > The change to get_landmines.py is there because modifying this file
> > affects analyze behavior so that all tests run. Changing the printed
> > message is purely a side effect.
> >
> > This change also removes some redundant INCLUDE paths. These are
> > unnecessary when building with VS 2015 (because it defaults to the
> > Windows 10 SDK) and actively harmful (they make the INCLUDE path
> > problematically long).
> >
> > This change was redone in order to fix merge conflicts and because after
> > a few weeks a fresh set of approvals seems reasonable.
> >
> > The original change was landed as crrev.com/1598493004
> >
> > BUG=440500, 584782
> >
> > Committed: https://crrev.com/d4dcbd342dd54f55383daf8bc44b2c9d97fe0d0b
> > Cr-Commit-Position: refs/heads/master@{#380382}
>
> 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
> BUG=440500, 584782
>
> Committed: https://crrev.com/cb3f85f80a2c146e0e4bf064f02bf68acb274ce5
> Cr-Commit-Position: refs/heads/master@{#380395}
TBR=scottmg@chromium.org,dpranke@chromium.org,vasilii@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=440500, 584782
Review URL: https://codereview.chromium.org/1783773004
Cr-Original-Commit-Position: refs/heads/master@{#380711}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2b33e7eee5db5f956426dbf664f68bff3fe7daee
Reason for revert:
Broke isolate tests on Win8 GN (dbg) and Win x64 GN (dbg).
https://build.chromium.org/p/chromium.win/builders/Win8%20GN%20%28dbg%29/builds/22695/steps/isolate%20tests/logs/stdio
[found] [hashed/size/to hash] [looked up/to lookup] [uploaded/size/to upload/size]
04:10:31.512494 Root: E:\b\build\slave\Win8_GN__dbg_\build\src
04:10:31.513479 Root: E:\b\build\slave\Win8_GN__dbg_\build\src
events_unittests GetFileAttributesEx E:\b\build\slave\Win8_GN__dbg_\build\src\out\Debug\msvcp120d.dll: The system cannot find the file specified.
04:10:31.988532 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\content\test\data\) = 1574 files
04:10:32.060523 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\media\test\data\) = 233 files
04:10:32.435549 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\net\data\) = 974 files
04:10:32.464549 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\net\tools\testserver\) = 11 files
[2843] [6/29.0Mib/39] [0/6] [0/0b/0/0b] 1s
04:10:32.505555 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\third_party\pyftpdlib\) = 37 files
04:10:32.539557 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\third_party\pywebsocket\) = 99 files
04:10:32.578571 PushDirectory(E:\b\build\slave\Win8_GN__dbg_\build\src\third_party\tlslite\) = 105 files
content_browsertests GetFileAttributesEx E:\b\build\slave\Win8_GN__dbg_\build\src\out\Debug\msvcp120d.dll: The system cannot find the file specified.
Hits : 0 (0b)
Misses : 0 (0b)
Duration: 1.301s
isolate: GetFileAttributesEx E:\b\build\slave\Win8_GN__dbg_\build\src\out\Debug\msvcp120d.dll: The system cannot find the file specified.
step returned non-zero exit code: 1
Original issue's description:
> Reland of Change default Windows compiler to VS 2015
>
> The change to get_landmines.py is there because modifying this file
> affects analyze behavior so that all tests run. Changing the printed
> message is purely a side effect.
>
> This change also removes some redundant INCLUDE paths. These are
> unnecessary when building with VS 2015 (because it defaults to the
> Windows 10 SDK) and actively harmful (they make the INCLUDE path
> problematically long).
>
> This change was redone in order to fix merge conflicts and because after
> a few weeks a fresh set of approvals seems reasonable.
>
> The original change was landed as crrev.com/1598493004
>
> BUG=440500, 584782
>
> Committed: https://crrev.com/d4dcbd342dd54f55383daf8bc44b2c9d97fe0d0b
> Cr-Commit-Position: refs/heads/master@{#380382}
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
BUG=440500, 584782
Review URL: https://codereview.chromium.org/1778343002
Cr-Original-Commit-Position: refs/heads/master@{#380395}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cb3f85f80a2c146e0e4bf064f02bf68acb274ce5
The change to get_landmines.py is there because modifying this file
affects analyze behavior so that all tests run. Changing the printed
message is purely a side effect.
This change also removes some redundant INCLUDE paths. These are
unnecessary when building with VS 2015 (because it defaults to the
Windows 10 SDK) and actively harmful (they make the INCLUDE path
problematically long).
This change was redone in order to fix merge conflicts and because after
a few weeks a fresh set of approvals seems reasonable.
The original change was landed as crrev.com/1598493004
BUG=440500, 584782
Review URL: https://codereview.chromium.org/1740583002
Cr-Original-Commit-Position: refs/heads/master@{#380382}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d4dcbd342dd54f55383daf8bc44b2c9d97fe0d0b
This fixes some compiler/linker bugs including some code-gen bugs. This
should allow switching the default Windows compiler to VS 2015.
BUG=440500
Review URL: https://codereview.chromium.org/1748583002
Cr-Original-Commit-Position: refs/heads/master@{#380021}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ddab530d959c07bf6eac7e8dd4218fe9af83d319
In crrev.com/1676943002 a couple of CR comments were made after the
commit button was checked. This applies those fixes.
BUG=440500
Review URL: https://codereview.chromium.org/1708663003
Cr-Original-Commit-Position: refs/heads/master@{#376843}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c6f6c69e52a78e9feeb7f7b82283764386f5570f
Also replace a few ';'s with os.path.pathsep and a few \s with os.path.sep.
No behavior change on Windows; the motivation is that this might make it
possible to do this environment computation on non-Windows hosts too some day.
BUG=495204
Review URL: https://codereview.chromium.org/1697023002
Cr-Original-Commit-Position: refs/heads/master@{#375476}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 44a40f8429c25eaf7bf8577cafbcf3a8df100840
This new VS 2015 package contains updated c2.dll, link.exe, and cl.exe
binaries (four variations of each) to fix two bugs. One is a silent
bad code-gen bug:
https://connect.microsoft.com/VisualStudio/feedback/details/2291638
The other is a bug that causes randomly corrupt object files in
debug builds:
https://connect.microsoft.com/VisualStudio/feedback/details/1853228
The modification to cl.exe is purely a change to the link timestamp so
that goma will detect that this is a new toolchain.
Local testing and testing with crrev.com/1680133003 indicate that this
is working correctly. The crrev.com/1680133003 compiles failed until
goma was updated (good) and all of the tests passed. Committing this
change will cause the VS 2015 fyi builders to start using this compiler
which will let us gather data on whether the corrupt object file bug is
fixed.
BUG=440500
Review URL: https://codereview.chromium.org/1696813002
Cr-Original-Commit-Position: refs/heads/master@{#375221}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8bc2e367ea28a21a1c03333832a7339007d9b9db
Reason for revert:
Speculative revert to see if it fixes the "Duplicate COMDAT" compile error; will reland if it doesn't. Googling indicates that we have fought with "Duplicate COMDAT" errors in the past as part of trying to bring in VS 2015.
This error occurred in #374346, which is a revert of #374322 due to that CL causing test failures on Linux. Note that the Windows compiler switch landed in #374324.
Here is the error in question (from https://build.chromium.org/p/chromium.win/buildstatus?builder=Win%20x64%20Builder%20%28dbg%29&number=18343):
FAILED: C:\b\depot_tools\python276_bin\python.exe gyp-win-tool link-with-manifests environment.x64 True mojo_system_impl.dll "C:\b\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x64 False link.exe /nologo /IMPLIB:mojo_system_impl.dll.lib /DLL /OUT:mojo_system_impl.dll @mojo_system_impl.dll.rsp" 2 mt.exe rc.exe "obj\third_party\mojo\mojo_system_impl.mojo_system_impl.dll.intermediate.manifest" obj\third_party\mojo\mojo_system_impl.mojo_system_impl.dll.generated.manifest
mojo_system_impl2.node_controller.obj : fatal error LNK1179: invalid or corrupt file: duplicate COMDAT '??1?$Callback@$$A6AXAEBVPortRef@ports@edk@mojo@@@Z@base@@QEAA@XZ'
Original issue's description:
> Reland of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1680533004/ )
>
> Reason for revert:
> The GPU bot problem (a bug with swarming tests on component builds) is fixed with crrev.com/1676943002
>
> Original issue's description:
> > Revert of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1679693002/ )
> >
> > Reason for revert:
> > This breaks GPU win debug bots (https://build.chromium.org/p/chromium.gpu/builders/Win7%20Debug%20%28NVIDIA%29/builds/36633 for example, every GPU test is crashing)
> >
> > Original issue's description:
> > > Reland of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1678663002/ )
> > >
> > > Reason for revert:
> > > Issues that forced revert of VS 2015 as default compiler are believed to be fixed.
> > >
> > > Original issue's description:
> > > > Revert of Change default Windows compiler to VS 2015 (patchset #10 id:180001 of https://codereview.chromium.org/1598493004/ )
> > > >
> > > > Reason for revert:
> > > > Speculative for https://code.google.com/p/chromium/issues/detail?id=498544#c20 . Will reland if this doesn't help.
> > > >
> > > > Original issue's description:
> > > > > Change default Windows compiler to VS 2015
> > > > >
> > > > > The change to get_landmines.py is there because modifying this file
> > > > > affects analyze behavior so that all tests run. Changing the printed
> > > > > message is purely a side effect.
> > > > >
> > > > > This change also removes some redundant INCLUDE paths. These are
> > > > > unnecessary when building with VS 2015 (because it defaults to the
> > > > > Windows 10 SDK) and actively harmful (they make the INCLUDE path
> > > > > problematically long).
> > > > >
> > > > > BUG=440500,584782
> > > > >
> > > > > Committed: https://crrev.com/4c17ac0db59d7dbe78734950f83912ab564bd6fe
> > > > > Cr-Commit-Position: refs/heads/master@{#373955}
> > > >
> > > > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,brucedawson@chromium.org
> > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > > BUG=440500,584782
> > > >
> > > > Committed: https://crrev.com/bbc766aef1bd8cb0d9546fec9abf264e7d8c1d96
> > > > Cr-Commit-Position: refs/heads/master@{#374013}
> > >
> > > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org
> > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > BUG=440500,584782
> > >
> > > Committed: https://crrev.com/20e99ecb08da22582d435c1a5bba0a5c96345da3
> > > Cr-Commit-Position: refs/heads/master@{#374058}
> >
> > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,brucedawson@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=440500,584782
> >
> > Committed: https://crrev.com/03f6b0af0a3a0127f5e939095157079659ab7cc8
> > Cr-Commit-Position: refs/heads/master@{#374062}
>
> TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,zmo@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=440500,584782
>
> Committed: https://crrev.com/36f03f2ac1f92b6f41129f013f8a808f7b9127fc
> Cr-Commit-Position: refs/heads/master@{#374324}
TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,zmo@chromium.org,brucedawson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=440500,584782
Review URL: https://codereview.chromium.org/1680123002
Cr-Original-Commit-Position: refs/heads/master@{#374349}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b9643d8169d78b6f3fdbc43895c5e830655291d9
Reason for revert:
The GPU bot problem (a bug with swarming tests on component builds) is fixed with crrev.com/1676943002
Original issue's description:
> Revert of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1679693002/ )
>
> Reason for revert:
> This breaks GPU win debug bots (https://build.chromium.org/p/chromium.gpu/builders/Win7%20Debug%20%28NVIDIA%29/builds/36633 for example, every GPU test is crashing)
>
> Original issue's description:
> > Reland of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1678663002/ )
> >
> > Reason for revert:
> > Issues that forced revert of VS 2015 as default compiler are believed to be fixed.
> >
> > Original issue's description:
> > > Revert of Change default Windows compiler to VS 2015 (patchset #10 id:180001 of https://codereview.chromium.org/1598493004/ )
> > >
> > > Reason for revert:
> > > Speculative for https://code.google.com/p/chromium/issues/detail?id=498544#c20 . Will reland if this doesn't help.
> > >
> > > Original issue's description:
> > > > Change default Windows compiler to VS 2015
> > > >
> > > > The change to get_landmines.py is there because modifying this file
> > > > affects analyze behavior so that all tests run. Changing the printed
> > > > message is purely a side effect.
> > > >
> > > > This change also removes some redundant INCLUDE paths. These are
> > > > unnecessary when building with VS 2015 (because it defaults to the
> > > > Windows 10 SDK) and actively harmful (they make the INCLUDE path
> > > > problematically long).
> > > >
> > > > BUG=440500,584782
> > > >
> > > > Committed: https://crrev.com/4c17ac0db59d7dbe78734950f83912ab564bd6fe
> > > > Cr-Commit-Position: refs/heads/master@{#373955}
> > >
> > > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,brucedawson@chromium.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=440500,584782
> > >
> > > Committed: https://crrev.com/bbc766aef1bd8cb0d9546fec9abf264e7d8c1d96
> > > Cr-Commit-Position: refs/heads/master@{#374013}
> >
> > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org
> > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > BUG=440500,584782
> >
> > Committed: https://crrev.com/20e99ecb08da22582d435c1a5bba0a5c96345da3
> > Cr-Commit-Position: refs/heads/master@{#374058}
>
> TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,brucedawson@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=440500,584782
>
> Committed: https://crrev.com/03f6b0af0a3a0127f5e939095157079659ab7cc8
> Cr-Commit-Position: refs/heads/master@{#374062}
TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,zmo@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=440500,584782
Review URL: https://codereview.chromium.org/1676263003
Cr-Original-Commit-Position: refs/heads/master@{#374324}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 36f03f2ac1f92b6f41129f013f8a808f7b9127fc
Chromium component builds rely on the Windows 10 Universal CRT which
must be either installed (problematic) or copied to the directory where
the executables are located. This change copies those files to the
output directories when "gclient runhooks" or "gclient sync" is run.
It also copies ucrtbase.dll to release directories, which was
previously erroneously skipped.
Note that this process doesn't happen and isn't needed when
DEPOT_TOOLS_WIN_TOOLCHAIN=0 is set because then the UCRT is guaranteed
to be installed.
This also updates msvs_dependencies.isolate so that the necessary DLLs,
include vcruntime140*.dll and ucrtbase*.dll, get copied to swarming
machines.
TBR=thakis@chromium.org
BUG=440500
Review URL: https://codereview.chromium.org/1676943002
Cr-Original-Commit-Position: refs/heads/master@{#374300}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d5273ddb31a98cc84c2ec6e74ff0d8ccd5952693
Reason for revert:
This breaks GPU win debug bots (https://build.chromium.org/p/chromium.gpu/builders/Win7%20Debug%20%28NVIDIA%29/builds/36633 for example, every GPU test is crashing)
Original issue's description:
> Reland of Change default Windows compiler to VS 2015 (patchset #1 id:1 of https://codereview.chromium.org/1678663002/ )
>
> Reason for revert:
> Issues that forced revert of VS 2015 as default compiler are believed to be fixed.
>
> Original issue's description:
> > Revert of Change default Windows compiler to VS 2015 (patchset #10 id:180001 of https://codereview.chromium.org/1598493004/ )
> >
> > Reason for revert:
> > Speculative for https://code.google.com/p/chromium/issues/detail?id=498544#c20 . Will reland if this doesn't help.
> >
> > Original issue's description:
> > > Change default Windows compiler to VS 2015
> > >
> > > The change to get_landmines.py is there because modifying this file
> > > affects analyze behavior so that all tests run. Changing the printed
> > > message is purely a side effect.
> > >
> > > This change also removes some redundant INCLUDE paths. These are
> > > unnecessary when building with VS 2015 (because it defaults to the
> > > Windows 10 SDK) and actively harmful (they make the INCLUDE path
> > > problematically long).
> > >
> > > BUG=440500,584782
> > >
> > > Committed: https://crrev.com/4c17ac0db59d7dbe78734950f83912ab564bd6fe
> > > Cr-Commit-Position: refs/heads/master@{#373955}
> >
> > TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,brucedawson@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=440500,584782
> >
> > Committed: https://crrev.com/bbc766aef1bd8cb0d9546fec9abf264e7d8c1d96
> > Cr-Commit-Position: refs/heads/master@{#374013}
>
> TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=440500,584782
>
> Committed: https://crrev.com/20e99ecb08da22582d435c1a5bba0a5c96345da3
> Cr-Commit-Position: refs/heads/master@{#374058}
TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org,brucedawson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=440500,584782
Review URL: https://codereview.chromium.org/1680533004
Cr-Original-Commit-Position: refs/heads/master@{#374062}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 03f6b0af0a3a0127f5e939095157079659ab7cc8
Reason for revert:
Issues that forced revert of VS 2015 as default compiler are believed to be fixed.
Original issue's description:
> Revert of Change default Windows compiler to VS 2015 (patchset #10 id:180001 of https://codereview.chromium.org/1598493004/ )
>
> Reason for revert:
> Speculative for https://code.google.com/p/chromium/issues/detail?id=498544#c20 . Will reland if this doesn't help.
>
> Original issue's description:
> > Change default Windows compiler to VS 2015
> >
> > The change to get_landmines.py is there because modifying this file
> > affects analyze behavior so that all tests run. Changing the printed
> > message is purely a side effect.
> >
> > This change also removes some redundant INCLUDE paths. These are
> > unnecessary when building with VS 2015 (because it defaults to the
> > Windows 10 SDK) and actively harmful (they make the INCLUDE path
> > problematically long).
> >
> > BUG=440500,584782
> >
> > Committed: https://crrev.com/4c17ac0db59d7dbe78734950f83912ab564bd6fe
> > Cr-Commit-Position: refs/heads/master@{#373955}
>
> TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,brucedawson@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=440500,584782
>
> Committed: https://crrev.com/bbc766aef1bd8cb0d9546fec9abf264e7d8c1d96
> Cr-Commit-Position: refs/heads/master@{#374013}
TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,thakis@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=440500,584782
Review URL: https://codereview.chromium.org/1679693002
Cr-Original-Commit-Position: refs/heads/master@{#374058}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 20e99ecb08da22582d435c1a5bba0a5c96345da3
Reason for revert:
Speculative for https://code.google.com/p/chromium/issues/detail?id=498544#c20 . Will reland if this doesn't help.
Original issue's description:
> Change default Windows compiler to VS 2015
>
> The change to get_landmines.py is there because modifying this file
> affects analyze behavior so that all tests run. Changing the printed
> message is purely a side effect.
>
> This change also removes some redundant INCLUDE paths. These are
> unnecessary when building with VS 2015 (because it defaults to the
> Windows 10 SDK) and actively harmful (they make the INCLUDE path
> problematically long).
>
> BUG=440500,584782
>
> Committed: https://crrev.com/4c17ac0db59d7dbe78734950f83912ab564bd6fe
> Cr-Commit-Position: refs/heads/master@{#373955}
TBR=dpranke@chromium.org,scottmg@chromium.org,sebmarchand@chromium.org,brucedawson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=440500,584782
Review URL: https://codereview.chromium.org/1678663002
Cr-Original-Commit-Position: refs/heads/master@{#374013}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bbc766aef1bd8cb0d9546fec9abf264e7d8c1d96
The change to get_landmines.py is there because modifying this file
affects analyze behavior so that all tests run. Changing the printed
message is purely a side effect.
This change also removes some redundant INCLUDE paths. These are
unnecessary when building with VS 2015 (because it defaults to the
Windows 10 SDK) and actively harmful (they make the INCLUDE path
problematically long).
BUG=440500,584782
Review URL: https://codereview.chromium.org/1598493004
Cr-Original-Commit-Position: refs/heads/master@{#373955}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4c17ac0db59d7dbe78734950f83912ab564bd6fe
Recent packaging changes in depot_tools have given us a package that
appears to build Chromium with VS 2015 on machines without the UCRT
installed. This switches VS 2015 builds to this package.
This needs to be done separately from the switch to VS 2015 so that if
that change is reverted we don't needlessly revert toolchains.
BUG=440500
Review URL: https://codereview.chromium.org/1662133002
Cr-Original-Commit-Position: refs/heads/master@{#373436}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3bb12bc92eaea734f91c0c3dfbb6e8c5c0c8eb51
This also incorporates other fixes such as crrev.com/1608373002 and
crrev.com/1609933004.
This is needed to allow building crrev.com/1626623003 with VS 2013.
Review URL: https://codereview.chromium.org/1616553002
Cr-Original-Commit-Position: refs/heads/master@{#373026}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: adb68ba6a3698c049d1185ec507674aa509bbb00
gn builds that use a locally installed copy of Visual Studio (that is,
builds with DEPOT_TOOLS_WIN_TOOLCHAIN=0) fail to build because they
use the Windows 8.1 SDK, whereas Chrome now requires the Windows 10
SDK. This change updates the 8.1 references to point to 10.0.10586.0.
BUG=568201
Review URL: https://codereview.chromium.org/1615603002
Cr-Original-Commit-Position: refs/heads/master@{#370830}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 953e376855384defa8c9b127e010c88cb6c56957
This CL adds the missing GYP_MSVS_VERSION environment variable. Without
the patch the following error happen when a non-googler runs
gyp_chromium in Windows.
File "E:\chromium\src\tools\gyp\pylib\gyp\MSVSVersion.py", line 430, in SelectVisualStudioVersion
raise ValueError('GYP_MSVS_OVERRIDE_PATH requires GYP_MSVS_VERSION to be '
ValueError: GYP_MSVS_OVERRIDE_PATH requires GYP_MSVS_VERSION to be set to a particular version (e.g. 2010e).
The discussion is found here:
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/XWZ3hZW8Lco
BUG=460462
Review URL: https://codereview.chromium.org/1593313002
Cr-Original-Commit-Position: refs/heads/master@{#370065}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 833a437f479bdd1653b0eff8fb5e75883df7ae88
This switches the VS 2015 package to one that includes the UCRT
installers, and it copies ucrtbased.dll to debug directories so that
debug binaries will run.
The new VS 2015 package was created using the changes in
crrev.com/1588673004. This package was created on a clean VM in hopes
of making it reproducible. The steps to create it are:
Install Windows 7 Professional, 64-bit
Install VS 2015 Professional Update 1. Select custom install and these
minimum options:
- Visual C++ (which selects three sub-categories including MFC)
- Universal Windows App Development Tools
- Tools (1.2) and Windows 10 SDK (10.0.10586)
Then download the Windows 10 SDK. The version must match the one
installed with VS 2015 Update 1 or else there will be warnings about
the need to uninstall the previous version. Select "Debugging Tools
for Windows" in addition to the defaults (Windows App Certification Kit,
Windows Software Development Kit). Note, however, that this just
downloads the installers. A message will suggest that running setup.exe
will install the requested components but actually you have to go into
the Downloads\Windows Kits\10\StandaloneSDK\Installers directory to
run the x86 and x64 debugger installers.
Then download three copies of update 2999226, the Windows 10 Universal
C Runtime, for 64-bit Windows 7, Windows 8, and Windows 8.1. Leave these
in the downloads folder. This URl contains the download links:
https://support.microsoft.com/en-us/kb/2999226
Then install depot_tools and run:
> python depot_tools\win_toolchain\package_from_installed.py 2015
Then upload the package with this syntax (replace hash.zip):
> python depot_tools\third_party\gsutil\gsutil cp hash.zip
gs://chrome-wintoolchain/hash.zip
BUG=440500
Review URL: https://codereview.chromium.org/1587073006
Cr-Original-Commit-Position: refs/heads/master@{#369841}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 51f790c13ee0d450d15eca26c3fb558818b7173d
The original VS 2015 Update 1 toolchain package was created on a
development machine and was not reproducible. This package was
created on a clean VM in hopes of making it reproducible. The
steps to create it are:
Install Windows 7 Professional, 64-bit
Install VS 2015 Professional Update 1. Select custom install and these
minimum options:
- Visual C++ (which selects three sub-categories including MFC)
- Universal Windows App Development Tools
- Tools (1.2) and Windows 10 SDK (10.0.10586)
Then download the Windows 10 SDK. The version must match the one
installed with VS 2015 Update 1 or else there will be warnings about
the need to uninstall the previous version. Select "Debugging Tools
for Windows" in addition to the defaults (Windows App Certification Kit,
Windows Software Development Kit). Note, however, that this just
downloads the installers. A message will suggest that running setup.exe
will install the requested components but actually you have to go into
the Downloads\Windows Kits\10\StandaloneSDK\Installers directory to
run the x86 and x64 debugger installers.
Then install depot_tools and run:
> python depot_tools\win_toolchain\package_from_installed.py 2015
The package is uploaded with this syntax (replace hash.zip):
> python depot_tools\third_party\gsutil\gsutil cp hash.zip
gs://chrome-wintoolchain/hash.zip
This process arguably packages up more files than are needed. The
sys32\api_ms-* files can't actually be used in this form - the Universal
Windows 10 C Runtime needs to be installed. These files are also
different on difference OSes, so packaging them doesn't really make
sense. Also the VC\lib\onecore and VC\redist\onecore files are large and
appear to be unneeded. But, removing these is not important.
BUG=440500
Review URL: https://codereview.chromium.org/1576203002
Cr-Original-Commit-Position: refs/heads/master@{#368760}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 94c4e7106c3783cf35f5fe00561ce445382fc0ae
This uses VS 2015 Update 1 and the 10.0.10586.0 SDK, created by an
updated depot_tools\win_toolchain\package_from_installed.py
The previous update to Update 1 only updated the compiler to
19.00.23504, when the final Update 1 is actually 19.00.23506.
R=scottmg@chromium.org
BUG=440500,567328
Review URL: https://codereview.chromium.org/1510983002
Cr-Original-Commit-Position: refs/heads/master@{#363878}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f37301d6d5018a0ee473ea3f89f8216d95072db4
This change updates and simplifies vs_toolchain.py so that it supports
VS 2015 in gn builds. The gn and gyp code now shares DLL copying code so
that they should more naturally stay in sync in the future. The
out_release_nacl64 directory now gets a PGO DLL that it didn't used to.
The six warnings globally disabled are globally disabled in gyp builds
as well. The equivalent warnings (narrowing conversions and variable
shadowing) are disabled in gcc/clang so there is no bug for enabling
them at this time.
BUG=440500
Review URL: https://codereview.chromium.org/1468643002
Cr-Original-Commit-Position: refs/heads/master@{#360988}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aaff8dcb6ee993a18ab6e7236711839e72e81cc3