New issue
Advanced search Search tips

Issue 602505 link

Starred by 3 users

Issue metadata

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

Blocking:
issue 354261



Sign in to add a comment

ms_compatibility data missing from gn manifests

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

Issue description

Executables on Windows need to have an embedded manifest which specifies what operating systems they are compatible with so that Windows will accurately report the OS version number and won't try to apply compatibility hacks.

gyp builds contain these manifests but gn builds do not. This is a ship blocker.

This batch file will extract and display the manifest file for the file passed to it:

@setlocal
@echo off

call "%VS120COMNTOOLS%vsvars32.bat" >nul

mt -inputresource:%1;#1 "-out:%temp%\manifest1.xml" >nul
call "%temp%\manifest1.xml"

 
This was checked on remoting_desktop.exe and may not apply to other targets.
Cc: dpranke@chromium.org
setup.exe was completely missing its manifest. A quick check of full-build-win32\*.exe from builds 535 and 536 (gyp and gn) from https://build.chromium.org/p/chromium.win/builders/Win10%20Tests%20x64 shows that all 87 .exe files from build 535 had manifests, but 18 of the 83 executables from build 536 were missing manifests. setup.exe is being addressed by crrev.com/1900343005, but the other ones need fixing either individually or by a global policy change. Here is the list of executables that are missing manifests:

Missing manifest for bitmaptools.exe!!!
Missing manifest for character_data_generator.exe!!!
Missing manifest for crashpad_database_util.exe!!!
Missing manifest for d8.exe!!!
Missing manifest for genmacro.exe!!!
Missing manifest for genmodule.exe!!!
Missing manifest for genperf.exe!!!
Missing manifest for genstring.exe!!!
Missing manifest for genversion.exe!!!
Missing manifest for mksnapshot.exe!!!
Missing manifest for mock_nacl_gdb.exe!!!
Missing manifest for mojo_runner.exe!!!
Missing manifest for protoc.exe!!!
Missing manifest for re2c.exe!!!
Missing manifest for setup.exe!!!
Missing manifest for tls_edit.exe!!!
Missing manifest for yasm.exe!!!

The .exe manifests that do exist with gn are very standard - only chrome.exe's manifest is different (it contains version information). The gyp manifests are less standardized - the Common-Controls manifest is missing from most of them, and there is more variation in the formatting/xml namespaces.

This is the component that is added to all gn manifests but is missing from most gyp manifests.

<assemblyIdentity language="*" publicKeyToken="6595b64144ccf1df" processorArchitecture="*" version="6.0.0.0" name="Microsoft.Windows.Common-Controls" type="Win32"/>
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9f7d629721ad9c14b1053e373436f2f3292f92d

commit f9f7d629721ad9c14b1053e373436f2f3292f92d
Author: brucedawson <brucedawson@chromium.org>
Date: Wed Apr 27 19:11:07 2016

Add manifests to many more gn built exe files

About 80 exe files were still missing manifests when doing gn builds (as
tested with a debug gn 64-bit build with no target specified, if that
matters) and this adds manifests for all except two pdfium binaries.

Because the manifests include OS compatibility information it is
important to have them in order to prevent Windows from doing bizarre
backwards compatibility hacks.

BUG= 602505 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/1925493002
Cr-Commit-Position: refs/heads/master@{#390145}

[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/ash/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/base/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/build/secondary/third_party/crashpad/crashpad/handler/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/chrome/installer/test/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/chrome/test/chromedriver/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/chrome/tools/convert_dict/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/chrome_elf/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/components/test_runner/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/components/wifi/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/content/shell/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/courgette/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/extensions/shell/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/gin/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/google_apis/gcm/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/gpu/gles2_conform_support/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/mash/example/window_type_launcher/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/media/cast/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/net/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/ppapi/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/remoting/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/remoting/host/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/remoting/test/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/rlz/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/services/shell/runner/child/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/services/shell/standalone/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/services/shell/tests/connect/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/services/shell/tests/lifecycle/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/services/shell/tests/shell/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/storage/browser/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/sync/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/third_party/codesighs/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/third_party/opus/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/third_party/qcms/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/tools/battor_agent/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/tools/gn/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/tools/imagediff/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/tools/perf/clear_system_cache/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/ui/aura/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/ui/views/examples/BUILD.gn
[modify] https://crrev.com/f9f7d629721ad9c14b1053e373436f2f3292f92d/win8/BUILD.gn

Project Member

Comment 5 by bugdroid1@chromium.org, May 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fd6b609830987e010cf2402ecc6c66be0082a87f

commit fd6b609830987e010cf2402ecc6c66be0082a87f
Author: brucedawson <brucedawson@chromium.org>
Date: Mon May 02 17:10:11 2016

Adding default_exe_manifest to 42 binaries

gn builds are missing Windows manifests for the boringssl test binaries.
These manifests are necessary in order to get predictable behavior on
Windows.

BUG= 602505 

Review-Url: https://codereview.chromium.org/1936803002
Cr-Commit-Position: refs/heads/master@{#390974}

[modify] https://crrev.com/fd6b609830987e010cf2402ecc6c66be0082a87f/third_party/boringssl/BUILD.gn

Project Member

Comment 6 by bugdroid1@chromium.org, May 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a142208e33329b5b88d3d82d87aa6df31101e5f

commit 5a142208e33329b5b88d3d82d87aa6df31101e5f
Author: catapult-deps-roller <catapult-deps-roller@chromium.org>
Date: Mon May 02 18:40:16 2016

Roll src/third_party/catapult/ 623cc4a59..ec52dceb6 (1 commit).

https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/623cc4a59608..ec52dceb68f8

$ git log 623cc4a59..ec52dceb6 --date=short --no-merges --format='%ad %ae %s'

BUG= 602505 

TBR=catapult-sheriff@chromium.org

Review-Url: https://codereview.chromium.org/1942923002
Cr-Commit-Position: refs/heads/master@{#391007}

[modify] https://crrev.com/5a142208e33329b5b88d3d82d87aa6df31101e5f/DEPS

Project Member

Comment 8 by bugdroid1@chromium.org, May 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bc9b39fc8203807b649b3b773f786bf2c8628f0f

commit bc9b39fc8203807b649b3b773f786bf2c8628f0f
Author: brucedawson <brucedawson@chromium.org>
Date: Tue May 03 06:20:24 2016

Adding default_exe_manifest to one binary

gn builds are missing Windows manifests for bluetooth_metrics_hash.exe.
This manifest is necessary in order to get predictable behavior on
Windows.

BUG= 602505 

Review-Url: https://codereview.chromium.org/1942513002
Cr-Commit-Position: refs/heads/master@{#391179}

[modify] https://crrev.com/bc9b39fc8203807b649b3b773f786bf2c8628f0f/content/browser/bluetooth/tools/BUILD.gn

A check of all .exe files generated by an x86 debug component gn build with enable_nacl = false shows that all binaries now have manifests. Now testing with enable_nacl = true.
Status: Fixed (was: Assigned)
Three CLs got tagged to 604060 instead of to this bug. These three pasted finished fixing this bug. Details below:


#1: https://codereview.chromium.org/1947953002


#2:
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a86e1e5cef109674814b73cfd606acf6152f2cc

commit 1a86e1e5cef109674814b73cfd606acf6152f2cc
Author: brucedawson <brucedawson@chromium.org>
Date: Thu May 05 05:17:42 2016

Add default manifest for gn nacl64.exe

BUG= 602505 

Review-Url: https://codereview.chromium.org/1945343002
Cr-Commit-Position: refs/heads/master@{#391763}

[modify] https://crrev.com/1a86e1e5cef109674814b73cfd606acf6152f2cc/components/nacl/broker/BUILD.gn


#3:
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a51aab488fc2426706646f5d749e54ce8f979fcd

commit a51aab488fc2426706646f5d749e54ce8f979fcd
Author: nacl-deps-roller <nacl-deps-roller@chromium.org>
Date: Thu May 05 06:27:47 2016

Roll src/native_client/ 756d2979a..7965517f3 (1 commit).

https://chromium.googlesource.com/native_client/src/native_client.git/+log/756d2979ac26..7965517f3877

$ git log 756d2979a..7965517f3 --date=short --no-merges --format='%ad %ae %s'
2016-05-04 brucedawson Add default Windows manifest to four .gn executables

BUG= 602505 

CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_dbg_32_ng,linux_nacl_sdk_build
TBR=mseaborn@chromium.org

Review-Url: https://codereview.chromium.org/1947043003
Cr-Commit-Position: refs/heads/master@{#391771}

[modify] https://crrev.com/a51aab488fc2426706646f5d749e54ce8f979fcd/DEPS
Project Member

Comment 11 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c3f7f1c64c5f4d8f865e5e1b3a4072af8f096734

commit c3f7f1c64c5f4d8f865e5e1b3a4072af8f096734
Author: brucedawson <brucedawson@chromium.org>
Date: Wed Jun 01 01:21:11 2016

Adding missing manifests to gn-built executable

Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This adds a manifest to it2me_standalone_host_main.exe.

BUG= 602505 

Review-Url: https://codereview.chromium.org/2023943005
Cr-Commit-Position: refs/heads/master@{#397011}

[modify] https://crrev.com/c3f7f1c64c5f4d8f865e5e1b3a4072af8f096734/remoting/test/BUILD.gn

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d64a9dbc5611dcab7a850f8bbadfcc12d6e7b465

commit d64a9dbc5611dcab7a850f8bbadfcc12d6e7b465
Author: brucedawson <brucedawson@chromium.org>
Date: Wed Jun 01 03:31:15 2016

Adding missing manifest to gn-built app_list_demo

Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This adds a manifest to app_list_demo.exe.

BUG= 602505 

Review-Url: https://codereview.chromium.org/2027753002
Cr-Commit-Position: refs/heads/master@{#397042}

[modify] https://crrev.com/d64a9dbc5611dcab7a850f8bbadfcc12d6e7b465/ui/app_list/BUILD.gn

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/04b26cac6e20af2aff50b8a064691c605d79ae13

commit 04b26cac6e20af2aff50b8a064691c605d79ae13
Author: brucedawson <brucedawson@chromium.org>
Date: Wed Jun 01 03:47:43 2016

Adding missing manifests to gn-built bro.exe

Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This adds a manifest to bro.exe.

BUG= 602505 

Review-Url: https://codereview.chromium.org/2028743002
Cr-Commit-Position: refs/heads/master@{#397044}

[modify] https://crrev.com/04b26cac6e20af2aff50b8a064691c605d79ae13/third_party/brotli/BUILD.gn

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ac03c63c28cd08eb717566166ffb667a741ee71a

commit ac03c63c28cd08eb717566166ffb667a741ee71a
Author: brucedawson <brucedawson@chromium.org>
Date: Sat Jun 04 06:28:01 2016

Add standard Windows manifest to five v8 executables

Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This change adds a manifest to:

  v8_simple_json_fuzzer.exe
  v8_simple_parser_fuzzer.exe
  v8_simple_regexp_fuzzer.exe
  v8_simple_wasm_asmjs_fuzzer.exe
  v8_simple_wasm_fuzzer.exe

BUG= chromium:602505 

Review-Url: https://codereview.chromium.org/2040623003
Cr-Commit-Position: refs/heads/master@{#36725}

[modify] https://crrev.com/ac03c63c28cd08eb717566166ffb667a741ee71a/BUILD.gn

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b3549d99adfdb28aba83dcbdd75ae594398294bd

commit b3549d99adfdb28aba83dcbdd75ae594398294bd
Author: brucedawson <brucedawson@chromium.org>
Date: Mon Jun 06 19:20:11 2016

Adding missing manifests to gn-built executables

Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This adds manifests to two executables.

TBR=reed@google.com
BUG= 602505 

Review-Url: https://codereview.chromium.org/2021113003
Cr-Commit-Position: refs/heads/master@{#398087}

[modify] https://crrev.com/b3549d99adfdb28aba83dcbdd75ae594398294bd/skia/BUILD.gn

Sign in to add a comment