On Fri, Nov 07, 2008 at 03:34:59PM +0100, Jim Meyering wrote: > "Richard W.M. Jones" <rjones@xxxxxxxxxx> wrote: > > On an unrelated point, probably any usage of __MINGW32__ is suspect, eg: > > s/any/any *other*/ ? I'm pretty sure "any", in this case too. > >> #else /* __MINGW32__ */ > > > > Our MinGW cross-compiler defines the symbol 'WIN32', and so do all > > compilers on Windows itself[1][2]. > > > > Therefore it's better to use #ifdef WIN32 ... #endif for any code that > > is specific to the Win32 API. > > > > The __MINGW32__ symbol has a place for code which is specific to the > > MinGW version of GCC, eg. if it had a bug that we needed to work > > around. > > In the case of lstat, that use of __MINGW32__ is deliberate, since > the guarded code is needed only on mingw, and not on cygwin. > So using WIN32 there would be wrong. Cygwin isn't like other Windows compilers -- it exposes a Unix/POSIX API (not Win32 which is a completely different API, even though some of the calls happen to look superficially similar). Cygwin doesn't define WIN32 symbol[1], so using WIN32 here should be OK. Anyway, I don't think anyone is using Cygwin to compile libvirt. The licensing issues alone mean that it'd be unacceptable to most of our users. Rich. [1] Well, that's not entirely true: if you use Cygwin and then include <windows.h>, you do get WIN32 symbol defined, because by doing this you've got both POSIX _and_ Win32 APIs available. WIN32 tells you that the Win32 API is available, not that POSIX is unavailable. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list