mirror of https://github.com/python/cpython
bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157)
setup.py no longer defines Py_BUILD_CORE_MODULE. Instead every module defines the macro before #include "Python.h" unless Py_BUILD_CORE_BUILTIN is already defined. Py_BUILD_CORE_BUILTIN is defined for every module that is built by Modules/Setup. The PR also simplifies Modules/Setup. Makefile and makesetup already define Py_BUILD_CORE_BUILTIN and include Modules/internal for us. Signed-off-by: Christian Heimes <christian@python.org>
This commit is contained in:
parent
86dfb55d2e
commit
03e9f5dc75
|
@ -0,0 +1,2 @@
|
|||
``setup.py`` no longer defines ``Py_BUILD_CORE_MODULE``. Instead every
|
||||
module, that uses the internal API, defines the macro.
|
|
@ -99,26 +99,26 @@ PYTHONPATH=$(COREPYTHONPATH)
|
|||
# cannot be built as shared!
|
||||
|
||||
_collections _collectionsmodule.c
|
||||
_abc -DPy_BUILD_CORE_BUILTIN _abc.c
|
||||
_abc _abc.c
|
||||
_codecs _codecsmodule.c
|
||||
_functools -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _functoolsmodule.c
|
||||
_io -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
|
||||
_locale -DPy_BUILD_CORE_BUILTIN _localemodule.c # -lintl
|
||||
_operator -DPy_BUILD_CORE_BUILTIN _operator.c
|
||||
_signal -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal signalmodule.c
|
||||
_sre -DPy_BUILD_CORE_BUILTIN _sre.c
|
||||
_functools _functoolsmodule.c
|
||||
_io -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
|
||||
_locale _localemodule.c # -lintl
|
||||
_operator _operator.c
|
||||
_signal signalmodule.c
|
||||
_sre _sre.c
|
||||
_stat _stat.c
|
||||
_symtable symtablemodule.c # setup.py can't track the .h file that _symtable depends on.
|
||||
_thread -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _threadmodule.c
|
||||
_thread _threadmodule.c
|
||||
_tracemalloc _tracemalloc.c # See bpo-35053 as to why this is built in.
|
||||
_weakref _weakref.c
|
||||
atexit atexitmodule.c
|
||||
errno errnomodule.c
|
||||
faulthandler faulthandler.c
|
||||
itertools itertoolsmodule.c
|
||||
posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c
|
||||
posix posixmodule.c
|
||||
pwd pwdmodule.c
|
||||
time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c
|
||||
time timemodule.c
|
||||
|
||||
|
||||
# ---
|
||||
|
@ -139,7 +139,7 @@ time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c
|
|||
|
||||
#_asyncio _asynciomodule.c
|
||||
#_bisect _bisectmodule.c
|
||||
#_blake2 -DPy_BUILD_CORE_BUILTIN _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
|
||||
#_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
|
||||
#_codecs_cn cjkcodecs/_codecs_cn.c
|
||||
#_codecs_hk cjkcodecs/_codecs_hk.c
|
||||
#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
|
||||
|
@ -150,31 +150,31 @@ time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c
|
|||
#_csv _csv.c
|
||||
#_datetime _datetimemodule.c
|
||||
#_elementtree -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI -I$(srcdir)/Modules/expat _elementtree.c
|
||||
#_heapq -DPy_BUILD_CORE_MODULE _heapqmodule.c
|
||||
#_json -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _json.c
|
||||
#_heapq _heapqmodule.c
|
||||
#_json _json.c
|
||||
#_lsprof _lsprof.c rotatingtree.c
|
||||
#_md5 -DPy_BUILD_CORE_BUILTIN md5module.c
|
||||
#_md5 md5module.c
|
||||
#_multibytecodec cjkcodecs/multibytecodec.c
|
||||
#_opcode _opcode.c
|
||||
#_pickle -DPy_BUILD_CORE_MODULE _pickle.c
|
||||
#_posixsubprocess -DPy_BUILD_CORE_BUILTIN _posixsubprocess.c
|
||||
#_queue -DPy_BUILD_CORE_MODULE _queuemodule.c
|
||||
#_random -DPy_BUILD_CORE_MODULE _randommodule.c
|
||||
#_sha1 -DPy_BUILD_CORE_BUILTIN sha1module.c
|
||||
#_sha256 -DPy_BUILD_CORE_BUILTIN sha256module.c
|
||||
#_sha512 -DPy_BUILD_CORE_BUILTIN sha512module.c
|
||||
#_sha3 -DPy_BUILD_CORE_BUILTIN _sha3/sha3module.c
|
||||
#_pickle _pickle.c
|
||||
#_posixsubprocess _posixsubprocess.c
|
||||
#_queue _queuemodule.c
|
||||
#_random _randommodule.c
|
||||
#_sha1 sha1module.c
|
||||
#_sha256 sha256module.c
|
||||
#_sha512 sha512module.c
|
||||
#_sha3 _sha3/sha3module.c
|
||||
#_statistics _statisticsmodule.c
|
||||
#_struct -DPy_BUILD_CORE_MODULE _struct.c
|
||||
#_struct _struct.c
|
||||
#_typing _typingmodule.c
|
||||
#_zoneinfo -DPy_BUILD_CORE_MODULE _zoneinfo.c
|
||||
#array -DPy_BUILD_CORE_MODULE arraymodule.c
|
||||
#_zoneinfo _zoneinfo.c
|
||||
#array arraymodule.c
|
||||
#audioop audioop.c
|
||||
#binascii -DPy_BUILD_CORE_MODULE binascii.c
|
||||
#cmath -DPy_BUILD_CORE_MODULE cmathmodule.c _math.c # -lm
|
||||
#math -DPy_BUILD_CORE_MODULE mathmodule.c _math.c # -lm
|
||||
#binascii binascii.c
|
||||
#cmath cmathmodule.c _math.c # -lm
|
||||
#math mathmodule.c _math.c # -lm
|
||||
#pyexpat -DHAVE_EXPAT_CONFIG_H -DXML_POOR_ENTROPY -DUSE_PYEXPAT_CAPI -I$(srcdir)/Modules/expat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c
|
||||
#unicodedata -DPy_BUILD_CORE_BUILTIN unicodedata.c
|
||||
#unicodedata unicodedata.c
|
||||
|
||||
# Modules with some UNIX dependencies -- on by default:
|
||||
# (If you have a really backward UNIX, select and socket may not be
|
||||
|
@ -286,7 +286,7 @@ time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c
|
|||
# provided by the ncurses library. e.g. on Linux, link with -lncurses
|
||||
# instead of -lcurses).
|
||||
|
||||
#_curses -DPy_BUILD_CORE_MODULE -lcurses -ltermcap _cursesmodule.c
|
||||
#_curses -lcurses -ltermcap _cursesmodule.c
|
||||
|
||||
# Wrapper for the panel library that's part of ncurses and SYSV curses.
|
||||
#_curses_panel -lpanel -lncurses _curses_panel.c
|
||||
|
@ -305,7 +305,7 @@ xxsubtype xxsubtype.c # Required for the test suite to pass!
|
|||
#_testbuffer _testbuffer.c
|
||||
#_testcapi _testcapimodule.c # CANNOT be statically compiled!
|
||||
#_testimportmultiple _testimportmultiple.c
|
||||
#_testinternalcapi -DPy_BUILD_CORE_MODULE -I$(srcdir)/Include/internal _testinternalcapi.c
|
||||
#_testinternalcapi _testinternalcapi.c
|
||||
#_testmultiphase _testmultiphase.c
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
/* ABCMeta implementation */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetState()
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
|
||||
#include "pycore_pystate.h" // _PyThreadState_GET()
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
* The blake2s_impl.c is autogenerated from blake2b_impl.c.
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_strhex.h" // _Py_strhex()
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
* any warranty. http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
|
||||
#include "impl/blake2.h"
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
* The blake2s_impl.c is autogenerated from blake2s_impl.c.
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_strhex.h" // _Py_strhex()
|
||||
|
||||
|
|
|
@ -98,6 +98,9 @@ bytes(cdata)
|
|||
* PyCField_Type
|
||||
*
|
||||
*/
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
// windows.h must be included before pycore internal headers
|
||||
#ifdef MS_WIN32
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
// windows.h must be included before pycore internal headers
|
||||
#ifdef MS_WIN32
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
// windows.h must be included before pycore internal headers
|
||||
#ifdef MS_WIN32
|
||||
|
|
|
@ -100,6 +100,10 @@ static const char PyCursesVersion[] = "2.2";
|
|||
|
||||
/* Includes */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
* the capsule are defined below */
|
||||
#define _PY_DATETIME_IMPL
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_long.h" // _PyLong_GetOne()
|
||||
#include "pycore_object.h" // _PyObject_Init()
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include <Python.h>
|
||||
#include "pycore_pystate.h" // _PyThreadState_GET()
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
#endif
|
||||
#define OPENSSL_NO_DEPRECATED 1
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -6,6 +6,10 @@ annotated by François Pinard, and converted to C by Raymond Hettinger.
|
|||
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_list.h" // _PyList_ITEMS()
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
* and as an extension module (Py_BUILD_CORE_MODULE define) on other
|
||||
* platforms. */
|
||||
|
||||
#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
|
||||
# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgs()
|
||||
#include "pycore_pystate.h" // _PyThreadState_GET()
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
/* Definitions of some C99 math library functions, for those platforms
|
||||
that don't implement these functions already. */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include <float.h>
|
||||
#include "_math.h"
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
* and as an extension module (Py_BUILD_CORE_MODULE define) on other
|
||||
* platforms. */
|
||||
|
||||
#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
|
||||
# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
/* Authors: Gregory P. Smith & Jeffrey Yasskin */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_fileutils.h"
|
||||
#if defined(HAVE_PIPE2) && !defined(_GNU_SOURCE)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetState()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
|
|
|
@ -66,6 +66,10 @@
|
|||
|
||||
/* ---------------------------------------------------------------*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetState()
|
||||
#ifdef HAVE_PROCESS_H
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_strhex.h" // _Py_strhex()
|
||||
#include "../hashlib.h"
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
/* New version supporting byte order, alignment and size options,
|
||||
character strings, and unsigned numbers */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
* C Extension module to test Python internal C APIs (Include/internal).
|
||||
*/
|
||||
|
||||
#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE)
|
||||
# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined"
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
/* Always enable assertions */
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
|
||||
/* Testing module for multi-phase initialization of extension modules (PEP 489)
|
||||
*/
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_namespace.h" // _PyNamespace_New()
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
|
||||
/* interpreters module */
|
||||
/* low-level access to interpreter primitives */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "frameobject.h"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_long.h" // _PyLong_GetOne()
|
||||
#include "structmember.h"
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
/* An array is a uniform list -- all items have the same type.
|
||||
The item type is restricted to simple C types like int or float */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
#include "Python.h"
|
||||
#include "pycore_floatobject.h" // _PyFloat_Unpack4()
|
||||
|
|
|
@ -53,6 +53,10 @@
|
|||
** Brandon Long, September 2001.
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
|
||||
/* much code borrowed from mathmodule.c */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_dtoa.h"
|
||||
#include "_math.h"
|
||||
|
|
|
@ -52,6 +52,10 @@ raised for division by zero and mod by zero.
|
|||
returned.
|
||||
*/
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_bitutils.h" // _Py_bit_length()
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgs()
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
*/
|
||||
|
||||
/* MD5 objects */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "hashlib.h"
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
*/
|
||||
|
||||
/* SHA1 objects */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "hashlib.h"
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
*/
|
||||
|
||||
/* SHA objects */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_bitutils.h" // _Py_bswap32()
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
*/
|
||||
|
||||
/* SHA objects */
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_bitutils.h" // _Py_bswap64()
|
||||
|
|
|
@ -12,6 +12,10 @@
|
|||
|
||||
------------------------------------------------------------------------ */
|
||||
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
|
||||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include "Python.h"
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
<_DebugPreprocessorDefinition Condition="$(Configuration) == 'Debug'">_DEBUG;</_DebugPreprocessorDefinition>
|
||||
<_PlatformPreprocessorDefinition>_WIN32;</_PlatformPreprocessorDefinition>
|
||||
<_PlatformPreprocessorDefinition Condition="$(Platform) == 'x64'">_WIN64;_M_X64;</_PlatformPreprocessorDefinition>
|
||||
<_PydPreprocessorDefinition Condition="$(TargetExt) == '.pyd'">Py_BUILD_CORE_MODULE;</_PydPreprocessorDefinition>
|
||||
<_Py3NamePreprocessorDefinition>PY3_DLLNAME=L"$(Py3DllName)";</_Py3NamePreprocessorDefinition>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
|
|
68
setup.py
68
setup.py
|
@ -899,8 +899,7 @@ class PyBuildExt(build_ext):
|
|||
#
|
||||
|
||||
# array objects
|
||||
self.add(Extension('array', ['arraymodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('array', ['arraymodule.c']))
|
||||
|
||||
# Context Variables
|
||||
self.add(Extension('_contextvars', ['_contextvarsmodule.c']))
|
||||
|
@ -909,14 +908,12 @@ class PyBuildExt(build_ext):
|
|||
|
||||
# math library functions, e.g. sin()
|
||||
self.add(Extension('math', ['mathmodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
extra_objects=[shared_math],
|
||||
depends=['_math.h', shared_math],
|
||||
libraries=['m']))
|
||||
|
||||
# complex math library functions
|
||||
self.add(Extension('cmath', ['cmathmodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
extra_objects=[shared_math],
|
||||
depends=['_math.h', shared_math],
|
||||
libraries=['m']))
|
||||
|
@ -933,44 +930,33 @@ class PyBuildExt(build_ext):
|
|||
# libm is needed by delta_new() that uses round() and by accum() that
|
||||
# uses modf().
|
||||
self.add(Extension('_datetime', ['_datetimemodule.c'],
|
||||
libraries=['m'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
libraries=['m']))
|
||||
# zoneinfo module
|
||||
self.add(Extension('_zoneinfo', ['_zoneinfo.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_zoneinfo', ['_zoneinfo.c']))
|
||||
# random number generator implemented in C
|
||||
self.add(Extension("_random", ["_randommodule.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_random", ["_randommodule.c"]))
|
||||
# bisect
|
||||
self.add(Extension("_bisect", ["_bisectmodule.c"]))
|
||||
# heapq
|
||||
self.add(Extension("_heapq", ["_heapqmodule.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_heapq", ["_heapqmodule.c"]))
|
||||
# C-optimized pickle replacement
|
||||
self.add(Extension("_pickle", ["_pickle.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_pickle", ["_pickle.c"]))
|
||||
# _json speedups
|
||||
self.add(Extension("_json", ["_json.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_json", ["_json.c"]))
|
||||
|
||||
# profiler (_lsprof is for cProfile.py)
|
||||
self.add(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']))
|
||||
# static Unicode character database
|
||||
self.add(Extension('unicodedata', ['unicodedata.c'],
|
||||
depends=['unicodedata_db.h', 'unicodename_db.h'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
depends=['unicodedata_db.h', 'unicodename_db.h']))
|
||||
# _opcode module
|
||||
self.add(Extension('_opcode', ['_opcode.c']))
|
||||
# asyncio speedups
|
||||
self.add(Extension("_asyncio", ["_asynciomodule.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_asyncio", ["_asynciomodule.c"]))
|
||||
# _abc speedups
|
||||
self.add(Extension("_abc", ["_abc.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_abc", ["_abc.c"]))
|
||||
# _queue module
|
||||
self.add(Extension("_queue", ["_queuemodule.c"],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension("_queue", ["_queuemodule.c"]))
|
||||
# _statistics module
|
||||
self.add(Extension("_statistics", ["_statisticsmodule.c"]))
|
||||
# _typing module
|
||||
|
@ -1012,8 +998,7 @@ class PyBuildExt(build_ext):
|
|||
self.add(Extension('syslog', ['syslogmodule.c']))
|
||||
|
||||
# Python interface to subinterpreter C-API.
|
||||
self.add(Extension('_xxsubinterpreters', ['_xxsubinterpretersmodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_xxsubinterpreters', ['_xxsubinterpretersmodule.c']))
|
||||
|
||||
#
|
||||
# Here ends the simple stuff. From here on, modules need certain
|
||||
|
@ -1036,8 +1021,7 @@ class PyBuildExt(build_ext):
|
|||
self.add(Extension('_csv', ['_csv.c']))
|
||||
|
||||
# POSIX subprocess module helper.
|
||||
self.add(Extension('_posixsubprocess', ['_posixsubprocess.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_posixsubprocess', ['_posixsubprocess.c']))
|
||||
|
||||
def detect_test_extensions(self):
|
||||
# Python C API test module
|
||||
|
@ -1045,8 +1029,7 @@ class PyBuildExt(build_ext):
|
|||
depends=['testcapi_long.h']))
|
||||
|
||||
# Python Internal C API test module
|
||||
self.add(Extension('_testinternalcapi', ['_testinternalcapi.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_testinternalcapi', ['_testinternalcapi.c']))
|
||||
|
||||
# Python PEP-3118 (buffer protocol) test module
|
||||
self.add(Extension('_testbuffer', ['_testbuffer.c']))
|
||||
|
@ -1055,8 +1038,7 @@ class PyBuildExt(build_ext):
|
|||
self.add(Extension('_testimportmultiple', ['_testimportmultiple.c']))
|
||||
|
||||
# Test multi-phase extension module init (PEP 489)
|
||||
self.add(Extension('_testmultiphase', ['_testmultiphase.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
|
||||
self.add(Extension('_testmultiphase', ['_testmultiphase.c']))
|
||||
|
||||
# Fuzz tests.
|
||||
self.add(Extension('_xxtestfuzz',
|
||||
|
@ -1187,7 +1169,6 @@ class PyBuildExt(build_ext):
|
|||
if curses_library.startswith('ncurses'):
|
||||
curses_libs = [curses_library]
|
||||
self.add(Extension('_curses', ['_cursesmodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
include_dirs=curses_includes,
|
||||
define_macros=curses_defines,
|
||||
libraries=curses_libs))
|
||||
|
@ -1202,7 +1183,6 @@ class PyBuildExt(build_ext):
|
|||
curses_libs = ['curses']
|
||||
|
||||
self.add(Extension('_curses', ['_cursesmodule.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
define_macros=curses_defines,
|
||||
libraries=curses_libs))
|
||||
else:
|
||||
|
@ -1722,7 +1702,7 @@ class PyBuildExt(build_ext):
|
|||
|
||||
# Helper module for various ascii-encoders. Uses zlib for an optimized
|
||||
# crc32 if we have it. Otherwise binascii uses its own.
|
||||
extra_compile_args = ['-DPy_BUILD_CORE_MODULE']
|
||||
extra_compile_args = []
|
||||
if have_zlib:
|
||||
extra_compile_args.append('-DUSE_ZLIB_CRC32')
|
||||
libraries = ['z']
|
||||
|
@ -2230,7 +2210,7 @@ class PyBuildExt(build_ext):
|
|||
self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
|
||||
|
||||
include_dirs = []
|
||||
extra_compile_args = ['-DPy_BUILD_CORE_MODULE']
|
||||
extra_compile_args = []
|
||||
extra_link_args = []
|
||||
sources = ['_ctypes/_ctypes.c',
|
||||
'_ctypes/callbacks.c',
|
||||
|
@ -2324,7 +2304,7 @@ class PyBuildExt(build_ext):
|
|||
|
||||
def detect_decimal(self):
|
||||
# Stefan Krah's _decimal module
|
||||
extra_compile_args = ['-DPy_BUILD_CORE_MODULE']
|
||||
extra_compile_args = []
|
||||
undef_macros = []
|
||||
if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
include_dirs = []
|
||||
|
@ -2482,7 +2462,6 @@ class PyBuildExt(build_ext):
|
|||
library_dirs=openssl_libdirs,
|
||||
libraries=openssl_libs,
|
||||
runtime_library_dirs=runtime_library_dirs,
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
)
|
||||
|
||||
# This static linking is NOT OFFICIALLY SUPPORTED.
|
||||
|
@ -2545,28 +2524,24 @@ class PyBuildExt(build_ext):
|
|||
self.add(Extension(
|
||||
'_sha256', ['sha256module.c'],
|
||||
depends=['hashlib.h'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
if "sha512" in configured:
|
||||
self.add(Extension(
|
||||
'_sha512', ['sha512module.c'],
|
||||
depends=['hashlib.h'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
if "md5" in configured:
|
||||
self.add(Extension(
|
||||
'_md5', ['md5module.c'],
|
||||
depends=['hashlib.h'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
if "sha1" in configured:
|
||||
self.add(Extension(
|
||||
'_sha1', ['sha1module.c'],
|
||||
depends=['hashlib.h'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
if "blake2" in configured:
|
||||
|
@ -2582,7 +2557,6 @@ class PyBuildExt(build_ext):
|
|||
'_blake2/blake2s_impl.c'
|
||||
],
|
||||
depends=blake2_deps,
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
if "sha3" in configured:
|
||||
|
@ -2594,7 +2568,6 @@ class PyBuildExt(build_ext):
|
|||
'_sha3',
|
||||
['_sha3/sha3module.c'],
|
||||
depends=sha3_deps,
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'],
|
||||
))
|
||||
|
||||
def detect_nis(self):
|
||||
|
@ -2750,8 +2723,7 @@ def main():
|
|||
'install_lib': PyBuildInstallLib},
|
||||
# The struct module is defined here, because build_ext won't be
|
||||
# called unless there's at least one extension module defined.
|
||||
ext_modules=[Extension('_struct', ['_struct.c'],
|
||||
extra_compile_args=['-DPy_BUILD_CORE_MODULE'])],
|
||||
ext_modules=[Extension('_struct', ['_struct.c'])],
|
||||
|
||||
# If you change the scripts installed here, you also need to
|
||||
# check the PyBuildScripts command above, and change the links
|
||||
|
|
Loading…
Reference in New Issue