Skip to content

vcruntime140_threads.dll is erroneously vendored when building with Visual Studio 17.8 #115167

Closed

Description

@adang1345

Bug report

Bug description:

As described in https://devblogs.microsoft.com/cppblog/c11-threads-in-visual-studio-2022-version-17-8-preview-2/, Visual Studio 17.8 introduced support for C11 threads, provided by vcruntime140_threads.dll. When I use the Tools\msi\buildrelease.bat script to build Python 3.12.2 on Windows using this Visual Studio version, the vcruntime140_threads.dll ends up in the Python distribution. For instance, the python-3.12.2-embed-amd64.zip file that is built contains the file vcruntime140_threads.dll at its root.

I traced the cause of this to

<VCRuntimeDLL Include="$(VCRedistDir)\Microsoft.VC*.CRT\vcruntime*.dll" />
which copies all DLLs matching the pattern vcruntime*.dll from the Visual C++ runtime directory. Starting with Visual Studio 17.8, this directory (which for me is C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33135\x64\Microsoft.VC143.CRT) contains the file vcruntime140_threads.dll.

Given that we aren't using C11 threads on Windows, I think we should change that line to
<VCRuntimeDLL Include="$(VCRedistDir)\Microsoft.VC*.CRT\vcruntime*.dll" Exclude="$(VCRedistDir)\Microsoft.VC*.CRT\vcruntime*_threads.dll" /> to ensure that the file is not included in the Python distribution. I can make a PR for this change.

CPython versions tested on:

3.12

Operating systems tested on:

Windows

Linked PRs

Activity

  1. zooba commented on Feb 8, 2024

    @zooba
    Member

    Sounds good to me. It shouldn't be getting into the final installers, as we take the vcruntime from this branch for release, but better to explicitly leave it out for now.

  2. added a commit that references this issue on Feb 8, 2024
  3. added 2 commits that reference this issue on Feb 8, 2024
  4. zooba commented on Feb 8, 2024

    @zooba
    Member

    Thanks! The backports should auto-merge, so closing this as complete. I'll keep an eye on them in case they fail for some reason.

  5. added 2 commits that reference this issue on Feb 8, 2024
  6. added a commit that references this issue on Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-windowsbuildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions