diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-04-17 21:02:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-17 21:02:26 (GMT) |
commit | 5c75f37d473140f0e0b7d9bf3a8c08343447ded1 (patch) | |
tree | 9c2ce8ff92bf17d73dfe14c7d7027a36693b590d /Modules/_pickle.c | |
parent | 3092d6b2630e4d2bd200fbc3231c27a7cba4d6b2 (diff) | |
download | cpython-5c75f37d473140f0e0b7d9bf3a8c08343447ded1.zip cpython-5c75f37d473140f0e0b7d9bf3a8c08343447ded1.tar.gz cpython-5c75f37d473140f0e0b7d9bf3a8c08343447ded1.tar.bz2 |
bpo-36635: Change pyport.h for Py_BUILD_CORE_MODULE define (GH-12853)
Change PyAPI_FUNC(type), PyAPI_DATA(type) and PyMODINIT_FUNC macros
of pyport.h when Py_BUILD_CORE_MODULE is defined.
The Py_BUILD_CORE_MODULE define must be now be used to build a C
extension as a dynamic library accessing Python internals: export the
PyInit_xxx() function in DLL exports on Windows.
Changes:
* Py_BUILD_CORE_BUILTIN and Py_BUILD_CORE_MODULE now imply
Py_BUILD_CORE directy in pyport.h.
* ceval.c compilation now fails with an error if Py_BUILD_CORE is not
defined, just to ensure that Python is build with the correct
defines.
* setup.py now compiles _pickle.c with Py_BUILD_CORE_MODULE define.
* setup.py compiles _json.c with Py_BUILD_CORE_MODULE define, rather
than Py_BUILD_CORE_BUILTIN define
* PCbuild/pythoncore.vcxproj: Add Py_BUILD_CORE_BUILTIN define.
Diffstat (limited to 'Modules/_pickle.c')
-rw-r--r-- | Modules/_pickle.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 2b97294..f956a38 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -1,8 +1,11 @@ +/* pickle accelerator C extensor: _pickle module. + * + * It is built as a built-in module (Py_BUILD_CORE_BUILTIN define) on Windows + * and as an extension module (Py_BUILD_CORE_MODULE define) on other + * platforms. */ -/* Core extension modules are built-in on some platforms (e.g. Windows). */ -#ifdef Py_BUILD_CORE -#define Py_BUILD_CORE_BUILTIN -#undef Py_BUILD_CORE +#if !defined(Py_BUILD_CORE_BUILTIN) && !defined(Py_BUILD_CORE_MODULE) +# error "Py_BUILD_CORE_BUILTIN or Py_BUILD_CORE_MODULE must be defined" #endif #include "Python.h" |