diff --git a/Include/internal/pycore_atomic.h b/Include/internal/pycore_atomic.h index 336bc3fec27..1d5c5621677 100644 --- a/Include/internal/pycore_atomic.h +++ b/Include/internal/pycore_atomic.h @@ -8,8 +8,7 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "dynamic_annotations.h" - +#include "dynamic_annotations.h" /* _Py_ANNOTATE_MEMORY_ORDER */ #include "pyconfig.h" #if defined(HAVE_STD_ATOMIC) diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index 30cd6c9e09e..65537b1bae4 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -8,9 +8,9 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_atomic.h" -#include "pycore_pystate.h" -#include "pythread.h" +/* Forward declarations */ +typedef struct pyruntimestate _PyRuntimeState; +struct _ceval_runtime_state; PyAPI_FUNC(void) _Py_FinishPendingCalls(_PyRuntimeState *runtime); PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *); diff --git a/Include/internal/pycore_context.h b/Include/internal/pycore_context.h index 5e1ba0d0393..f665ad5c115 100644 --- a/Include/internal/pycore_context.h +++ b/Include/internal/pycore_context.h @@ -5,7 +5,7 @@ # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_hamt.h" +#include "pycore_hamt.h" /* PyHamtObject */ struct _pycontextobject { PyObject_HEAD diff --git a/Include/internal/pycore_gil.h b/Include/internal/pycore_gil.h index 7de316397b1..8ebad37b686 100644 --- a/Include/internal/pycore_gil.h +++ b/Include/internal/pycore_gil.h @@ -8,8 +8,8 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_condvar.h" -#include "pycore_atomic.h" +#include "pycore_atomic.h" /* _Py_atomic_address */ +#include "pycore_condvar.h" /* PyCOND_T */ #ifndef Py_HAVE_CONDVAR # error You need either a POSIX-compatible or a Windows system! diff --git a/Include/internal/pycore_initconfig.h b/Include/internal/pycore_initconfig.h index 40831c44b2f..4a1a111af68 100644 --- a/Include/internal/pycore_initconfig.h +++ b/Include/internal/pycore_initconfig.h @@ -8,7 +8,8 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_pystate.h" /* _PyRuntimeState */ +/* Forward declaration */ +typedef struct pyruntimestate _PyRuntimeState; /* --- PyStatus ----------------------------------------------- */ @@ -60,7 +61,7 @@ PyAPI_FUNC(PyObject*) _PyWideStringList_AsList(const PyWideStringList *list); /* --- _PyArgv ---------------------------------------------------- */ -typedef struct { +typedef struct _PyArgv { Py_ssize_t argc; int use_bytes_argv; char * const *bytes_argv; diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 81548f81919..500078d4a1d 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -8,7 +8,7 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_pystate.h" /* _PyRuntime */ +#include "pycore_pystate.h" /* _PyRuntime.gc */ PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type); PyAPI_FUNC(int) _PyUnicode_CheckConsistency(PyObject *op, int check_content); diff --git a/Include/internal/pycore_pylifecycle.h b/Include/internal/pycore_pylifecycle.h index b0a98f5d259..d6f9ecc8b48 100644 --- a/Include/internal/pycore_pylifecycle.h +++ b/Include/internal/pycore_pylifecycle.h @@ -8,8 +8,9 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pycore_initconfig.h" /* _PyArgv */ -#include "pycore_pystate.h" /* _PyRuntimeState */ +/* Forward declarations */ +typedef struct _PyArgv _PyArgv; +typedef struct pyruntimestate _PyRuntimeState; /* True if the main interpreter thread exited due to an unhandled * KeyboardInterrupt exception, suggesting the user pressed ^C. */ diff --git a/Include/internal/pycore_pymem.h b/Include/internal/pycore_pymem.h index 22677d37385..cba4b235c3a 100644 --- a/Include/internal/pycore_pymem.h +++ b/Include/internal/pycore_pymem.h @@ -8,8 +8,7 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "objimpl.h" -#include "pymem.h" +#include "pymem.h" /* PyMemAllocatorName */ /* GC runtime state */ diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h index 8e5a022b4a0..91003dbead0 100644 --- a/Include/internal/pycore_pystate.h +++ b/Include/internal/pycore_pystate.h @@ -8,16 +8,9 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "cpython/initconfig.h" -#include "fileobject.h" -#include "pystate.h" -#include "pythread.h" -#include "sysmodule.h" - -#include "pycore_gil.h" /* _gil_runtime_state */ -#include "pycore_pathconfig.h" -#include "pycore_pymem.h" -#include "pycore_warnings.h" +#include "pycore_gil.h" /* struct _gil_runtime_state */ +#include "pycore_pymem.h" /* struct _gc_runtime_state */ +#include "pycore_warnings.h" /* struct _warnings_runtime_state */ /* ceval state */ diff --git a/Include/internal/pycore_traceback.h b/Include/internal/pycore_traceback.h index bf4d7fe5851..8e58184c87e 100644 --- a/Include/internal/pycore_traceback.h +++ b/Include/internal/pycore_traceback.h @@ -8,7 +8,8 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "pystate.h" /* PyInterpreterState */ +/* Forward declaration */ +typedef struct _is PyInterpreterState; /* Write the Python traceback into the file 'fd'. For example: diff --git a/Include/internal/pycore_tupleobject.h b/Include/internal/pycore_tupleobject.h index 9fcfc5c6ec7..f95f16c0ed0 100644 --- a/Include/internal/pycore_tupleobject.h +++ b/Include/internal/pycore_tupleobject.h @@ -8,7 +8,7 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "tupleobject.h" +#include "tupleobject.h" /* _PyTuple_CAST() */ #define _PyTuple_ITEMS(op) (_PyTuple_CAST(op)->ob_item) PyAPI_FUNC(PyObject *) _PyTuple_FromArray(PyObject *const *, Py_ssize_t); diff --git a/Include/internal/pycore_warnings.h b/Include/internal/pycore_warnings.h index 73e5350aff1..9a72526279b 100644 --- a/Include/internal/pycore_warnings.h +++ b/Include/internal/pycore_warnings.h @@ -8,8 +8,6 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -#include "object.h" - struct _warnings_runtime_state { /* Both 'filters' and 'onceregistry' can be set in warnings.py; get_warnings_attr() will reset these variables accordingly. */ diff --git a/Modules/main.c b/Modules/main.c index 929417fe775..0288f17324d 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -2,6 +2,7 @@ #include "Python.h" #include "pycore_initconfig.h" +#include "pycore_pathconfig.h" #include "pycore_pylifecycle.h" #include "pycore_pymem.h" #include "pycore_pystate.h" diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 55b25191817..0526225ca3e 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -40,9 +40,10 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define PY_SSIZE_T_CLEAN #include "Python.h" -#include "pycore_initconfig.h" #include "pycore_fileutils.h" +#include "pycore_initconfig.h" #include "pycore_object.h" +#include "pycore_pathconfig.h" #include "pycore_pylifecycle.h" #include "pycore_pystate.h" #include "ucnhash.h" diff --git a/PC/getpathp.c b/PC/getpathp.c index 04f24d986f6..b17c002f25c 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -80,7 +80,8 @@ #include "Python.h" -#include "pycore_initconfig.h" +#include "pycore_initconfig.h" /* PyStatus */ +#include "pycore_pathconfig.h" /* _PyPathConfig */ #include "pycore_pystate.h" #include "osdefs.h" #include diff --git a/Python/import.c b/Python/import.c index 6eb079d2a47..cbd0fa86fb5 100644 --- a/Python/import.c +++ b/Python/import.c @@ -4,6 +4,7 @@ #include "Python-ast.h" #undef Yield /* undefine macro conflicting with */ +#include "pycore_initconfig.h" #include "pycore_pyerrors.h" #include "pycore_pyhash.h" #include "pycore_pylifecycle.h"