I've tried to cross-compile PostgreSQL from Linux to Windows, following the ideas of Andrew Dunstan [0]. This works quite well. I see two compiler warnings altogether, which might be worth getting rid of:
#1 mingwcompat.c:60:1: warning: ‘RegisterWaitForSingleObject’ redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] This can apparently go away with this: diff --git a/src/backend/port/win32/mingwcompat.c b/src/backend/port/win32/mingwcompat.c index 0978e8c..b1a5ca5 100644 --- a/src/backend/port/win32/mingwcompat.c +++ b/src/backend/port/win32/mingwcompat.c @@ -56,6 +56,7 @@ (PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG); static __RegisterWaitForSingleObject _RegisterWaitForSingleObject = NULL; +__attribute__((dllimport)) BOOL WINAPI RegisterWaitForSingleObject(PHANDLE phNewWaitObject, HANDLE hObject, Oddly, the mingw buildfarm member[1] complains about mingwcompat.c:66: warning: no previous prototype for 'RegisterWaitForSingleObject' instead. So there might be some divergent header files around. Anyone know details about this? #2 pg_stat_statements.c: In function ‘pgss_ProcessUtility’: pg_stat_statements.c:840:4: warning: unknown conversion type character ‘l’ in format [-Wformat] pg_stat_statements.c:840:4: warning: too many arguments for format [-Wformat-extra-args] We use a replacement snprintf and set the int64 format to %lld and %llu based on that. But pg_stat_statements.c uses sscanf, for which we have no replacement. The configure check comments # MinGW uses '%I64d', though gcc throws an warning with -Wall, # while '%lld' doesn't generate a warning, but doesn't work. So assuming that sscanf in the mingw C library works consistently with snprintf, that might mean that pg_stat_statements is broken on that platform. (The claim that %lld doesn't generate a warning is also questionable here.) [0]: http://people.planetpostgresql.org/andrew/index.php?/archives/264-Cross-compiling-PostgreSQL-for-WIndows.html [1]: http://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=narwhal&dt=2012-06-22%2004%3A00%3A05&stg=make PS: Instructions for Debian: apt-get install gcc-mingw-w64 ./configure --build=$(config/config.guess) --host=i686-w64-mingw32 --without-zlib --without-readline ZIC=/usr/sbin/zic make world -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers