On Fri, May 23, 2014 at 10:43 PM, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > x86_64-w64-mingw32-gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith > -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute > -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g > -I../../../../src/include > -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include > -I../pgsql/src/include/port/win32 -DEXEC_BACKEND > -I/c/prog/3p64/include/libxml2 -I/c/prog/3p64/include > -I/c/prog/3p64/openssl/include > "-I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include/port/win32" > -DBUILDING_DLL -c -o mingwcompat.o > /home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/backend/port/win32/mingwcompat.c > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/backend/port/win32/mingwcompat.c:60:1: > warning: 'RegisterWaitForSingleObject' redeclared without dllimport > attribute: previous dllimport ignored [-Wattributes] > RegisterWaitForSingleObject(PHANDLE phNewWaitObject, > ^ This one is also an old warning, looking at the buildfarm it is present as well in REL9_2_STABLE... In mingw-w64 RegisterWaitForSingleObject is already defined in winbase.h here: http://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winbase.h What do you think about adding a #ifndef _WINBASE_ block that includes LoadKernel32 and RegisterWaitForSingleObject in mingwcompat.c?
> x86_64-w64-mingw32-gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith > -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute > -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g > -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/interfaces/libpq > -I../../../src/include > -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include > -I../pgsql/src/include/port/win32 -DEXEC_BACKEND > -I/c/prog/3p64/include/libxml2 -I/c/prog/3p64/include > -I/c/prog/3p64/openssl/include > "-I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include/port/win32" > -c -o parallel.o > /home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c: > In function 'pgpipe': > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c:1332:2: > warning: overflow in implicit constant conversion [-Woverflow] > handles[0] = handles[1] = INVALID_SOCKET; > ^ > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c:1386:3: > warning: overflow in implicit constant conversion [-Woverflow] > handles[1] = INVALID_SOCKET; > ^ In mingw-w64, SOCKET_INVALID is defined as ~0: http://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/psdk_inc/_socket_types.h Is this overflow caused because SOCKET_INVALID corresponds to a 64b value in mingw-w64? Looking at the code this exists since 9.3. > x86_64-w64-mingw32-gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith > -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute > -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g > -I. > -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/contrib/pg_stat_statements > -I../../src/include > -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include > -I../pgsql/src/include/port/win32 -DEXEC_BACKEND > -I/c/prog/3p64/include/libxml2 -I/c/prog/3p64/include > -I/c/prog/3p64/openssl/include > "-I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include/port/win32" > -c -o pg_stat_statements.o > /home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/contrib/pg_stat_statements/pg_stat_statements.c > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/contrib/pg_stat_statements/pg_stat_statements.c: > In function 'pgss_ProcessUtility': > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/contrib/pg_stat_statements/pg_stat_statements.c:998:4: > warning: unknown conversion type character 'l' in format [-Wformat=] > sscanf(completionTag, "COPY " UINT64_FORMAT, &rows) != 1) > ^ > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/contrib/pg_stat_statements/pg_stat_statements.c:998:4: > warning: too many arguments for format [-Wformat-extra-args] Hm... After a little bit of googling, I found that: http://sourceforge.net/p/mingw/bugs/1315/ This seems to be part of the standard of Microsoft, making sscanf not accept ISO-C99 format specifiers. Looking more into the code, this is a pretty old warning introduced by a5495cd of 2009. This code is btw correct as the number of rows returned by a COPY is uint64. Any idea what would be doable here? Regards, -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers