Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
adang1345 opened this issue Feb 8, 2024 · 2 comments
Labels
build The build process and cross-build OS-windows type-bug An unexpected behavior, bug, or error

Comments

@adang1345
Copy link
Contributor

adang1345 commented Feb 8, 2024

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

@adang1345 adang1345 added the type-bug An unexpected behavior, bug, or error label Feb 8, 2024
@AlexWaygood AlexWaygood added OS-windows build The build process and cross-build labels Feb 8, 2024
@zooba
Copy link
Member

zooba commented Feb 8, 2024

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.

@zooba
Copy link
Member

zooba commented Feb 8, 2024

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.

@zooba zooba closed this as completed Feb 8, 2024
zooba pushed a commit that referenced this issue Feb 8, 2024
zooba pushed a commit that referenced this issue Feb 8, 2024
fsc-eriker pushed a commit to fsc-eriker/cpython that referenced this issue Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build The build process and cross-build OS-windows type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

3 participants