Merged revisions 76653 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r76653 | martin.v.loewis | 2009-12-03 21:57:49 +0100 (Do, 03 Dez 2009) | 10 lines

  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:
Martin v. Löwis 2009-12-03 21:14:10 +00:00
parent 31105ab4fb
commit 8ab31014bf
2 changed files with 26 additions and 0 deletions

View File

@ -17,6 +17,7 @@ __revision__ = "$Id$"
import os
import subprocess
import sys
import re
from distutils.errors import DistutilsExecError, DistutilsPlatformError, \
CompileError, LibError, LinkError
@ -645,6 +646,28 @@ class MSVCCompiler(CCompiler) :
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',

View File

@ -55,6 +55,9 @@ Core and Builtins
Library
-------
- Issue #4120: Drop reference to CRT from manifest when building extensions with
msvc9compiler.
- Issue #7410: deepcopy of itertools.count was resetting the count.
- Issue #4486: When an exception has an explicit cause, do not print its