If you attempt to build the iOS distribution on macOS 26, building posixmodule.c on the ARM64 simulator fails with the following:
../Modules/posixmodule.c:11833:15: error: call to undeclared function 'dup3'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
11833 | res = dup3(fd, fd2, O_CLOEXEC);
| ^
../Modules/posixmodule.c:12701:11: error: call to undeclared function 'pipe2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
12701 | res = pipe2(fds, O_CLOEXEC);
| ^
../Modules/posixmodule.c:12701:11: note: did you mean 'pipe'?
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator26.4.sdk/usr/include/unistd.h:482:6: note: 'pipe' declared here
482 | int pipe(int [2]);
| ^
../Modules/posixmodule.c:12758:11: error: call to undeclared function 'pipe2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
12758 | res = pipe2(fds, flags);
| ^
It appears that something has changed introducing linkable pipe2 and dup3 methods, but without a public header. This is enough to confuse configure into thinking the methods exist.
Activity
gh-150443: Exclude explicit dup3 and pipe2 checks on iOS builds. (#15…
[3.15] gh-150443: Exclude explicit dup3 and pipe2 checks on iOS build…
[3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on iOS build…
[3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on iOS build…
[3.11] pythongh-150443: Exclude explicit dup3 and pipe2 checks on iOS…
[3.12] pythongh-150443: Exclude explicit dup3 and pipe2 checks on iOS…
[3.12] pythongh-150443: Exclude explicit dup3 and pipe2 checks on iOS…
[3.11] pythongh-150443: Exclude explicit dup3 and pipe2 checks on iOS…
[3.12] pythongh-150443: Exclude explicit dup3 and pipe2 checks on iOS…