Patch d3dcompiler_47.dll in Windows Toolchain.

On the previous roll (https://chromium-review.googlesource.com/c/chromium/src/+/6252774), Rafael Cintron pointed out that the d3dcompiler_47.dll included in Windows SDK 26100 was still attempting to dynamically link the UCRT, preventing it from being used on very old versions of Windows. We didn't catch it earlier because we updated our builders to a newer Windows version since the last attempt.

This CL switches our toolchain package to one that includes a previous of d3dcompiler_47.dll, from SDK version 10.0.22621.2428. It is otherwise identical to the previous package (version 10.0.26100.3323).

-----------------------------------------------------------------
Instructions to reproduce:
1. First, follow the instructions on the previous update to produce a toolchain package with hash 076960eda6: https://chromium-review.googlesource.com/c/chromium/src/+/6252774
2. On the VM used to create the package, unzip it to the desktop.
3. Download and install SDK version 10.0.22621.2428 from the SDK archive: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/
4. Copy over the dll as follows:
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\076960eda6\Windows Kits\10\Redist\D3D\x64"
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\076960eda6\Windows Kits\10\bin\10.0.26100.0\x64"
5. Re-package the toolchain with
$ python3 C:\workspace\depot_tools\win_toolchain\package_from_installed.py --repackage=C:\Users\User\Desktop\076960eda6

This produced the current package with hash 68a20d6dee

Bug: 362650376
Change-Id: I415de399082c1304e2e0411d6c7536284cfffabe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6432407
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Devon Loehr <dloehr@google.com>
Cr-Commit-Position: refs/heads/main@{#1442732}
NOKEYCHECK=True
GitOrigin-RevId: ae8ba63ecf7de090c7e43463674ced660260217f
1 file changed
tree: c8ef7a654f462be4b2fa1bbd1f4c373fb751ebf5
  1. 3pp_common/
  2. android/
  3. apple/
  4. args/
  5. autoroll/
  6. chromeos/
  7. cipd/
  8. config/
  9. docs/
  10. fuchsia/
  11. gn_ast/
  12. internal/
  13. ios/
  14. linux/
  15. mac/
  16. private_code_test/
  17. rust/
  18. sanitizers/
  19. skia_gold_common/
  20. toolchain/
  21. util/
  22. win/
  23. .clang-tidy
  24. .clangd
  25. .git-blame-ignore-revs
  26. .gitignore
  27. .style.yapf
  28. action_helpers.py
  29. action_helpers_unittest.py
  30. add_rts_filters.py
  31. build-ctags.sh
  32. BUILD.gn
  33. build_config.h
  34. buildflag.h
  35. buildflag_header.gni
  36. check_gn_headers.py
  37. check_gn_headers_allowlist.txt
  38. check_gn_headers_unittest.py
  39. check_return_value.py
  40. ciopfs.sha1
  41. clobber.py
  42. clobber_unittest.py
  43. compiled_action.gni
  44. compute_build_timestamp.py
  45. copy_test_data_ios.py
  46. cp.py
  47. DEPS
  48. detect_host_arch.py
  49. DIR_METADATA
  50. dotfile_settings.gni
  51. download_nacl_toolchains.py
  52. env_dump.py
  53. extract_from_cab.py
  54. extract_partition.py
  55. find_depot_tools.py
  56. fix_gn_headers.py
  57. gdb-add-index
  58. get_landmines.py
  59. get_symlink_targets.py
  60. gn_editor
  61. gn_helpers.py
  62. gn_helpers_unittest.py
  63. gn_logs.gni
  64. gn_run_binary.py
  65. install-build-deps.py
  66. install-build-deps.sh
  67. install-chroot.sh
  68. landmine_utils.py
  69. landmines.py
  70. locale_tool.py
  71. mac_toolchain.py
  72. metadata.json.in
  73. nocompile.gni
  74. noop.py
  75. OWNERS
  76. OWNERS.setnoparent
  77. OWNERS.status
  78. partitioned_shared_library.gni
  79. precompile.cc
  80. precompile.h
  81. PRESUBMIT.py
  82. PRESUBMIT_test.py
  83. print_python_deps.py
  84. protoc_java.py
  85. protoc_java.pydeps
  86. README.md
  87. redirect_stdout.py
  88. rm.py
  89. sample_arg_file.gn
  90. sanitize-mac-build-log.sed
  91. sanitize-mac-build-log.sh
  92. sanitize-win-build-log.sed
  93. sanitize-win-build-log.sh
  94. shim_headers.gni
  95. symlink.gni
  96. symlink.py
  97. timestamp.gni
  98. tree_truth.sh
  99. update-linux-sandbox.sh
  100. vs_toolchain.py
  101. whitespace_file.txt
  102. write_buildflag_header.py
  103. xcode_binaries.yaml
  104. zip_helpers.py
  105. zip_helpers_unittest.py
README.md

About

//build contains:

  • Core GN templates and configuration
  • Core Python build scripts

Since this directory is DEPS'ed in by some other repositories (webrtc, pdfium, v8, etc), it should be kept as self-contained as possible by not referring to files outside of it. Some exceptions exist (//testing, select //third_party subdirectories), but new dependencies tend to break these other projects, and so should be avoided.

Changes to //build should be landed in the Chromium repo. They will then be replicated to the stand-alone build repo by the gsubtreed tool. Note: You can find all directories already available through gsubtreed in the list of all chromium repos.

Contents

  • //build/config - Common templates via .gni files.
  • //build/toolchain - GN toolchain definitions.
  • Other .py files - Some are used by GN/Ninja. Some by gclient hooks, some are just random utilities.

Files referenced by //.gn:

  • //build/BUILDCONFIG.gn - Included by all BUILD.gn files.
  • //build/secondary - An overlay for BUILD.gn files. Enables adding BUILD.gn to directories that live in sub-repositories.
  • //build_overrides - Refer to //build_overrides/README.md.

Docs