From 2e36b1e0d569cb935e8f1d557d6d58ca3757d37e Mon Sep 17 00:00:00 2001 From: zaniebot <242828183+zaniebot@users.noreply.github.com> Date: Wed, 21 Oct 2026 18:19:30 +0000 Subject: [PATCH 1/2] Accept the musl `getdents64` buffer type --- .../Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst | 2 ++ Modules/_posixsubprocess.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst diff --git a/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst b/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst new file mode 100644 index 00000000000000..cd6515261cb52b --- /dev/null +++ b/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst @@ -0,0 +1,2 @@ +Fix building :mod:`subprocess` with musl headers that declare the +``getdents64`` buffer as a pointer to ``struct dirent``. diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index 2291280ec117f2..420a4769db184c 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -436,7 +436,7 @@ _close_open_fds_safe(int start_fd, int *fds_to_keep, Py_ssize_t fds_to_keep_len) Py_ssize_t bytes; while (1) { #ifdef HAVE_GETDENTS64 - bytes = getdents64(fd_dir_fd, buffer, sizeof(buffer)); + bytes = getdents64(fd_dir_fd, (void *)buffer, sizeof(buffer)); #else bytes = syscall(SYS_getdents64, fd_dir_fd, (struct py_dirent64 *)buffer, sizeof(buffer)); From 6e40b9ea21f91b582cad7749898068314a300710 Mon Sep 17 00:00:00 2001 From: zaniebot <242828183+zaniebot@users.noreply.github.com> Date: Wed, 21 Oct 2026 19:07:11 +0000 Subject: [PATCH 2/2] Remove `NEWS` entry with an invalid issue number --- .../Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst diff --git a/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst b/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst deleted file mode 100644 index cd6515261cb52b..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-10-21-18-00-00.gh-issue-0.musl-getdents64.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix building :mod:`subprocess` with musl headers that declare the -``getdents64`` buffer as a pointer to ``struct dirent``.