Kaydet (Commit) cc0c7fbc authored tarafından Martin v. Löwis's avatar Martin v. Löwis

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.
........
üst 02293269
...@@ -17,6 +17,7 @@ __revision__ = "$Id$" ...@@ -17,6 +17,7 @@ __revision__ = "$Id$"
import os import os
import subprocess import subprocess
import sys import sys
import re
from distutils.errors import (DistutilsExecError, DistutilsPlatformError, from distutils.errors import (DistutilsExecError, DistutilsPlatformError,
CompileError, LibError, LinkError) CompileError, LibError, LinkError)
from distutils.ccompiler import (CCompiler, gen_preprocess_options, from distutils.ccompiler import (CCompiler, gen_preprocess_options,
...@@ -641,7 +642,32 @@ class MSVCCompiler(CCompiler) : ...@@ -641,7 +642,32 @@ class MSVCCompiler(CCompiler) :
# will still consider the DLL up-to-date, but it will not have a # 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 # manifest. Maybe we should link to a temp file? OTOH, that
# implies a build environment error that shouldn't go undetected. # 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) out_arg = '-outputresource:%s;%s' % (output_filename, mfid)
try: try:
self.spawn(['mt.exe', '-nologo', '-manifest', self.spawn(['mt.exe', '-nologo', '-manifest',
......
...@@ -33,6 +33,9 @@ Core and Builtins ...@@ -33,6 +33,9 @@ Core and Builtins
Library 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 #7410: deepcopy of itertools.count() erroneously reset the count.
- Issue #7403: logging: Fixed possible race condition in lock creation. - Issue #7403: logging: Fixed possible race condition in lock creation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment