On 08/10/2011 08:08 AM, Magnus Hagander wrote:
> On Tue, Jul 26, 2011 at 15:20, Andrew Dunstan<andrew@dunslane.net> wrote:
>> Why do we get this warning on Mingw?:
>>
>> x86_64-w64-mingw32-gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
>> -Wdeclaration-after-statement -Wendif-labels -Wformat-security
>> -fno-strict-aliasing -fwrapv -g -I../../../../src/include
>> -I/home/pgrunner/bf/root/HEAD/pgsql.3896/../pgsql/src/include
>> -I../pgsql/src/include/port/win32 -DEXEC_BACKEND -I/c/prog/mingwdep/include
>> "-I/home/pgrunner/bf/root/HEAD/pgsql.3896/../pgsql/src/include/port/win32"
>> -DBUILDING_DLL -c -o mingwcompat.o
>> /home/pgrunner/bf/root/HEAD/pgsql.3896/../pgsql/src/backend/port/win32/mingwcompat.c
>>
>> c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3896/../pgsql/src/backend/port/win32/mingwcompat.c:60:1:
>> warning: 'RegisterWaitForSingleObject' redeclared without dllimport
>> attribute: previous dllimport ignored
>>
>>
>> Can we get rid of it?
> I don't recall this warning specifically - I wonder if it's specific
> to certain version(s) of mingw? It's in mingwcompat.c simply because
> the mingw API headers were broken. That warning sounds to me like you
> suddenly have RegisterWaitForSingleObject present in the system
> headers - can you check that it is?
>
> If it is in the system headers, we need some way to check when it
> appeared, and then add the function only if it isn't there. Either by
> autoconf, or if we can make a simple hardcoded ifdef (since the file
> is only ever compiled on mingw).
>
In some versions of the headers it's declared unconditionally, in others
it's declared if __WIN32_WINNT > 0x0500 which we are these days. But it
looks like we're trying to override the builtin, not just supply a
declaration.
cheers
andrew