Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/library/os.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1479,7 +1479,7 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo
Return a pair of file descriptors ``(r, w)`` usable for reading and writing,
respectively.

.. availability:: Unix, macOS >= 27.0, not WASI, not iOS.
.. availability:: Unix, macOS >= 27.0, iOS >= 27.0, not WASI.

.. versionadded:: 3.3

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
On iOS, add :func:`os.pipe2`, and use the syscalls :manpage:`pipe2 (2)` and
:manpage:`dup3 (2)` internally, when available at both build-time and
run-time.
4 changes: 2 additions & 2 deletions Modules/posixmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -512,8 +512,8 @@ static const unsigned int _Py_STATX_KNOWN = (STATX_BASIC_STATS | STATX_BTIME
# define HAVE_MKFIFOAT_RUNTIME __builtin_available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
# define HAVE_MKNODAT_RUNTIME __builtin_available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
# define HAVE_PTSNAME_R_RUNTIME __builtin_available(macOS 10.13.4, iOS 11.3, tvOS 11.3, watchOS 4.3, *)
# define HAVE_DUP3_RUNTIME __builtin_available(macOS 27.0, *)
# define HAVE_PIPE2_RUNTIME __builtin_available(macOS 27.0, *)
# define HAVE_DUP3_RUNTIME __builtin_available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, visionOS 27.0, *)
# define HAVE_PIPE2_RUNTIME __builtin_available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, visionOS 27.0, *)

# define HAVE_POSIX_SPAWN_SETSID_RUNTIME __builtin_available(macOS 10.15, *)

Expand Down
96 changes: 83 additions & 13 deletions configure

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -5577,7 +5577,7 @@ fi
# header definition prevents usage - autoconf doesn't use the headers), or
# raise an error if used at runtime. Force these symbols off.
if test "$ac_sys_system" != "iOS" ; then
AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system])
AC_CHECK_FUNCS([getentropy getgroups system])
fi

AC_CHECK_DECL([dirfd],
Expand All @@ -5590,7 +5590,9 @@ AC_CHECK_DECL([dirfd],
# For some functions, having a definition is not sufficient, since
# we want to take their address.
PY_CHECK_FUNC([chroot], [@%:@include <unistd.h>])
PY_CHECK_FUNC([dup3], [@%:@include <unistd.h>])
PY_CHECK_FUNC([link], [@%:@include <unistd.h>])
PY_CHECK_FUNC([pipe2], [@%:@include <unistd.h>])
PY_CHECK_FUNC([symlink], [@%:@include <unistd.h>])
PY_CHECK_FUNC([fchdir], [@%:@include <unistd.h>])
PY_CHECK_FUNC([fsync], [@%:@include <unistd.h>])
Expand Down
4 changes: 2 additions & 2 deletions pyconfig.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@
/* Define to 1 if you have the 'dup2' function. */
#undef HAVE_DUP2

/* Define to 1 if you have the 'dup3' function. */
/* Define if you have the 'dup3' function. */
#undef HAVE_DUP3

/* Define if you have the '_dyld_shared_cache_contains_path' function. */
Expand Down Expand Up @@ -1052,7 +1052,7 @@
/* Define to 1 if you have the 'pipe' function. */
#undef HAVE_PIPE

/* Define to 1 if you have the 'pipe2' function. */
/* Define if you have the 'pipe2' function. */
#undef HAVE_PIPE2

/* Define to 1 if you have the 'plock' function. */
Expand Down
Loading