public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin-patches@cygwin.com
Subject: Re: [PATCH 0/2] Return appropriate handle by _get_osfhandle() and GetStdHandle().
Date: Mon, 22 Mar 2021 12:43:36 +0100	[thread overview]
Message-ID: <YFiC6FXrnGeW8v1M@calimero.vinschen.de> (raw)
In-Reply-To: <20210322080738.6841d7f2a1e09290a929ad90@nifty.ne.jp>

[CC Marco]

On Mar 22 08:07, Takashi Yano via Cygwin-patches wrote:
> On Sun, 21 Mar 2021 17:44:27 +0900
> Takashi Yano wrote:
> > On Sun, 21 Mar 2021 13:01:24 +0900
> > Takashi Yano wrote:
> > > Takashi Yano (2):
> > >   Cygwin: syscalls.cc: Make _get_osfhandle() return appropriate handle.
> > >   Cygwin: pty: Add hook for GetStdHandle() to return appropriate handle.
> > > 
> > >  winsup/cygwin/fhandler_tty.cc | 19 +++++++++++++++++++
> > >  winsup/cygwin/syscalls.cc     | 13 ++++++++++++-
> > >  2 files changed, 31 insertions(+), 1 deletion(-)
> > 
> > I submitted these patches, however, I still wonder if we really
> > need these patches. I cannot imagine the situation where handle
> > itself is needed rather than file descriptor.
> > 
> > However, following cygwin apps/dlls call _get_osfhandle():
> > ccmake.exe
> > cmake.exe
> > cpack.exe
> > ctest.exe
> > ddrescue.exe
> > 
> > And also, following cygwin apps/dlls call GetStdHandle():
> > ccmake.exe
> > cmake.exe
> > cpack.exe
> > ctest.exe
> > run.exe
> > cygusb0.dll
> > tk86.dll
> > 
> > in my installation.
> > 
> > Therefore, some of these apps/dlls may need these patches...
> 
> I looked into cmake source and found the patch exactly for
> this issue. Therefore, it seems better to fix this. 
> 
> /* Get the Windows handle for a FILE stream.  */
> static HANDLE kwsysTerminalGetStreamHandle(FILE* stream)
> {
>   /* Get the C-library file descriptor from the stream.  */
>   int fd = fileno(stream);
> 
> #  if defined(__CYGWIN__)
>   /* Cygwin seems to have an extra pipe level.  If the file descriptor
>      corresponds to stdout or stderr then obtain the matching windows
>      handle directly.  */
>   if (fd == fileno(stdout)) {
>     return GetStdHandle(STD_OUTPUT_HANDLE);
>   } else if (fd == fileno(stderr)) {
>     return GetStdHandle(STD_ERROR_HANDLE);
>   }
> #  endif
> 
>   /* Get the underlying Windows handle for the descriptor.  */
>   return (HANDLE)_get_osfhandle(fd);
> }

Why on earth is cmake using Windows functions on Cygwin at all???
It's not as if it actually requires Windows functionality on our
platform.

Marco, any input?  Any chance to drop this Windows stuff from the Cygwin
code path in cmake?


Thanks,
Corinna

  reply	other threads:[~2021-03-22 11:43 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-21  4:01 Takashi Yano
2021-03-21  4:01 ` [PATCH 1/2] Cygwin: syscalls.cc: Make _get_osfhandle() return appropriate handle Takashi Yano
2021-03-21  4:01 ` [PATCH 2/2] Cygwin: pty: Add hook for GetStdHandle() to " Takashi Yano
2021-03-21  8:44 ` [PATCH 0/2] Return appropriate handle by _get_osfhandle() and GetStdHandle() Takashi Yano
2021-03-21 23:07   ` Takashi Yano
2021-03-22 11:43     ` Corinna Vinschen [this message]
2021-03-22 17:02       ` Ken Brown
2021-03-23 10:10         ` Corinna Vinschen
2021-03-23 11:57           ` Takashi Yano
2021-03-23 12:17             ` Corinna Vinschen
2021-03-23 12:32               ` Takashi Yano
2021-03-23 12:42                 ` Takashi Yano
2021-03-23 12:46                   ` Corinna Vinschen
2021-03-23 12:52                   ` Takashi Yano
2021-03-23 13:32                     ` Corinna Vinschen
2021-03-23 13:51                       ` Takashi Yano
2021-03-23 14:27                         ` Corinna Vinschen
2021-03-23 12:44                 ` Corinna Vinschen
2021-03-23 13:09                   ` Jon Turney
2021-03-23 15:21                     ` ASSI
2021-03-23 15:54                       ` Corinna Vinschen
2021-03-23 19:45                     ` Brian Inglis
2021-03-24 10:43           ` Marco Atzeri
2021-03-24 10:52             ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YFiC6FXrnGeW8v1M@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-patches@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).