diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index e8d64a80a69..a6e30c77c55 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -565,6 +565,13 @@ Porting to Python 3.11 ``exit()`` and ``abort()``. (Contributed by Victor Stinner in :issue:`45434`.) +* The ```` header file no longer includes ```` if the + ``Py_LIMITED_API`` macro is defined. Functions expecting ``FILE*`` are + excluded from the limited C API (:pep:`384`). C extensions using + ```` must now include it explicitly. The system ```` + header provides functions like ``printf()`` and ``fopen()``. + (Contributed by Victor Stinner in :issue:`45434`.) + Deprecated ---------- diff --git a/Include/Python.h b/Include/Python.h index 4f62103e302..dc5c9b8e638 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -16,12 +16,10 @@ # define _SGI_MP_SOURCE #endif -#include // NULL, FILE* -#ifndef NULL -# error "Python.h requires that stdio.h define NULL." -#endif - #include // memcpy() +#ifndef Py_LIMITED_API +# include // FILE* +#endif #ifdef HAVE_ERRNO_H # include // errno #endif @@ -29,8 +27,7 @@ # include #endif #ifdef HAVE_STDDEF_H - // For size_t -# include +# include // size_t #endif #include // assert() diff --git a/Misc/NEWS.d/next/C API/2021-10-15-00-30-45.bpo-45434.XLtsbK.rst b/Misc/NEWS.d/next/C API/2021-10-15-00-30-45.bpo-45434.XLtsbK.rst new file mode 100644 index 00000000000..4a06635d179 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-10-15-00-30-45.bpo-45434.XLtsbK.rst @@ -0,0 +1,5 @@ +The ```` header file no longer includes ```` if the +``Py_LIMITED_API`` macro is defined. Functions expecting ``FILE*`` are excluded +from the limited C API (:pep:`384`). C extensions using ```` must now +include it explicitly. +Patch by Victor Stinner.