[New-bugs-announce] [issue45251] signal.SIGCLD alias is not available on OSX

Thomas Caswell report at bugs.python.org
Mon Sep 20 18:27:22 EDT 2021

New submission from Thomas Caswell <tcaswell at gmail.com>:

The module attribute signal.SIGCLD (https://docs.python.org/3/library/signal.html#signal.SIGCLD) is an "archaic" (quoting from the GNU C Library source) alias for signal.SIGCHLD (https://docs.python.org/3/library/signal.html#signal.SIGCHLD). signal.SIGCHLD is documented as being available on unix, and signal.SIGCLD is documented as an alias of signal.SIGCHLD.  

However, it seems that clang does not define the SIGCLD back-compatibility name [1] so the SIGCLD alias is missing on OSX (all the way to at least 2.7) because the clang headers appear to not define the SIGCLD macro and hence the logic in modulesignal.c does not find it, and hence the rest of the tooling in signal.py does not find it.

I am not sure if the correct fix is to document that SIGCLD in only available on linux (which I am not sure is completely correct, maybe "availability is platform dependent, but definitely not on darwin"?) or to add the macro if SIGCHLD is defined and SIGCLD is missing (see attached patch)

[1] SIGCLD is not documented in https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/signal.3.html and not the signal.h that ships with xcode

assignee: docs at python
components: Documentation, Library (Lib)
files: osx_signal_compat.patch
keywords: patch
messages: 402280
nosy: docs at python, tcaswell
priority: normal
severity: normal
status: open
title: signal.SIGCLD alias is not available on OSX
versions: Python 3.10, Python 3.11, Python 3.6, Python 3.7, Python 3.8, Python 3.9
Added file: https://bugs.python.org/file50290/osx_signal_compat.patch

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list