This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Support Windows extended error numbers in safe_strerror


On Mon, Feb 06, 2006 at 11:54:36PM +0100, Mark Kettenis wrote:
> > Date: Mon, 6 Feb 2006 12:35:50 -0500
> > From: Daniel Jacobowitz <drow@false.org>
> > 
> > On Fri, Feb 03, 2006 at 04:54:55PM -0500, Daniel Jacobowitz wrote:
> > > This is an improved version of a patch Mark Mitchell submitted last
> > > year.  If you give strerror() anything above 42 (sys_nerr) on Windows,
> > > it gives you back "Unknown error" - particularly unfortunate since
> > > WSAECONNREFUSED is way above there, so connecting to a closed socket
> > > will give you a generic error message.  This patch lets us try an
> > > OS-specific interface to fetch an error string.
> > > 
> > > [Actually you need my next patch too to get the connection refused message;
> > > right now you'll get a timeout.]
> > > 
> > > Any comments on this patch?
> > 
> > There were plenty :-)  Is this better?
> > 
> > We had finally eliminated the XM files in favor of autoconf checks.
> > This patch re-adds an xm-*.h header file, but I think it's still
> > the best of our options.  We can restrict our use of these headers
> > to things where autoconf is a bad fit - like right here.
> 
> No please don't do that.  There's got to be a better way.  Is it
> possible to write a complete replacement for strerror for MinGW and
> put that one in mingw-hdep.c?

Could you explain why you don't like this one a little more clearly?

Of course it'd be possible to write a complete replacement; I'd just
replace the call to the system strerror with a switch statement and
copy the strings out of the system runtime, or out of some other
standard source.  But I don't see why that's any better than this, and
it's gratuituous duplication of information, so I'd like to understand
what you dislike about it.

If it's the #define strerror that you dislike, two comments:

- I could put an #ifdef around the one and only call to strerror
instead, in utils.c.  I'd be perfectly happy with that.

- I can't override the system strerror by defining my own copy; that
would be prone to breakage due to the workings of
__attribute__((dllimport)).  I discussed that with Chris before posting
this version.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]