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 Message-Id: <200006300257.TAA17747@aleph.ssd.hal.com> Subject: Re: include incompatibilities To: cygwin AT sourceware DOT cygnus DOT com Date: Thu, 29 Jun 2000 19:57:39 -0700 (PDT) In-Reply-To: <20000629182026.B8571@cygnus.com> from "Chris Faylor" at Jun 29, 2000 06:20:26 PM From: "J. J. Farrell" X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit > From: Chris Faylor > > On Thu, Jun 29, 2000 at 11:22:45PM +0200, towo AT computer DOT org wrote: > >I had lamented about incompatible changes in include files. > >May I repeat the practical essence of my previous mail which is the > >question: How can these things be detected by #ifdef's without > >referring to actual system specifics as below? > > > >#include > >#ifdef __CYGWIN__ /* and version > something ... ! */ > >#define sys_nerr _sys_nerr > >#define sys_errlist _sys_errlist > >#endif > > > >(On "classical" systems, the exported names are without underlines - > >why do these name manglings have to be imposed on us?) > > I guess "classical" systems does not include linux. We went through this one at the beginning of November '99 - all in the archives, for anyone who's interested. "Classical" does include Unix SVR4 and all earlier versions of System V which must provide the non-underscore versions to conform to System V requirements. (Someone also said back then that it does include linux ...). It would be more in keeping with the System V tradition (and probably others) if the non-underscore versions worked, and without requiring any particular headers to be included. BUT: these are non-Standard interfaces which have been deprecated in the Unix Standards world for about 12 years. Different versions require you to include different headers (or none) to use them, and non-Unix implementations in particular often have the underscore on the front of the names. Whatever way Cygwin defines them, you're going to find some code which needs hacking to work with it. > You're talking about normal problems with porting software between various > systems. This kind of thing is a fact of life that you have to live with. Especially if the software uses deprecated interfaces which have been known to be non-portable for over a decade. > It's the reason for things like autoconf and MetaConfig. Perhaps using > one of those two packages is the solution you're straining for. Either that or change the code to use a Standard interface such as strerror(). -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com