summaryrefslogtreecommitdiffstats
path: root/Python/fileutils.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2022-07-26 09:16:51 (GMT)
committerGitHub <noreply@github.com>2022-07-26 09:16:51 (GMT)
commit0d35a59ce3242b7326890a8c8cc41b321192ec9a (patch)
tree0d165365dff1a2131594c209d16719aca25813eb /Python/fileutils.c
parente8f3e8f0ab8aa5d667229ce9694e6e1477e524fd (diff)
downloadcpython-0d35a59ce3242b7326890a8c8cc41b321192ec9a.zip
cpython-0d35a59ce3242b7326890a8c8cc41b321192ec9a.tar.gz
cpython-0d35a59ce3242b7326890a8c8cc41b321192ec9a.tar.bz2
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)
Diffstat (limited to 'Python/fileutils.c')
-rw-r--r--Python/fileutils.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Python/fileutils.c b/Python/fileutils.c
index 7e5d01f..fb1e5ef 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -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;
}