From 13a11f1c3526112eaf28943185fadc14523fd496 Mon Sep 17 00:00:00 2001 From: Pino Toscano 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 in this file, to make sure PIPE_BUF or _POSIX_PIPE_BUF are available without relying on other headers to pull . Change-Id: Ifae964db81841e1d31fc09e73b45594af9a326d1 Reviewed-by: Oswald Buddenhagen Reviewed-by: Thiago Macieira --- 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 +#include #include #include @@ -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