Hi all, In order to do some testing on a Windows box, I've spent a bit of time this weekend setting up a mingw-w64 build environment on Windows 10 using http://wiki.qemu-project.org/Hosts/W32 as a guideline.
After a few false starts, I was able to get the basic environment working but so far I've been unable to build git master due to a couple of failures: 1) texi2pod.pl error GEN qemu.1 Bareword found where operator expected at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 349, near "@(deftp" (Might be a runaway multi-line // string starting on line 337) (Missing operator before deftp?) Unquoted string "deftp" may clash with future reserved word at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 349. Backslash found where operator expected at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 349, near ")\" (Missing operator before \?) Unrecognized escape \s passed through at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 349. syntax error at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 349, near "@(deftp" Missing right curly or square bracket at /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl line 534, at end of line Execution of /c/Users/Mark/qemu/src/qemu/scripts/texi2pod.pl aborted due to compilation errors. make: *** [qemu.1] Error 255 I'm not sure what the workaround for this is, however it is possible to get further with the build by passing --disable-docs to configure. 2) glib-compat mkdtemp() error CC qga/commands.o In file included from c:/Users/Mark/qemu/src/qemu/include/qemu/osdep.h:107:0, from qga/commands.c:13: c:/Users/Mark/qemu/src/qemu/include/glib-compat.h: In function 'qemu_g_dir_make_tmp': c:/Users/Mark/qemu/src/qemu/include/glib-compat.h:59:9: error: implicit declaration of function 'mkdtemp' [-Werror=implicit-function-declaration] if (mkdtemp(path) != NULL) { ^~~~~~~ c:/Users/Mark/qemu/src/qemu/include/glib-compat.h:59:5: error: nested extern declaration of 'mkdtemp' [-Werror=nested-externs] if (mkdtemp(path) != NULL) { ^~ c:/Users/Mark/qemu/src/qemu/include/glib-compat.h:59:23: error: comparison between pointer and integer [-Werror] if (mkdtemp(path) != NULL) { ^~ cc1.exe: all warnings being treated as errors make: *** [qga/commands.o] Error 1 This one seems to be a genuine bug since the wiki above mentions that 64-bit builds cannot use versions of glib > 2.22 due to a change in the way global symbols are managed. Since g_dir_make_tmp() only appears in glib 2.30 and later, we end up using the fallback code which fails because mkdtemp() isn't available on Windows. My guess would be that most people are using the Docker image to cross-compile Windows binaries rather than attempting a native build which is why no-one has really noticed (the mkdtemp() change went into the tree around August last year). Do people consider native Windows builds to still be supported? ATB, Mark.