This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eryksun
Recipients eryksun, mhammond, paul.moore, steve.dower, tim.golden, zach.ware
Date 2016-01-10.04:37:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1452400667.92.0.951259086827.issue26071@psf.upfronthosting.co.za>
In-reply-to
Content
I would call SetDllDirectory instead of changing the current directory. This replaces the current directory in the DLL search. Then call SetDllDirectory(NULL) to restore the default before returning. 

When you say "the CRT assembly", you're talking about vcruntime140.dll, right? This module implements exceptions, setjmp/longjmp, and other functions that are closely coupled with the VC++ version, but most of the universal CRT is implemented in the system DLL ucrtbase.dll. 

vcruntime was initially linked statically everywhere, but that was a problem for extension modules, since each instance was taking a fiber locale storage slot. 

However, it really should be static for the bdist_wininst installer. I believe Steve had the link configuration customized as a partially static build that linked dynamically with ucrtbase.dll. This benefits from continuous CRT bug fixes and security updates. To configure this he added ucrt[d].lib as a dependency and ignored the default library libucrt[d].lib. See the following diff for the changes that were made to revert this:

    https://hg.python.org/cpython/diff/8374472c6a6e/PCbuild/pyproject.props
History
Date User Action Args
2016-01-10 04:37:47eryksunsetrecipients: + eryksun, mhammond, paul.moore, tim.golden, zach.ware, steve.dower
2016-01-10 04:37:47eryksunsetmessageid: <1452400667.92.0.951259086827.issue26071@psf.upfronthosting.co.za>
2016-01-10 04:37:47eryksunlinkissue26071 messages
2016-01-10 04:37:46eryksuncreate