diff options
author | Christian Heimes <christian@python.org> | 2021-10-22 13:36:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-22 13:36:28 (GMT) |
commit | 03e9f5dc751b8c441a85f428abc3f432ffe46345 (patch) | |
tree | 3ea47646a3402f2ad8bdda2366bd9a214899ff44 | |
parent | 86dfb55d2e091cf633dbd7aabcd49d96fb1f9d81 (diff) | |
download | cpython-03e9f5dc751b8c441a85f428abc3f432ffe46345.zip cpython-03e9f5dc751b8c441a85f428abc3f432ffe46345.tar.gz cpython-03e9f5dc751b8c441a85f428abc3f432ffe46345.tar.bz2 |
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>
40 files changed, 182 insertions, 86 deletions
diff --git a/Misc/NEWS.d/next/Build/2021-10-22-14-00-44.bpo-43974.HHZtbx.rst b/Misc/NEWS.d/next/Build/2021-10-22-14-00-44.bpo-43974.HHZtbx.rst new file mode 100644 index 0000000..728a095 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2021-10-22-14-00-44.bpo-43974.HHZtbx.rst @@ -0,0 +1,2 @@ +``setup.py`` no longer defines ``Py_BUILD_CORE_MODULE``. Instead every +module, that uses the internal API, defines the macro. diff --git a/Modules/Setup b/Modules/Setup index a4440df..a5b1a7b 100644 --- a/Modules/Setup +++ b/Modules/Setup @@ -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 diff --git a/Modules/_abc.c b/Modules/_abc.c index 8aa6835..b7465c3 100644 --- a/Modules/_abc.c +++ b/Modules/_abc.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() diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index adc5ff9..8386a50 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -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() diff --git a/Modules/_blake2/blake2b_impl.c b/Modules/_blake2/blake2b_impl.c index b16324e..e1421dd 100644 --- a/Modules/_blake2/blake2b_impl.c +++ b/Modules/_blake2/blake2b_impl.c @@ -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() diff --git a/Modules/_blake2/blake2module.c b/Modules/_blake2/blake2module.c index 631de2c..3b6bba2 100644 --- a/Modules/_blake2/blake2module.c +++ b/Modules/_blake2/blake2module.c @@ -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" diff --git a/Modules/_blake2/blake2s_impl.c b/Modules/_blake2/blake2s_impl.c index 6b31a36..763c017 100644 --- a/Modules/_blake2/blake2s_impl.c +++ b/Modules/_blake2/blake2s_impl.c @@ -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() diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index f8940fd..96078c7 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -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 diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c index c24f04c..0f7789a 100644 --- a/Modules/_ctypes/callbacks.c +++ b/Modules/_ctypes/callbacks.c @@ -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 diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index 2cfd657..515b280 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -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 diff --git a/Modules/_ctypes/stgdict.c b/Modules/_ctypes/stgdict.c index 43669d7..6c1917b 100644 --- a/Modules/_ctypes/stgdict.c +++ b/Modules/_ctypes/stgdict.c @@ -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 diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 511073f..3770a03 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -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" diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index e54a01b..67441eb 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -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() diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c index 237edd5..7fc7315 100644 --- a/Modules/_decimal/_decimal.c +++ b/Modules/_decimal/_decimal.c @@ -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() diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c index b4ba60b..1249191 100644 --- a/Modules/_hashopenssl.c +++ b/Modules/_hashopenssl.c @@ -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" diff --git a/Modules/_heapqmodule.c b/Modules/_heapqmodule.c index 20468c2..3dbaaa0 100644 --- a/Modules/_heapqmodule.c +++ b/Modules/_heapqmodule.c @@ -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() diff --git a/Modules/_json.c b/Modules/_json.c index 6f68c1f..1c9c506 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -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" diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c index 2e27afc..ff499aa 100644 --- a/Modules/_lsprof.c +++ b/Modules/_lsprof.c @@ -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() diff --git a/Modules/_math.c b/Modules/_math.c index 68e3a23..c1936a1 100644 --- a/Modules/_math.c +++ b/Modules/_math.c @@ -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" diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 53ab571..0d9e57a 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -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" diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index 63207de..de599f8 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -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) diff --git a/Modules/_queuemodule.c b/Modules/_queuemodule.c index eb61349..413387f 100644 --- a/Modules/_queuemodule.c +++ b/Modules/_queuemodule.c @@ -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 diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index 65d41f4..5243d5a 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -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 diff --git a/Modules/_sha3/sha3module.c b/Modules/_sha3/sha3module.c index a033c4e..bfa9661 100644 --- a/Modules/_sha3/sha3module.c +++ b/Modules/_sha3/sha3module.c @@ -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" diff --git a/Modules/_struct.c b/Modules/_struct.c index a8003a9..210dbdc 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -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" diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c index 3ba9396..1ca0606 100644 --- a/Modules/_testinternalcapi.c +++ b/Modules/_testinternalcapi.c @@ -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 */ diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c index 2d25e16..ee69c42 100644 --- a/Modules/_testmultiphase.c +++ b/Modules/_testmultiphase.c @@ -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() diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c index b5c0a63..3f68376 100644 --- a/Modules/_xxsubinterpretersmodule.c +++ b/Modules/_xxsubinterpretersmodule.c @@ -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" diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c index 04fa094..cac3470 100644 --- a/Modules/_zoneinfo.c +++ b/Modules/_zoneinfo.c @@ -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" diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 5e57fe1..030ede5 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -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() diff --git a/Modules/binascii.c b/Modules/binascii.c index 7037d34..fec0d82 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -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" diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c index 0f22049..0e0489c 100644 --- a/Modules/cmathmodule.c +++ b/Modules/cmathmodule.c @@ -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" diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index 4fac0cc..6c12a4e 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -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() diff --git a/Modules/md5module.c b/Modules/md5module.c index 4d03f6b..48b11e0 100644 --- a/Modules/md5module.c +++ b/Modules/md5module.c @@ -15,6 +15,9 @@ */ /* MD5 objects */ +#ifndef Py_BUILD_CORE_BUILTIN +# define Py_BUILD_CORE_MODULE 1 +#endif #include "Python.h" #include "hashlib.h" diff --git a/Modules/sha1module.c b/Modules/sha1module.c index 153bc12..9153557 100644 --- a/Modules/sha1module.c +++ b/Modules/sha1module.c @@ -15,6 +15,9 @@ */ /* SHA1 objects */ +#ifndef Py_BUILD_CORE_BUILTIN +# define Py_BUILD_CORE_MODULE 1 +#endif #include "Python.h" #include "hashlib.h" diff --git a/Modules/sha256module.c b/Modules/sha256module.c index 5858071..17ee866 100644 --- a/Modules/sha256module.c +++ b/Modules/sha256module.c @@ -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() diff --git a/Modules/sha512module.c b/Modules/sha512module.c index e50b69b..bf4408b 100644 --- a/Modules/sha512module.c +++ b/Modules/sha512module.c @@ -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() diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index e863e53..bdbddcf 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -12,6 +12,10 @@ ------------------------------------------------------------------------ */ +#ifndef Py_BUILD_CORE_BUILTIN +# define Py_BUILD_CORE_MODULE 1 +#endif + #define PY_SSIZE_T_CLEAN #include "Python.h" diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index d492b71..bbcabb5 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -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> @@ -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 |