diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 6596250afef06c..32c3d62e9b2445 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -194,6 +194,14 @@ complete listing. Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function be inlined. +.. c:macro:: Py_LOCAL_SYMBOL + + Macro used to declare a symbol as local to the shared library (hidden). + On supported platforms, it ensures the symbol is not exported. + + On compatible versions of GCC/Clang, it + expands to ``__attribute__((visibility("hidden")))``. + .. c:macro:: Py_MAX(x, y) Return the maximum value between ``x`` and ``y``. @@ -340,6 +348,38 @@ complete listing. sizeof(array) / sizeof((array)[0]) +.. c:macro:: Py_EXPORTED_SYMBOL + + Macro used to declare a symbol (function or data) as exported. + On Windows, this expands to ``__declspec(dllexport)``. + On compatible versions of GCC/Clang, it + expands to ``__attribute__((visibility("default")))``. + This macro is for defining the C API itself; extension modules should not use it. + + +.. c:macro:: Py_IMPORTED_SYMBOL + + Macro used to declare a symbol as imported. + On Windows, this expands to ``__declspec(dllimport)``. + This macro is for defining the C API itself; extension modules should not use it. + + +.. c:macro:: PyAPI_FUNC(type) + + Macro used by CPython to declare a function as part of the C API. + Its expansion depends on the platform and build configuration. + This macro is intended for defining CPython's C API itself; + extension modules should not use it for their own symbols. + + +.. c:macro:: PyAPI_DATA(type) + + Macro used by CPython to declare a public global variable as part of the C API. + Its expansion depends on the platform and build configuration. + This macro is intended for defining CPython's C API itself; + extension modules should not use it for their own symbols. + + .. _api-objects: Objects, Types and Reference Counts diff --git a/Tools/check-c-api-docs/ignored_c_api.txt b/Tools/check-c-api-docs/ignored_c_api.txt index 13e3eac6fbc1bf..401cf0c0514ce1 100644 --- a/Tools/check-c-api-docs/ignored_c_api.txt +++ b/Tools/check-c-api-docs/ignored_c_api.txt @@ -18,11 +18,6 @@ Py_HasFileSystemDefaultEncoding Py_UTF8Mode # pyhash.h Py_HASH_EXTERNAL -# exports.h -PyAPI_DATA -Py_EXPORTED_SYMBOL -Py_IMPORTED_SYMBOL -Py_LOCAL_SYMBOL # modsupport.h PyABIInfo_FREETHREADING_AGNOSTIC # moduleobject.h