The autoconf system (eg the output from config.guess) expects the triplet (cpu-vendor-os) to have mingw32 or mingw64 as the os part, but the mingw-w64 project chose a different triplet (cpu-w64-mingw32) which looks like mingw32. To handle that we convert the triplet back to the standard form. All our tests can therefore continue to check the os part of the triplet to determine whether we are working with mingw32 or mingw64.

This commit is contained in:
Richard Frith-Macdonald 2021-02-25 21:34:51 +00:00
parent 5b47b25b28
commit 9115af78c6
2 changed files with 44 additions and 4 deletions

24
configure vendored
View file

@ -4402,6 +4402,15 @@ case "$target_os" in
LIB_DIR="$LIB_DIR -L/usr/local/lib";;
netbsd*) INCLUDES="$INCLUDES -I/usr/pkg/include"
LIB_DIR="$LIB_DIR -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
*mingw32* )
# NB. autoconf expects the triplet (cpu-vendor-os) to have mingw32 or
# mingw64 as the os part, but the mingw-w64 project chose a different
# triplet (cpu-w64-mingw32) which looks like mingw32. To handle that
# we convert the triplet back to the standard form.
if test "$target_vendor" = w64; then
target_vendor=pc
target_os=mingw64
fi;;
esac
#--------------------------------------------------------------------
@ -4414,8 +4423,19 @@ case $host_os in
CYGWIN=yes
MSWIND=yes;;
*mingw32* )
MINGW32=yes
MINGW64=no
if test "$host_vendor" = w64; then
# NB. autoconf expects the triplet (cpu-vendor-os) to have mingw32 or
# mingw64 as the os part, but the mingw-w64 project chose a different
# triplet (cpu-w64-mingw32) which looks like mingw32. To handle that
# we convert the triplet back to the standard form.
host_vendor=pc
host_os=mingw64
MINGW32=yes
MINGW64=no
else
MINGW32=yes
MINGW64=no
fi
CYGWIN=no
MSWIND=yes;;
*mingw64* )

View file

@ -117,6 +117,15 @@ case "$target_os" in
LIB_DIR="$LIB_DIR -L/usr/local/lib";;
netbsd*) INCLUDES="$INCLUDES -I/usr/pkg/include"
LIB_DIR="$LIB_DIR -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
*mingw32* )
# NB. autoconf expects the triplet (cpu-vendor-os) to have mingw32 or
# mingw64 as the os part, but the mingw-w64 project chose a different
# triplet (cpu-w64-mingw32) which looks like mingw32. To handle that
# we convert the triplet back to the standard form.
if test "$target_vendor" = w64; then
target_vendor=pc
target_os=mingw64
fi;;
esac
#--------------------------------------------------------------------
@ -129,8 +138,19 @@ case $host_os in
CYGWIN=yes
MSWIND=yes;;
*mingw32* )
MINGW32=yes
MINGW64=no
if test "$host_vendor" = w64; then
# NB. autoconf expects the triplet (cpu-vendor-os) to have mingw32 or
# mingw64 as the os part, but the mingw-w64 project chose a different
# triplet (cpu-w64-mingw32) which looks like mingw32. To handle that
# we convert the triplet back to the standard form.
host_vendor=pc
host_os=mingw64
MINGW32=yes
MINGW64=no
else
MINGW32=yes
MINGW64=no
fi
CYGWIN=no
MSWIND=yes;;
*mingw64* )