From: Petr Viktorin Date: Tue, 23 Feb 2021 12:23:56 +0000 (+0100) Subject: bpo-43239: Export PyCFunction_New with PyAPI_FUNC (GH-24551) X-Git-Tag: v3.10.0a6~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7bb1cafa4e3d648669212ea4c6d11d6eafc6da23;p=thirdparty%2FPython%2Fcpython.git bpo-43239: Export PyCFunction_New with PyAPI_FUNC (GH-24551) --- diff --git a/Include/methodobject.h b/Include/methodobject.h index 5d06d7691ba3..7aa4e41ccca1 100644 --- a/Include/methodobject.h +++ b/Include/methodobject.h @@ -41,7 +41,13 @@ struct PyMethodDef { }; typedef struct PyMethodDef PyMethodDef; +/* PyCFunction_New is declared as a function for stable ABI (declaration is + * needed for e.g. GCC with -fvisibility=hidden), but redefined as a macro + * that calls PyCFunction_NewEx. */ +PyAPI_FUNC(PyObject *) PyCFunction_New(PyMethodDef *, PyObject *); #define PyCFunction_New(ML, SELF) PyCFunction_NewEx((ML), (SELF), NULL) + +/* PyCFunction_NewEx is similar: on 3.9+, this calls PyCMethod_New. */ PyAPI_FUNC(PyObject *) PyCFunction_NewEx(PyMethodDef *, PyObject *, PyObject *); diff --git a/Misc/NEWS.d/next/C API/2021-02-16-17-30-16.bpo-43239.FQqOGz.rst b/Misc/NEWS.d/next/C API/2021-02-16-17-30-16.bpo-43239.FQqOGz.rst new file mode 100644 index 000000000000..cded580ae4bc --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-02-16-17-30-16.bpo-43239.FQqOGz.rst @@ -0,0 +1,2 @@ +The :c:func:`PyCFunction_New` function is now exported in the ABI when +compiled with ``-fvisibility=hidden``.