Commit d17a7e3c authored by Bruce Dawson's avatar Bruce Dawson Committed by Commit Bot

Switch to full 17763 SDK, including new d3dcompiler_47.dll

The new (10.0.17763.0) version of d3dcompiler_47.dll contains various
bug fixes which we want to ship. We initially avoided upgrading it with
the rest of the SDK because it depends on the universal Windows 10 CRT
(UCRT) which some Windows 7 machines lack. This caused test failures on
some bots and would cause failures on some customer machines.

This change updates how we package isolates so that they always include
the UCRT, to avoid test failures. It also ships api-ms-win-*.dll and
ucrtbase*.dll in mini_installer.exe so that the UCRT will be shipped to
customers. The size increase to mini_installer.exe for this is about
400,000 bytes.

This change also deletes an unused function (_read_configuration_from_gn)
from create_installer_archive.py that sent me down an incorrect path
while investigating fixes.

The toolchain package is the same as the one used when landing
crrev.com/c/1401403 except that the 17763 version of d3dcompiler_47.dll
was retained. See that CL for full instructions on creating the
toolchain package.

Bug: 920704
Change-Id: I9cb7a7ed5cb75d04962fc64869d26b12617c0463
Reviewed-on: https://chromium-review.googlesource.com/c/1450414Reviewed-by: default avatarGreg Thompson <grt@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629193}
parent 9b24b709
......@@ -367,9 +367,8 @@ def _GetDesiredVsToolchainHashes():
to build with."""
env_version = GetVisualStudioVersion()
if env_version == '2017':
# VS 2017 Update 9 (15.9.3) with 10.0.17763.132 SDK, 10.0.17134 version of
# d3dcompiler_47.dll, with ARM64 libraries.
toolchain_hash = '818a152b3f1da991c1725d85be19a0f27af6bab4'
# VS 2017 Update 9 (15.9.3) with 10.0.17763.132 SDK with ARM64 libraries.
toolchain_hash = 'e04af53255fe13c130e9cfde7d9ac861b9fb674a'
# Third parties that do not have access to the canonical toolchain can map
# canonical toolchain version to their own toolchain versions.
toolchain_hash_mapping_key = 'GYP_MSVS_HASH_%s' % toolchain_hash
......
......@@ -82,10 +82,12 @@ if (is_win) {
}
group("runtime_libs") {
if (is_component_build) {
if (is_component_build || current_cpu != "arm64") {
# Copy the VS runtime DLLs into the isolate so that they don't have to be
# preinstalled on the target machine. The debug runtimes have a "d" at
# the end.
# the end. The UCRT files are needed for all non-arm64 builds because
# d3dcompiler_47.dll depends on them and they are missing on some Windows
# 7 machines.
if (is_debug) {
vcrt_suffix = "d"
} else {
......
......@@ -18,6 +18,7 @@ chrome_proxy.exe: %(ChromeDir)s\
#
# Chrome version dir entries, sorted alphabetically.
#
api-ms-win-*.dll: %(VersionDir)s\
chrome.dll: %(VersionDir)s\
chrome_100_percent.pak: %(VersionDir)s\
chrome_child.dll: %(VersionDir)s\
......@@ -36,6 +37,7 @@ nacl_irt_x86_64.nexe: %(VersionDir)s\
natives_blob.bin: %(VersionDir)s\
notification_helper.exe: %(VersionDir)s\
resources.pak: %(VersionDir)s\
ucrtbase*.dll: %(VersionDir)s\
v8_context_snapshot.bin: %(VersionDir)s\
#
# Sub directories living in the version dir
......
......@@ -435,36 +435,6 @@ def CopyIfChanged(src, target_dir):
shutil.copyfile(src, dest)
# Taken and modified from:
# third_party\blink\tools\blinkpy\web_tests\port\factory.py
def _read_configuration_from_gn(build_dir):
"""Return the configuration to used based on args.gn, if possible."""
path = os.path.join(build_dir, 'args.gn')
if not os.path.exists(path):
path = os.path.join(build_dir, 'toolchain.ninja')
if not os.path.exists(path):
# This does not appear to be a GN-based build directory, so we don't
# know how to interpret it.
return None
# toolchain.ninja exists, but args.gn does not; this can happen when
# `gn gen` is run with no --args.
return 'Debug'
args = open(path).read()
for l in args.splitlines():
# See the original of this function and then gn documentation for why this
# regular expression is correct:
# https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#GN-build-language-grammar
m = re.match('^\s*is_debug\s*=\s*false(\s*$|\s*#.*$)', l)
if m:
return 'Release'
# if is_debug is set to anything other than false, or if it
# does not exist at all, we should use the default value (True).
return 'Debug'
def ParseDLLsFromDeps(build_dir, runtime_deps_file):
"""Parses the runtime_deps file and returns the set of DLLs in it, relative
to build_dir."""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment