mingw-w64-guile can not build for mingw64
SNARF print.x SNARF procprop.x G:/msys64/home/lixuzhang/MINGW-packages/mingw-w64-guile/src/guile-2.0.11/libguile/numbers.c:282:2: error: #error creation of mpz not implemented for this inum size
error creation of mpz not implemented for this inum size
^ SNARF procs.x SNARF promises.x Makefile:3716: recipe for target 'numbers.x' failed make[2]: *** [numbers.x] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/home/lixuzhang/MINGW-packages/mingw-w64-guile/src/build-x86_64-w64-mingw32/libguile' Makefile:1821: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/lixuzhang/MINGW-packages/mingw-w64-guile/src/build-x86_64-w64-mingw32' Makefile:1706: recipe for target 'all' failed make: *** [all] Error 2
Guile does a rather stupid assumption that sizeof(void*) == sizeof(long) which breaks things like numbers.c. In other words, 64-bit builds can break if this equality doesn't hold, depending on how the architecture and platform defines long. On Windows, sizeof(void*) should definitely equal sizeof(long) for 32-bit builds.
Fixing the actual issue could require some effort. I don't know how much of libguile's code depends on this assumption. See https://lists.gnu.org/archive/html/bug-guile/2014-11/msg00006.html