Status: only pyport. and tupleobject.h use Py_BUILD_CORE, and only tupleobject.h uses "#ifdef Py_BUILD_CORE" (contains code specific to internals).
$ grep Py_BUILD_CORE Include/*.h
Include/pyport.h:# if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
Include/pyport.h:# else /* Py_BUILD_CORE */
Include/pyport.h:# endif /* Py_BUILD_CORE */
Include/pyport.h:#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
Include/pyport.h:#endif /* Py_BUILD_CORE */
Include/tupleobject.h:#ifdef Py_BUILD_CORE
tupleobject.c:
#ifdef Py_BUILD_CORE
# define _PyTuple_ITEMS(op) ((((PyTupleObject *)(op))->ob_item))
#endif
I added this macro in bpo-35199, to prepare the C code for a new C API hiding implementation details: see bpo-35206. |