0

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}
This commit is contained in:
Devon Loehr
2025-04-04 09:59:44 -07:00
committed by Chromium LUCI CQ
parent fd8bb8dc75
commit ae8ba63ecf
2 changed files with 11 additions and 1 deletions

@ -59,7 +59,7 @@ from gn_helpers import ToGNString
# * docs/windows_build_instructions.md
# Make sure any version numbers in the documentation match the code.
#
TOOLCHAIN_HASH = '076960eda6'
TOOLCHAIN_HASH = '68a20d6dee'
SDK_VERSION = '10.0.26100.0'
# Visual Studio versions are listed in descending order of priority.

@ -64,6 +64,16 @@ will need to manually copy the Debuggers\x64 directory from another machine beca
it does not get installed on ARM64 and is needed, whether you are building Chromium
for x64 or ARM64 on ARM64.
WARNING: On sufficiently old versions of Windows (1909 or earlier), dawn or
related components may fail with a D3d-related error when using the 26100 SDK.
This is because the d3dcompiler_47.dll file in the new SDK attempts to
dynamically link versions of the Universal C Runtime which are not present by
default on older systems. If you experience these errors, you can either update
the UCRT on your system, or install the 22621 SDK and use the d3dcompiler_47.dll
file included there, which statically links the UCRT.
This problem may also manifest as a DLL failure to load `__CxxFrameHandler4`.
## git installation
### Install git