ARM64 capable toolchain with old d3dcompiler

This is a reland of crrev.com/c/1377510, with a new toolchain hash due to
packaging an old version of d3dcompiler_47.dll.

This updates Chrome to build with a toolchain based on VS 2017 15.9.3
and the Windows 10.0.17763.132 SDK, with the ARM64 components included to
support building for ARM64 for Win32. This adds about 400 MB to the package
size, a bit less than a 50% increase. This package contains the 17134 version
of d3dcompiler_47.dll, to avoid gaining a dependency on the universal CRT
which would cause problems for some Windows 7 machines (bug 919163).

Packaging was done on a Windows Server 2016 VM, cleanly created for this
purpose.

The package was created by downloading VS 2017 Update 9.3, from
https://www.visualstudio.com/vs/, and then running the installer like this:

$ PATH_TO_INSTALLER.EXE ^
    --add Microsoft.VisualStudio.Workload.NativeDesktop ^
    --add Microsoft.VisualStudio.Component.VC.ATLMFC ^
    --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
    --add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
    --includeRecommended --passive

Then Add or Remove Programs was used to modify the SDK to add the
Debuggers package.

Then the packaging script was run like this:

  python depot_tools\win_toolchain\package_from_installed.py 2017 -w 10.0.17763.0

This was tested on two VMs to ensure that the results are consistent.

Since the new d3dcompiler_47.dll uses the UCRT and we want to avoid shipping
that the final packaging step was to unzip the package, copy over the two copies
of that DLL from win_sdk\Redist, and then repackage the toolchain with:
  > python package_from_installed.py --repackage=<full-path-to-toolchain-dir>

This should not significantly affect the x86 and x64 builds, although
there may have been some STL and CRT changes that could cause changes.

Bug: 893460, 915046, 919163
Change-Id: I5891479863dd8371505ca9a4439f6939aa564ba8
Reviewed-on: https://chromium-review.googlesource.com/c/1401403
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621376}
1 file changed