Commit 02343c66 authored by brucedawson's avatar brucedawson Committed by Commit bot

Switch to VS 2015 Update 3

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-Commit-Position: refs/heads/master@{#417157}
parent 34509f0a
......@@ -44,7 +44,7 @@ def print_landmines():
print ('Improper dependency for create_nmf.py broke in r240802, '
'fixed in r240860.')
if (platform() == 'win' and gyp_msvs_version().startswith('2015')):
print 'Switch to VS2015 Update 2'
print 'Switch to VS2015 Update 3'
print 'Need to clobber everything due to an IDL change in r154579 (blink)'
print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
if (platform() != 'ios'):
......
......@@ -305,12 +305,8 @@ def _GetDesiredVsToolchainHashes():
"""Load a list of SHA1s corresponding to the toolchains that we want installed
to build with."""
if GetVisualStudioVersion() == '2015':
if bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN_PRERELEASE', '0'))):
# Update 3 final with patches.
return ['d5dc33b15d1b2c086f2f6632e2fd15882f80dbd3']
else:
# Update 2.
return ['95ddda401ec5678f15eeed01d2bee08fcbc5ee97']
# Update 3 final with patches with 10.0.10586.0 SDK.
return ['d5dc33b15d1b2c086f2f6632e2fd15882f80dbd3']
else:
return ['03a4e939cd325d6bc5216af41b92d02dda1366a6']
......
......@@ -3,6 +3,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import glob
import hashlib
import os
import shutil
......@@ -77,6 +78,7 @@ def _CopyCDBToOutput(output_dir, target_arch):
dst_winext_dir = os.path.join(output_dir, 'winext')
src_winxp_dir = os.path.join(src_dir, 'winxp')
dst_winxp_dir = os.path.join(output_dir, 'winxp')
src_crt_dir = os.path.join(win_sdk_dir, r'Redist\ucrt\DLLs', src_arch)
_ConditionalMkdir(dst_winext_dir)
_ConditionalMkdir(dst_winxp_dir)
# Note that the outputs from the "copy_cdb_to_output" target need to
......@@ -89,6 +91,9 @@ def _CopyCDBToOutput(output_dir, target_arch):
_CopyImpl('uext.dll', dst_winext_dir, src_winext_dir)
_CopyImpl('exts.dll', dst_winxp_dir, src_winxp_dir)
_CopyImpl('ntsdexts.dll', dst_winxp_dir, src_winxp_dir)
for dll_path in glob.glob(os.path.join(src_crt_dir, 'api-ms-win-*.dll')):
_CopyImpl(os.path.split(dll_path)[1], output_dir, src_crt_dir)
_CopyImpl('ucrtbase.dll', output_dir, src_crt_dir)
return 0
......
......@@ -19,6 +19,47 @@ if (is_win) {
"$root_out_dir/cdb/winext/uext.dll",
"$root_out_dir/cdb/winxp/exts.dll",
"$root_out_dir/cdb/winxp/ntsdexts.dll",
"$root_out_dir/cdb/api-ms-win-core-console-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-datetime-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-debug-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-errorhandling-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-file-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-file-l1-2-0.dll",
"$root_out_dir/cdb/api-ms-win-core-file-l2-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-handle-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-heap-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-interlocked-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-libraryloader-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-localization-l1-2-0.dll",
"$root_out_dir/cdb/api-ms-win-core-memory-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-namedpipe-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-processenvironment-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-processthreads-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-processthreads-l1-1-1.dll",
"$root_out_dir/cdb/api-ms-win-core-profile-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-rtlsupport-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-string-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-synch-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-synch-l1-2-0.dll",
"$root_out_dir/cdb/api-ms-win-core-sysinfo-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-timezone-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-core-util-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-conio-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-convert-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-environment-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-filesystem-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-heap-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-locale-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-math-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-multibyte-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-private-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-process-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-runtime-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-stdio-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-string-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-time-l1-1-0.dll",
"$root_out_dir/cdb/api-ms-win-crt-utility-l1-1-0.dll",
"$root_out_dir/cdb/ucrtbase.dll",
]
args = [
rebase_path("$root_out_dir/cdb", root_out_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