New issue
Advanced search Search tips

Issue 606556 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

VS 2015 toolchain build is not reproducible

Project Member Reported by brucedaw...@chromium.org, Apr 25 2016

Issue description

Every machine that tries to package the VS 2015 toolchain will get a different result. This is because nineteen bytes in this file:

    c:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd

are different on every machine that gets VC++ 2015 installed on it. This means that the current toolchain has the 'fingerprint' of the VM that was used to make it.

Additionally, a VC\bin\readme.txt file was inadvertently packaged along with the toolchain.

I have code that fixes up the Windows.winmd file. However, without the readme.txt file it is impossible to reproduce our current hash. Therefore we probably need to push out a new toolchain hash, with the Windows.winmd patches (doesn't actually change the hash) and without the readme.txt file. This would also be a good time to remove the Universal Windows 10 CRT installers, and make any other cleanup changes.

It is unfortunate that this will require pushing a new toolchain to all Google employee Chrome developers.

Any thoughts?
 
I would probably try to fix the packaging, but not bother pushing until U3.
I managed to get identical results on two machines after patching the differences mentioned above. On a third machine I hit these seven additional files:

'.\win_sdk\bin\x86\838060235bcd28bf40ef7532c50ee032.cab'
'.\win_sdk\bin\x86\8e4755178e6b5bcba8d3538c3630b7a5.cab'
'.\win_sdk\bin\x86\a35cd6c9233b6ba3da66eecaa9190436.cab'
'.\win_sdk\bin\x86\b80b7321357f7c9f281536f9440dfe68.cab'
'.\win_sdk\bin\x86\c2aabf6ea5c1d348ec22f3aeb92f8656.cab'
'.\win_sdk\bin\x86\fe38b2fd0d440e3c6740b626f51a22fc.cab'
'.\win_sdk\Catalogs\catdc86ee34899e6e0001d3395f612dccec.cat'

This machine has had multiple versions of VS installed, including Update 2 RC, so presumably one of those intermediate steps led to these extra files. With those deleted, the readme copied over, and the patch in 1916983003 applied I then got consistent results.

Status: Fixed (was: Assigned)
This bug was fixed as part of an update to the packaging script:

Update toolchain packaging to support VC++ preview toolsets

This change adds a --override option to the VC++ packaging script so
that an arbitrary bin/include/lib containing directory can be used to
package up those components of VC++. See this post for details:

https://blogs.msdn.microsoft.com/vcblog/2016/02/16/try-out-the-latest-c-compiler-toolset-without-waiting-for-

Typical usage is like this:

  package_from_installed.py 2015 --override <projdir>\packages\VisualCppTools.14.0.24109-Pre\lib\native

In order to make this work the path tuple support was fixed so that the
local relative path was propagated to the destination path, instead of
just the file name.

At the same time, the code to package up the UCRT installers was deleted
because it isn't needed, and windows.winmd is filtered out because it
makes consistent package creation impossible (it is different on every
machine).

While removing the UCRT installers I discovered nested if VS_VERSION
checks. Oops. Fixed.

BUG= 440500 

Review-Url: https://codereview.chromium.org/1967653002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300527 0039d316-1c4b-4281-b951-d872f2087c98

Sign in to add a comment