sys_errlist
Suhaib M. Siddiqi
ssiddiqi@ipass.net
Tue Nov 30 23:39:00 GMT 1999
On most of the Unices, including RedHat Linux it is sys_errlist,
in errno.h on Cygwin it is _sys_errlist. That was the reason
I had to add #define sys_errlist _sys_errlist at 100 places when
I patched OpenDx code for Cygwin B20.1. Off course I had to add
#ifdef __CYGWIN__
#include <errno.h>
#endif
too, otherwise during linking _sys_errlist was not resolved.
Suhaib
> -----Original Message-----
> From: cygwin-owner@sourceware.cygnus.com
> [ mailto:cygwin-owner@sourceware.cygnus.com]On Behalf Of Mumit Khan
> Sent: Wednesday, November 03, 1999 5:00 PM
> To: John Fralinger
> Cc: cygwin@sourceware.cygnus.com
> Subject: Re: sys_errlist
>
>
> John Fralinger <fralinjh@ei.dupont.com> writes:
> > Mumit,
> > Thanks for your quick response.
> > Your test code below does indeed work.
> >
> > I am still confused about when to use an "_" and when not to.
> >
> > I do not have any problems implementing Mr. Siddiqi's suggestion
> > but I would like to understand what's going on.
>
> sys_nerr, sys_errlist are not mandated by various standards, and the
> runtimes tend to expose these non-standard items with a leading
> underscore. This unfortunately causes trouble with lots of the existing
> Unix code, and that's unfortunate. Perhaps Cygnus will consider exposing
> the non-underscored version as well via the export definition file?
>
> Detecting the correct form of sys_nerr and sys_errlist turns out to
> be quite tricky. Consider the following tests that are normally used
> for detecting runtime library characteristics:
>
> try 1: create a dummy program with sys_nerr and see if it links. If
> found, done.
> try 2: create a dummy program with _sys_nerr and see if it links. If
> found, done.
>
> If neither tests succeed, the runtime library does not have sys_nerr.
> Now consider the case of Cygwin: you can't just create a dummy program,
> but also have to make sure you include <errno.h>, and then try both
> sys_nerr and _sys_nerr.
>
> So, what's the right way to do this? Use POSIX mandated strerror ()
> and forget avoid non-standard stuff. Or, since I have code dating
> back many many years, write a port library that implements sys_nerr
> and sys_errlist for platforms that don't have it.
>
> Regards,
> Mumit
>
>
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com
>
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list