----- Original Message ----- > From: Mark Geisert  > To: cygwin > Cc: > Date: 2019/3/11, Mon 16:21 > Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4) > >T atsuro MATSUOKA wrote: >> ----- Original Message ----- >> >>> From: Yaakov Selkowitz >> To: cygwin >>> Cc: >>> Date: 2019/3/11, Mon 09:53 >>> Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4) >>> >>> On Mon, 2019-03-11 at 09:28 +0900, Tatsuro MATSUOKA wrote: >>>>   > On Mon, 2019-03-04 at 07:43 +0900, Tatsuro MATSUOKA wrote: >>>>   > >  I ask alpply a patch the below which enables to use qt > terminal >>> on gnuplot >>>>   > for Cygwin. >>>>   > >  (cygQt5Network-5.dll is affected.) >>>>   > > >>>>   > >  --- >>> a/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp >>>>   > >  +++ >>> b/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp >>>>   > >  @@ -239,7 +239,7 @@ void > QLocalSocket::connectToServer(OpenM >>>>   > >      } >>>>   > >      // create the socket >>>>   > >  -    if (-1 == (d->connectingSocket = > qt_safe_socket(PF_UNIX, >>> SOCK_STREAM, 0, O_NONBLOCK))) { >>>>   > >  +    if (-1 == (d->connectingSocket = > qt_safe_socket(PF_UNIX, >>> SOCK_STREAM, 0))) { >>>>   > >          > d->errorOccurred(UnsupportedSocketOperationError, >>> QLatin1String("QLocalSocket::connectToServer")); >>>>   > >          return; >>>>   > > >>>>   > >>>>   > It seems we keep going in circles on this point.  If there is > a bug in >>>>   > O_NONBLOCK, then please either narrow it down to an STC, or > provide a >>>>   > patch to Cygwin. >>>> >>>>   Very basic question. What is STC? >>>>   I googled but I cannot find what is it. >>> >>> https://cygwin.com/acronyms/#STC >> >> >> Sorry I cannot make STC due to lack of knowledge of QT. >> In stead, I explain what gnuplot do. >> >> On gnuplot for qt, >> plot is done by child process named gnuplot_qt. >> >> When gnuplot connect with gnuplot with >>   qt->socket.connectToServer(server); >> >> >> without the above patch () >> qt_safe_socket(PF_UNIX, SOCK_STREAM, 0, O_NONBLOCK))) >> gnuplot cannot connect with gnuplot_qt. >> >> with the above patch () >> qt_safe_socket(PF_UNIX, SOCK_STREAM, 0)) >> gnuplot can connect with gnuplot_qt. >> >> Perhaps qt with O_NONBLOCK is some wrong with process connection. > > Hi Tatsuro, > For the record, what Enrico supplied is what we'd call an STC, a Simple Test > > Case.  Unfortunately his STC dealt with select() on a named pipe. > > Your gnuplot issue has to do with "Unix sockets", a form of IPC > between > processes.  Cygwin uses Windows named pipes to implement "Unix > sockets" on > Windows.  This means we are mapping Unix/Linux socket constructs onto a > dissimilar feature of Windows, and there are many opportunities for mismatch. > > Can you run your gnuplot under strace?  You would set up your environment as > needed to reproduce the issue, then launch gnuplot as so: >     strace -o gnuplot.trace gnuplot > This will create a trace file of Cygwin syscalls and operations.  Let us know > how big (how many lines) are in the trace file and we'll see what's > next. > > ..mark >  I send xz commpress gnuplot.trace. Tatsuro