From 0d35a59ce3242b7326890a8c8cc41b321192ec9a Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Tue, 26 Jul 2022 11:16:51 +0200 Subject: 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) --- Python/dup2.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Python/dup2.c') diff --git a/Python/dup2.c b/Python/dup2.c index 7c6bbfce11..a1df049209 100644 --- a/Python/dup2.c +++ b/Python/dup2.c @@ -11,6 +11,7 @@ * Return fd2 if all went well; return BADEXIT otherwise. */ +#include #include #include @@ -20,12 +21,17 @@ int dup2(int fd1, int fd2) { if (fd1 != fd2) { +#ifdef F_DUPFD if (fcntl(fd1, F_GETFL) < 0) return BADEXIT; if (fcntl(fd2, F_GETFL) >= 0) close(fd2); if (fcntl(fd1, F_DUPFD, fd2) < 0) return BADEXIT; +#else + errno = ENOTSUP; + return BADEXIT; +#endif } return fd2; } -- cgit v1.2.1