mirror of
https://github.com/pyenv/pyenv.git
synced 2026-10-02 23:41:06 +09:00
110 lines
4.7 KiB
Diff
110 lines
4.7 KiB
Diff
From 23afa3cb08eb7a95c5549e46c6275af3bbf0bc93 Mon Sep 17 00:00:00 2001
|
|
From: Ned Deily <nad@python.org>
|
|
Date: Wed, 5 Aug 2026 10:30:17 +0300
|
|
Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2
|
|
calls introduced in macOS 27 (#155211)
|
|
|
|
---
|
|
...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++
|
|
configure | 23 +++++++++++++++++--
|
|
configure.ac | 11 +++++++--
|
|
3 files changed, 33 insertions(+), 4 deletions(-)
|
|
create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst
|
|
|
|
diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst
|
|
new file mode 100644
|
|
index 00000000000..90804c179a4
|
|
--- /dev/null
|
|
+++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst
|
|
@@ -0,0 +1,3 @@
|
|
+On macOS, do not attempt to use the :manpage:`dup3(2)` and
|
|
+:manpage:`pipe2(2)` system calls introduced in
|
|
+macOS 27 to prevent problems when running on older systems.
|
|
diff --git a/configure b/configure
|
|
index 9567ac3a62c..65ed2916e09 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -15158,7 +15158,7 @@ fi
|
|
# checks for library functions
|
|
for ac_func in \
|
|
accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \
|
|
- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \
|
|
+ copy_file_range ctermid dup execv explicit_bzero explicit_memset \
|
|
faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \
|
|
fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \
|
|
gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \
|
|
@@ -15168,7 +15168,7 @@ for ac_func in \
|
|
getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \
|
|
lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \
|
|
mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \
|
|
- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
|
|
+ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
|
|
pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \
|
|
pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \
|
|
rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \
|
|
@@ -15211,6 +15211,25 @@ done
|
|
|
|
fi
|
|
|
|
+# macOS introduced dup3 and pipe2 in macOS 27, late in the
|
|
+# lifetime of this version of Python. Rather than adding weaklinking
|
|
+# support for them, just continue to ignore them.
|
|
+if test "$ac_sys_system" != "Darwin"; then
|
|
+ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3"
|
|
+if test "x$ac_cv_func_dup3" = xyes
|
|
+then :
|
|
+ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h
|
|
+
|
|
+fi
|
|
+ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2"
|
|
+if test "x$ac_cv_func_pipe2" = xyes
|
|
+then :
|
|
+ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h
|
|
+
|
|
+fi
|
|
+
|
|
+fi
|
|
+
|
|
ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
|
|
#include <dirent.h>
|
|
"
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 90008bcae17..0816d477558 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -4582,7 +4582,7 @@ fi
|
|
# checks for library functions
|
|
AC_CHECK_FUNCS([ \
|
|
accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \
|
|
- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \
|
|
+ copy_file_range ctermid dup execv explicit_bzero explicit_memset \
|
|
faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \
|
|
fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \
|
|
gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \
|
|
@@ -4592,7 +4592,7 @@ AC_CHECK_FUNCS([ \
|
|
getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \
|
|
lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \
|
|
mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \
|
|
- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
|
|
+ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \
|
|
pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \
|
|
pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \
|
|
rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \
|
|
@@ -4614,6 +4614,13 @@ if test "$MACHDEP" != linux; then
|
|
AC_CHECK_FUNCS(lchmod)
|
|
fi
|
|
|
|
+# macOS introduced dup3 and pipe2 in macOS 27, late in the
|
|
+# lifetime of this version of Python. Rather than adding weaklinking
|
|
+# support for them, just continue to ignore them.
|
|
+if test "$ac_sys_system" != "Darwin"; then
|
|
+ AC_CHECK_FUNCS([dup3 pipe2])
|
|
+fi
|
|
+
|
|
AC_CHECK_DECL(dirfd,
|
|
AC_DEFINE(HAVE_DIRFD, 1,
|
|
Define if you have the 'dirfd' function or macro.), ,
|
|
--
|
|
2.55.0.windows.3
|
|
|