-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) #29157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
``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``. Signed-off-by: Christian Heimes <christian@python.org>
Makefile and makesetup already define ``Py_BUILD_CORE_BUILTIN`` and include ``Modules/internal`` for us.
vstinner
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I compared the list of modified files to setup.py. It seems like the PR is exhausitve.
Oh. I didn't know that Modules/makesetup already uses the correct flags for build C extensions depending if it's before or after *shared* in Modules/Setup:
PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE
| @@ -0,0 +1,2 @@ | |||
| ``setup.py`` no longer defines ``Py_BUILD_CORE_MODULE``. Instead every | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You may also mention Modules/Setup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh. I didn't know that Modules/makesetup already uses the correct flags for build C extensions depending if it's before or after
*shared*in Modules/Setup:
There is a problem with *shared*. I created https://bugs.python.org/issue45571 to track the issue.
setup.pyno longer definesPy_BUILD_CORE_MODULE. Instead everymodule defines the macro before
#include "Python.h"unlessPy_BUILD_CORE_BUILTINis already defined.Py_BUILD_CORE_BUILTINis defined for every module that is built byModules/Setup.The PR also simplifies
Modules/Setup.Makefileandmakesetupalready define
Py_BUILD_CORE_BUILTINand includeModules/internalfor us.
Signed-off-by: Christian Heimes christian@python.org
https://bugs.python.org/issue43974