On Jul 20 03:11, Yaakov (Cygwin/X) wrote: > On Linux, ioctl(2) returns several different errors[1]: > > EBADF d is not a valid descriptor. > EFAULT argp references an inaccessible memory area. > EINVAL Request or argp is not valid. > ENOTTY d is not associated with a character special device. > ENOTTY The specified request does not apply to the kind of object that > the descriptor d references. > > In the case of FIONREAD, Cygwin doesn't seem to distinguish between > EINVAL and ENOTTY, and this causes at least one major bug: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35536 > > I have patched GCJ and GNU classpath to work around it, but this really > needs to be fixed in Cygwin itself.
Would this patch be sufficient? Index: fhandler.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/fhandler.cc,v retrieving revision 1.397 diff -u -p -r1.397 fhandler.cc --- fhandler.cc 5 Jul 2011 12:02:10 -0000 1.397 +++ fhandler.cc 20 Jul 2011 15:46:40 -0000 @@ -1151,6 +1151,10 @@ fhandler_base::ioctl (unsigned int cmd, set_nonblocking (*(int *) buf); res = 0; break; + case FIONREAD: + set_errno (ENOTTY); + res = -1; + break; default: set_errno (EINVAL); res = -1; Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple