gh-95174: Handle missing dup() and constants in WASI (GH-95229)

- check for ``dup()`` libc function
- handle missing ``F_DUPFD`` in ``dup2()`` replacement function
- add workaround for WASI libc bug in MSG_TRUNC
- ESHUTDOWN is missing, use EPIPE instead
- POLLPRI is missing, define as 0 (no-op)
This commit is contained in:
Christian Heimes 2022-07-26 11:16:51 +02:00 committed by GitHub
parent e8f3e8f0ab
commit 0d35a59ce3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 47 additions and 5 deletions

View file

@ -2366,7 +2366,7 @@ _Py_dup(int fd)
return -1;
}
#else
#elif HAVE_DUP
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
fd = dup(fd);
@ -2383,6 +2383,10 @@ _Py_dup(int fd)
_Py_END_SUPPRESS_IPH
return -1;
}
#else
errno = ENOTSUP;
PyErr_SetFromErrno(PyExc_OSError);
return -1;
#endif
return fd;
}