--- config.guess.orig 2013-03-29 11:15:46 +0400 +++ config.guess 2013-03-29 11:20:05 +0400 @@ -803,8 +803,45 @@ echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; + # This uname only tells us that MSYS is in MinGW mode. + # The toolchain used might be i686-pc-mingw32 + # or x86_64-w64-mingw32 - MSYS can't know. + # Try cc test. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + __MINGW32__ + __MINGW64__ + __MINGW64_VERSION_MAJOR +EOF + if $CC_FOR_BUILD -E $dummy.c 2>/dev/null | \ + grep -q __MINGW32__ >/dev/null + then + # __MINGW32__ is not defined - this isn't MinGW at all. + : + else + if $CC_FOR_BUILD -E $dummy.c 2>/dev/null | \ + grep -q __MINGW64__ >/dev/null + then + # 32-bit mingw + machine=i686 + else + # 64-bit mingw + machine=x86_64 + fi + + if $CC_FOR_BUILD -E $dummy.c 2>/dev/null | \ + grep -q __MINGW64_VERSION_MAJOR >/dev/null + then + # mingw.org toolchain + echo ${machine}-pc-mingw32 + else + # mingw-w64 toolchain + echo ${machine}-w64-mingw32 + fi + exit + fi + ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; --- Changelog.orig 2013-03-29 11:47:35 +0400 +++ Changelog 2013-03-29 11:26:59 +0400 @@ -1,3 +1,9 @@ +2013-03-29 LRN + + * config.guess (*:MINGW:*:*): do not use uname output to identify + the system, use compiler tests to detect machine architecture + (i686 or x86_64) and toolchain vendor (mingw.org or mingw-w64). + 2013-02-12 Christian Svensson * config.guess (or1k:Linux:*:*): New.