Re: Re: WIN32 errno patch

Bruce Momjian <pgman@candle.pha.pa.us>

From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Mikhail Terekhov <terekhov@emc.com>
Cc: pgsql-hackers@postgresql.org
Date: 2001-08-09T19:40:16Z
Lists: pgsql-hackers
Tom has applied these changes to the CVS snapshot.  Can you try it and
let us know.

> One can't just #undef errno on windows because it is defined as follows:
> 
> 
>  #if defined(_MT) || defined(_DLL)
>  extern int * __cdecl _errno(void);
>  #define errno (*_errno())
>  #else /* ndef _MT && ndef _DLL */
>  extern int errno;
>  #endif /* _MT || _DLL */
> 
> So when building a dll or a multithreaded application it is not a plain 
> variable but call to the _errno() and after #undef errno one will lose 
> errno completely. For the same reason it is impossible to use something
> like 'errno=0;'.
> 
> Mikhail Terekhov
> 
> 
> Tom Lane wrote:
> > 
> > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > Any idea where we are on this?
> > 
> > I'm planning to #undef errno around the three routines that need to get
> > at plain errno.  Not done yet though...
> > 
> >                         regards, tom lane
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026