From 87c6cf9aa7cebac3c544067e690c2ad7ce18b772 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 28 Apr 2022 14:02:45 +0200 Subject: [PATCH] gh-89479: Export _Py_GetSpecializationStats() internal function (#92011) When Python is built with "./configure --enable-pystats" (if the Py_STATS macro is defined), the _Py_GetSpecializationStats() function must be exported, since it's used by the _opcode extension which is built as a shared library. --- Doc/using/configure.rst | 2 +- Include/internal/pycore_code.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Doc/using/configure.rst b/Doc/using/configure.rst index 057efa3bd07..2321d24663f 100644 --- a/Doc/using/configure.rst +++ b/Doc/using/configure.rst @@ -139,7 +139,7 @@ General Options The statistics will be dumped to a arbitrary (probably unique) file in ``/tmp/py_stats/``, or ``C:\temp\py_stats\`` on Windows. - Use ``Tools//summarize_stats.py`` to read the stats. + Use ``Tools/scripts/summarize_stats.py`` to read the stats. .. versionadded:: 3.11 diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 3059db465e7..8a599c4246c 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -316,7 +316,8 @@ extern PyStats _py_stats; extern void _Py_PrintSpecializationStats(int to_file); -extern PyObject* _Py_GetSpecializationStats(void); +// Used by the _opcode extension which is built as a shared library +PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); #else #define STAT_INC(opname, name) ((void)0) @@ -324,7 +325,7 @@ extern PyObject* _Py_GetSpecializationStats(void); #define OPCODE_EXE_INC(opname) ((void)0) #define CALL_STAT_INC(name) ((void)0) #define OBJECT_STAT_INC(name) ((void)0) -#endif +#endif // !Py_STATS // Cache values are only valid in memory, so use native endianness. #ifdef WORDS_BIGENDIAN