You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
From 13a11f1c3526112eaf28943185fadc14523fd496 Mon Sep 17 00:00:00 2001
|
|
From: Pino Toscano <toscano.pino@tiscali.it>
|
|
Date: Mon, 17 Jan 2022 20:43:01 +0100
|
|
Subject: [PATCH] QProcess/Unix: fallback on _POSIX_PIPE_BUF w/ missing
|
|
PIPE_BUF
|
|
|
|
PIPE_BUF is optional in POSIX, e.g. "where the corresponding value is
|
|
equal to or greater than the stated minimum, but where the value can
|
|
vary depending on the file to which it is applied." [1]
|
|
|
|
GNU/Hurd does not provide PIPE_BUF, so fallback to its minimum
|
|
acceptable value, that is _POSIX_PIPE_BUF.
|
|
|
|
[1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
|
|
|
|
Also, explicitly include <limits.h> in this file, to make sure PIPE_BUF
|
|
or _POSIX_PIPE_BUF are available without relying on other headers to
|
|
pull <limits.h>.
|
|
|
|
Change-Id: Ifae964db81841e1d31fc09e73b45594af9a326d1
|
|
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
|
|
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
---
|
|
src/corelib/io/qprocess_unix.cpp | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
|
|
index bf19fc2183..91005b0b67 100644
|
|
--- a/src/corelib/io/qprocess_unix.cpp
|
|
+++ b/src/corelib/io/qprocess_unix.cpp
|
|
@@ -69,6 +69,7 @@
|
|
#endif
|
|
|
|
#include <errno.h>
|
|
+#include <limits.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
@@ -935,7 +936,11 @@ bool QProcessPrivate::startDetached(qint64 *pid)
|
|
{
|
|
QByteArray encodedWorkingDirectory = QFile::encodeName(workingDirectory);
|
|
|
|
+#ifdef PIPE_BUF
|
|
static_assert(PIPE_BUF >= sizeof(ChildError));
|
|
+#else
|
|
+ static_assert(_POSIX_PIPE_BUF >= sizeof(ChildError));
|
|
+#endif
|
|
ChildError childStatus = { 0, {} };
|
|
|
|
AutoPipe startedPipe, pidPipe;
|
|
--
|
|
2.34.1
|
|
|