Commit b04ded49 authored by Gregory P. Smith's avatar Gregory P. Smith

Also fixes test_hashlib for the different extension module names in py3k.

Merged revisions 77251 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77251 | gregory.p.smith | 2010-01-02 14:25:29 -0800 (Sat, 02 Jan 2010) | 6 lines

  Always compile the all versions of the hashlib algorithm modules when Python
  was compiled with Py_DEBUG defined.  Otherwise the builtins are not compiled by
  default for many developers due to OpenSSL being present, making it easier for
  bugs to slip by.  A future commit will add test code compare the behaviors of
  all implementations when they are all available.
........
parent cd54e546
...@@ -78,10 +78,10 @@ class HashLibTestCase(unittest.TestCase): ...@@ -78,10 +78,10 @@ class HashLibTestCase(unittest.TestCase):
_md5 = self._conditional_import_module('_md5') _md5 = self._conditional_import_module('_md5')
if _md5: if _md5:
self.constructors_to_test['md5'].add(_md5.new) self.constructors_to_test['md5'].add(_md5.md5)
_sha = self._conditional_import_module('_sha') _sha1 = self._conditional_import_module('_sha1')
if _sha: if _sha1:
self.constructors_to_test['sha1'].add(_sha.new) self.constructors_to_test['sha1'].add(_sha1.sha1)
_sha256 = self._conditional_import_module('_sha256') _sha256 = self._conditional_import_module('_sha256')
if _sha256: if _sha256:
self.constructors_to_test['sha224'].add(_sha256.sha224) self.constructors_to_test['sha224'].add(_sha256.sha224)
......
...@@ -15,6 +15,9 @@ from distutils.command.build_ext import build_ext ...@@ -15,6 +15,9 @@ from distutils.command.build_ext import build_ext
from distutils.command.install import install from distutils.command.install import install
from distutils.command.install_lib import install_lib from distutils.command.install_lib import install_lib
# Were we compiled --with-pydebug or with #define Py_DEBUG?
COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
# This global variable is used to hold the list of modules to be disabled. # This global variable is used to hold the list of modules to be disabled.
disabled_module_list = [] disabled_module_list = []
...@@ -593,9 +596,13 @@ class PyBuildExt(build_ext): ...@@ -593,9 +596,13 @@ class PyBuildExt(build_ext):
break break
#print('openssl_ver = 0x%08x' % openssl_ver) #print('openssl_ver = 0x%08x' % openssl_ver)
min_openssl_ver = 0x00907000
have_any_openssl = ssl_incs is not None and ssl_libs is not None
have_usable_openssl = (have_any_openssl and
openssl_ver >= min_openssl_ver)
if ssl_incs is not None and ssl_libs is not None: if have_any_openssl:
if openssl_ver >= 0x00907000: if have_usable_openssl:
# The _hashlib module wraps optimized implementations # The _hashlib module wraps optimized implementations
# of hash functions from the OpenSSL library. # of hash functions from the OpenSSL library.
exts.append( Extension('_hashlib', ['_hashopenssl.c'], exts.append( Extension('_hashlib', ['_hashopenssl.c'],
...@@ -606,15 +613,14 @@ class PyBuildExt(build_ext): ...@@ -606,15 +613,14 @@ class PyBuildExt(build_ext):
print("warning: openssl 0x%08x is too old for _hashlib" % print("warning: openssl 0x%08x is too old for _hashlib" %
openssl_ver) openssl_ver)
missing.append('_hashlib') missing.append('_hashlib')
else:
missing.append('_hashlib')
if openssl_ver < 0x00908000: min_sha2_openssl_ver = 0x00908000
if COMPILED_WITH_PYDEBUG or openssl_ver < min_sha2_openssl_ver:
# OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash
exts.append( Extension('_sha256', ['sha256module.c']) ) exts.append( Extension('_sha256', ['sha256module.c']) )
exts.append( Extension('_sha512', ['sha512module.c']) ) exts.append( Extension('_sha512', ['sha512module.c']) )
if openssl_ver < 0x00907000: if COMPILED_WITH_PYDEBUG or openssl_ver < min_openssl_ver:
# no openssl at all, use our own md5 and sha1 # no openssl at all, use our own md5 and sha1
exts.append( Extension('_md5', ['md5module.c']) ) exts.append( Extension('_md5', ['md5module.c']) )
exts.append( Extension('_sha1', ['sha1module.c']) ) exts.append( Extension('_sha1', ['sha1module.c']) )
......
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