You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Solaris/illumos: _XOPEN_SOURCE left undefined disables socket.sendmsg and the forkserver start method #154271
Consequently multiprocessing.reduction.HAVE_SEND_HANDLE is False and the forkserver start method is unavailable (forkserver passes worker file descriptors over a Unix socket via sendmsg+SCM_RIGHTS). This makes test_socket ancillary-data tests and forkserver-based test_multiprocessing_forkserver / test_concurrent_futures tests fail or error.
Cause
On Solaris the ancillary-data API is declared only when _XOPEN_SOURCE >= 600 (XPG6). But configure.ac deliberately leaves _XOPEN_SOURCE undefined on Solaris (relying on __EXTENSIONS__), because historically _XOPEN_SOURCEhid other features there (bpo-1759169). So the socket module builds without sendmsg/recvmsg. This exact problem was reported in gh-57208 (2011) and closed unresolved.
Fix
Define _XOPEN_SOURCE=600 on Solaris. __EXTENSIONS__ (now reliably defined by AC_USE_SYSTEM_EXTENSIONS) re-enables the platform features _XOPEN_SOURCE would otherwise hide — the same combination the OpenIndiana system Python already builds with (-D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1 -D_XPG6). Verified on OpenIndiana (illumos) 2026: sendmsg/recvmsg/CMSG_* are built, forkserver becomes available, the full build is clean, and the affected test suites pass.
Related: gh-154272 — the independent test-robustness fix so forkserver tests skip (rather than error) on platforms that genuinely lack the forkserver start method. This issue instead makes forkserver available on Solaris/illumos.
Activity
serhiy-storchaka commentedon Jul 20, 2026
Related: gh-154272 — the independent test-robustness fix so forkserver tests skip (rather than error) on platforms that genuinely lack the forkserver start method. This issue instead makes forkserver available on Solaris/illumos.
pythongh-154271: Define _XOPEN_SOURCE=600 on Solaris to enable socket…
gh-154271: Enable socket ancillary data and forkserver on illumos (GH…
pythongh-154271: Enable socket ancillary data and forkserver on illum…