From: Petr Viktorin Date: Fri, 8 Apr 2022 12:35:11 +0000 (+0200) Subject: Add feature macro PY_HAVE_THREAD_NATIVE_ID to the stable ABI definition (GH-32365) X-Git-Tag: v3.11.0b1~418 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1c2fddddae5ce27be354b519f8ae51886b4dd9f4;p=thirdparty%2FPython%2Fcpython.git Add feature macro PY_HAVE_THREAD_NATIVE_ID to the stable ABI definition (GH-32365) --- diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat index 7f42f9c12de7..849a2cfd51f2 100644 --- a/Doc/data/stable_abi.dat +++ b/Doc/data/stable_abi.dat @@ -625,7 +625,7 @@ function,PyThread_free_lock,3.2,, function,PyThread_get_key_value,3.2,, function,PyThread_get_stacksize,3.2,, function,PyThread_get_thread_ident,3.2,, -function,PyThread_get_thread_native_id,3.2,, +function,PyThread_get_thread_native_id,3.2,on platforms with native thread IDs, function,PyThread_init_thread,3.2,, function,PyThread_release_lock,3.2,, function,PyThread_set_key_value,3.2,, diff --git a/Lib/test/test_stable_abi_ctypes.py b/Lib/test/test_stable_abi_ctypes.py index a49235b81c1b..efd3b1b7cd2d 100644 --- a/Lib/test/test_stable_abi_ctypes.py +++ b/Lib/test/test_stable_abi_ctypes.py @@ -615,7 +615,6 @@ SYMBOL_NAMES = ( "PyThread_get_key_value", "PyThread_get_stacksize", "PyThread_get_thread_ident", - "PyThread_get_thread_native_id", "PyThread_init_thread", "PyThread_release_lock", "PyThread_set_key_value", diff --git a/Misc/NEWS.d/next/C API/2022-04-06-16-29-14.bpo-47169.wVv2bT.rst b/Misc/NEWS.d/next/C API/2022-04-06-16-29-14.bpo-47169.wVv2bT.rst new file mode 100644 index 000000000000..66eac052391e --- /dev/null +++ b/Misc/NEWS.d/next/C API/2022-04-06-16-29-14.bpo-47169.wVv2bT.rst @@ -0,0 +1,2 @@ +:c:func:`PyThread_get_thread_native_id` is excluded from the stable ABI on +platforms where it doesn't exist (like Solaris). diff --git a/Misc/stable_abi.txt b/Misc/stable_abi.txt index 04d22603cc19..4864bf319a76 100644 --- a/Misc/stable_abi.txt +++ b/Misc/stable_abi.txt @@ -1787,6 +1787,7 @@ function PyThread_get_stacksize function PyThread_get_thread_ident added 3.2 function PyThread_get_thread_native_id + ifdef PY_HAVE_THREAD_NATIVE_ID added 3.2 function PyThread_init_thread added 3.2 diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py index feca9a2ba5a4..9b90e344977f 100755 --- a/Tools/scripts/stable_abi.py +++ b/Tools/scripts/stable_abi.py @@ -49,8 +49,17 @@ IFDEF_DOC_NOTES = { 'MS_WINDOWS': 'on Windows', 'HAVE_FORK': 'on platforms with fork()', 'USE_STACKCHECK': 'on platforms with USE_STACKCHECK', + 'PY_HAVE_THREAD_NATIVE_ID': 'on platforms with native thread IDs', } +# To generate the DLL definition, we need to know which feature macros are +# defined on Windows. On all platforms. +# Best way to do that is to hardcode the list (and later test in on Windows). +WINDOWS_IFDEFS = frozenset({ + 'MS_WINDOWS', + 'PY_HAVE_THREAD_NATIVE_ID', +}) + # The stable ABI manifest (Misc/stable_abi.txt) exists only to fill the # following dataclasses. # Feel free to change its syntax (and the `parse_manifest` function) @@ -232,7 +241,7 @@ def gen_python3dll(manifest, args, outfile): for item in sorted( manifest.select( - {'function'}, include_abi_only=True, ifdef={'MS_WINDOWS'}), + {'function'}, include_abi_only=True, ifdef=WINDOWS_IFDEFS), key=sort_key): write(f'EXPORT_FUNC({item.name})') @@ -240,7 +249,7 @@ def gen_python3dll(manifest, args, outfile): for item in sorted( manifest.select( - {'data'}, include_abi_only=True, ifdef={'MS_WINDOWS'}), + {'data'}, include_abi_only=True, ifdef=WINDOWS_IFDEFS), key=sort_key): write(f'EXPORT_DATA({item.name})')