Subject: Re: [PATCH 10/12] MINGW: compat/poll/poll.c: undef NOGDI

From: Marat Radchenko <[email-masked]>
Date: Sat, 3 May 2014 11:00:51 +0400

On Wed, Apr 30, 2014 at 01:41:25PM +0200, Stepan Kasal wrote:
> Hello,
> 
> On Tue, Apr 29, 2014 at 01:12:04PM +0400, Marat Radchenko wrote:
> > On MinGW-W64, MsgWaitForMultipleObjects is guarded with #ifndef NOGDI.
> > 
> > Removal -DNOGDI=1 from config.mak.uname has an undesirable effect of
> > bringing in wingdi.h with weird #define ERROR 0 that conflicts with
> > internal Git enums. So, just #undef NOGDI in compat/poll/poll.c.
> 
> compat/poll/poll.c comes from Gnulib, so it would be better to submit
> the patch there and then backport so that the divergence of the two
> versions does not get worse.

That's why v1 of this patch [1] didn't touch poll.c at all.
I don't think it's gnulib problem that combination of two third-parties
(git and mingw-w64) set up such conditions where poll.c fails to compile.

If one wants to dig deeper, I'd say the problem is in MinGW-W64 headers
because their behavior of hiding MsgWaitForMultipleObjects doesn't
match behavior of MSVC headers.