mirror of https://github.com/python/cpython
Merged revisions 76651 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76651 | martin.v.loewis | 2009-12-03 21:53:51 +0100 (Do, 03 Dez 2009) | 3 lines Issue #4120: Drop reference to CRT from manifest when building extensions with msvc9compiler. ........
This commit is contained in:
parent
0229326980
commit
cc0c7fbc22
|
@ -17,6 +17,7 @@ __revision__ = "$Id$"
|
|||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import re
|
||||
from distutils.errors import (DistutilsExecError, DistutilsPlatformError,
|
||||
CompileError, LibError, LinkError)
|
||||
from distutils.ccompiler import (CCompiler, gen_preprocess_options,
|
||||
|
@ -641,7 +642,32 @@ class MSVCCompiler(CCompiler) :
|
|||
# will still consider the DLL up-to-date, but it will not have a
|
||||
# manifest. Maybe we should link to a temp file? OTOH, that
|
||||
# implies a build environment error that shouldn't go undetected.
|
||||
mfid = 1 if target_desc == CCompiler.EXECUTABLE else 2
|
||||
if target_desc == CCompiler.EXECUTABLE:
|
||||
mfid = 1
|
||||
else:
|
||||
mfid = 2
|
||||
try:
|
||||
# Remove references to the Visual C runtime, so they will
|
||||
# fall through to the Visual C dependency of Python.exe.
|
||||
# This way, when installed for a restricted user (e.g.
|
||||
# runtimes are not in WinSxS folder, but in Python's own
|
||||
# folder), the runtimes do not need to be in every folder
|
||||
# with .pyd's.
|
||||
manifest_f = open(temp_manifest, "rb")
|
||||
manifest_buf = manifest_f.read()
|
||||
manifest_f.close()
|
||||
pattern = re.compile(
|
||||
r"""<assemblyIdentity.*?name=("|')Microsoft\."""\
|
||||
r"""VC\d{2}\.CRT("|').*?(/>|</assemblyIdentity>)""",
|
||||
re.DOTALL)
|
||||
manifest_buf = re.sub(pattern, "", manifest_buf)
|
||||
pattern = "<dependentAssembly>\s*</dependentAssembly>"
|
||||
manifest_buf = re.sub(pattern, "", manifest_buf)
|
||||
manifest_f = open(temp_manifest, "wb")
|
||||
manifest_f.write(manifest_buf)
|
||||
manifest_f.close()
|
||||
except IOError:
|
||||
pass
|
||||
out_arg = '-outputresource:%s;%s' % (output_filename, mfid)
|
||||
try:
|
||||
self.spawn(['mt.exe', '-nologo', '-manifest',
|
||||
|
|
|
@ -33,6 +33,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #4120: Drop reference to CRT from manifest when building extensions with
|
||||
msvc9compiler.
|
||||
|
||||
- Issue #7410: deepcopy of itertools.count() erroneously reset the count.
|
||||
|
||||
- Issue #7403: logging: Fixed possible race condition in lock creation.
|
||||
|
|
Loading…
Reference in New Issue