mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
gh-110014: Fix _POSIX_THREADS and _POSIX_SEMAPHORES usage (#110139)
* pycore_pythread.h is now the central place to make sure that _POSIX_THREADS and _POSIX_SEMAPHORES macros are defined if available. * Make sure that pycore_pythread.h is included when _POSIX_THREADS and _POSIX_SEMAPHORES macros are tested. * PY_TIMEOUT_MAX is now defined as a constant, since its value depends on _POSIX_THREADS, instead of being defined as a macro. * Prevent integer overflow in the preprocessor when computing PY_TIMEOUT_MAX_VALUE on Windows: replace "0xFFFFFFFELL * 1000 < LLONG_MAX" with "0xFFFFFFFELL < LLONG_MAX / 1000". * Document the change and give hints how to fix affected code. * Add an exception for PY_TIMEOUT_MAX name to smelly.py * Add PY_TIMEOUT_MAX to the stable ABI
This commit is contained in:
parent
f3bb00ea12
commit
74e425ec18
13 changed files with 72 additions and 57 deletions
|
|
@ -11,6 +11,11 @@
|
|||
if sys.platform == 'darwin':
|
||||
ALLOWED_PREFIXES += ('__Py',)
|
||||
|
||||
# "Legacy": some old symbols are prefixed by "PY_".
|
||||
EXCEPTIONS = frozenset({
|
||||
'PY_TIMEOUT_MAX',
|
||||
})
|
||||
|
||||
IGNORED_EXTENSION = "_ctypes_test"
|
||||
# Ignore constructor and destructor functions
|
||||
IGNORED_SYMBOLS = {'_init', '_fini'}
|
||||
|
|
@ -72,7 +77,7 @@ def get_smelly_symbols(stdout):
|
|||
symbol = parts[-1]
|
||||
result = '%s (type: %s)' % (symbol, symtype)
|
||||
|
||||
if symbol.startswith(ALLOWED_PREFIXES):
|
||||
if symbol.startswith(ALLOWED_PREFIXES) or symbol in EXCEPTIONS:
|
||||
python_symbols.append(result)
|
||||
continue
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue