Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14413.48379.598269.956062@lasker.666.com> Date: Tue, 7 Dec 1999 18:05:47 -0800 (PST) From: Martin Buchholz To: Chris Faylor Cc: cygwin AT sourceware DOT cygnus DOT com, XEmacs NT , Eric Christopher Subject: Re: cygwin-1999-12-01: Prototypes in system headers not standard-compliant In-Reply-To: <19991207193739.A723@cygnus.com> References: <14408 DOT 38135 DOT 146580 DOT 963528 AT lasker DOT 666 DOT com> <19991207193739 DOT A723 AT cygnus DOT com> X-Mailer: VM 6.72 under 21.2 (beta22) "Mercedes" XEmacs Lucid Reply-To: martin AT xemacs DOT org >>>>> "Chris" == Chris Faylor writes: Chris> On Fri, Dec 03, 1999 at 08:13:43PM -0800, Martin Buchholz wrote: >> The prototype for read() and write() in Unix98 don't match those in >> the Cygwin header files. >> >> http://www.opengroup.org/onlinepubs/007908799/xsh/read.html >> http://www.opengroup.org/onlinepubs/007908799/xsh/write.html >> >> The standard return type for these functions is `ssize_t'. >> The traditional return type for these functions is `int'. >> The return type in Cygwin is `int'. >> >> On 32-bit platforms, like Cygwin, the best choice is probably to use >> `ssize_t' in the prototypes (they are standard, after all, right?), >> but to then have >> >> typedef int ssize_t; >> >> This is effectively what Linux does. Chris> We're discussing this now. It's not a simple issue since the "newlib" Chris> code used by cygwin is also used by other Cygnus products so we have Chris> to make sure that we don't break anything just to benefit Cygwin's Chris> portability. Chris> I do agree with this change, however, and hope to things fixed soon. I understand that there may be engineering issues associated with the transition, but the change has to be made sometime soon. You just don't have a choice when it comes to standards. Besides, Cygwin's primary purpose is to make standard Unix code run on Windows. Like this (untested) line of code: ssize_t (*my_read) (int, void *, size_t) = read; -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com