bpo-40302: Add pycore_byteswap.h header file (GH-19552)

Add a new internal pycore_byteswap.h header file with the following
functions:

* _Py_bswap16()
* _Py_bswap32()
* _Py_bswap64()

Use these functions in _ctypes, sha256 and sha512 modules,
and also use in the UTF-32 encoder.

sha256, sha512 and _ctypes modules are now built with the internal
C API.
This commit is contained in:
Victor Stinner 2020-04-17 17:47:20 +02:00 committed by GitHub
parent 485e715cb1
commit 1ae035b7e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 219 additions and 112 deletions

View file

@ -2044,7 +2044,7 @@ class PyBuildExt(build_ext):
# Thomas Heller's _ctypes module
self.use_system_libffi = False
include_dirs = []
extra_compile_args = []
extra_compile_args = ['-DPy_BUILD_CORE_MODULE']
extra_link_args = []
sources = ['_ctypes/_ctypes.c',
'_ctypes/callbacks.c',
@ -2298,8 +2298,10 @@ class PyBuildExt(build_ext):
# It's harmless and the object code is tiny (40-50 KiB per module,
# only loaded when actually used).
self.add(Extension('_sha256', ['sha256module.c'],
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
depends=['hashlib.h']))
self.add(Extension('_sha512', ['sha512module.c'],
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
depends=['hashlib.h']))
self.add(Extension('_md5', ['md5module.c'],
depends=['hashlib.h']))