Skip to content

gh-153711: Test availability for dup3() and pipe2() on iOS - #155222

Draft
encukou wants to merge 5 commits into
python:mainfrom
encukou:dup3-pipe2-ios
Draft

encukou wants to merge 5 commits into
python:mainfrom
encukou:dup3-pipe2-ios

Conversation

@encukou

@encukou encukou commented Aug 5, 2026 •

Copy link
Copy Markdown
Member

We added runtime checks for dup3 and pipe2 on macOS. It looks like this should be the same on iOS, but needs to be tested separately -- by someone with the relevant hardware/software.
@freakboy3742, do you want to take this?

(AFAICS this is a new feature on iOS, so no worries about missing 3.15.)

I added entries for (unsupported) tvOS, watchOS & visionOS according to the prototypes reported in the issue; I didn't check the actual *27 SDK.

@read-the-docs-community

read-the-docs-community Bot commented Aug 5, 2026 •

Copy link
Copy Markdown

@encukou

encukou commented Aug 5, 2026

Copy link
Copy Markdown
Member Author

Marking as draft as Xcode/iOS 27 testing hasn't started yet. Feel free to undo that when the time comes.

@encukou
encukou marked this pull request as draft August 5, 2026 10:03
@freakboy3742 freakboy3742 self-assigned this Aug 6, 2026
@freakboy3742

Copy link
Copy Markdown
Contributor

!buildbot iOS

@bedevere-bot

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @freakboy3742 for commit 0378698 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F155222%2Fmerge

The command will test the builders whose names match following regular expression: iOS

The builders matched are:

  • iOS ARM64 Simulator PR

@freakboy3742

Copy link
Copy Markdown
Contributor

Update: Xcode 27 is now generally available; this PR passes on Xcode 27 (tested locally) and on Xcode 16 (the buildbot configuration), but breaks on Xcode 26 (CI configuration). I'm investigating why...

@freakboy3742

freakboy3742 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

So, it appears that macOS 26 SDK doesn't export the dup3/pipe2 symbols, whereas the iOS 26 SDKs do - but they break if you try to compile against them. I've reworked the configure script so that it will detect correctly based on an actual link, rather than the base autoconf functionality check.

It's worth noting a couple of things here:

  1. The documented requirement doesn't seem quite right - the calls won't be available based purely on "macOS/iOS 27+" - the feature will only be available if the user has that OS version, and we compile using a macOS/iOS 27+ SDK. That won't be true for iOS until we switch to a (not yet available) macos-27 runner, or we use the (currently in preview) xcode-27 runner. I'm not 100% of the compilation environment that @ned-deily is using for macOS builds, but if it's the macos-26 Github runner, it won't expose the SDK.
  2. dup3 won't have much use on iOS, as it doesn't support fork and spawn.

@freakboy3742
freakboy3742 requested a review from ned-deily October 5, 2026 04:13
@freakboy3742

Copy link
Copy Markdown
Contributor

!buildbot iOS

@bedevere-bot

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @freakboy3742 for commit 5e703b2 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F155222%2Fmerge

The command will test the builders whose names match following regular expression: iOS

The builders matched are:

  • iOS ARM64 Simulator PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants