summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2014-11-25 03:29:43 +0100
committerOscar Fuentes <ofv@wanadoo.es>2014-11-25 03:29:43 +0100
commit70d7aa8a289375a119f5d4e785c8a5882f0a2e99 (patch)
treeeae373296db49f2ff4ab0b87d1d270c9a17f8fae
parent27f46ae31cd289dbff4c521fcf37a1d048693f6e (diff)
downloademacs-70d7aa8a289375a119f5d4e785c8a5882f0a2e99.tar.gz
configure.ac [mingw]: Set $canonical default value
... as per the compiler's target. The value provided by MSYS2 `uname' is not correct when MSYS2 runs on one architecture (x86_64) and the user is building for another (i686). * configure.ac [mingw]: Set $canonical default value as per the compiler's target.
-rw-r--r--ChangeLog5
-rw-r--r--configure.ac28
2 files changed, 33 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5fe2a913b93..808f3a04717 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-25 Oscar Fuentes <ofv@wanadoo.es>
+
+ * configure.ac [MINGW]: Set $canonical default value as per the
+ compiler's target.
+
2014-11-24 Glenn Morris <rgm@gnu.org>
* configure.ac [HAVE_W32]: Generate nt/*.rc files when HAVE_W32,
diff --git a/configure.ac b/configure.ac
index 0f1508f3a94..6b6b1c7d22f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,6 +145,34 @@ case $canonical in
*-mingw*)
. $srcdir/nt/mingw-cfg.site
+ # When we build with MinGW under MSYS, we are cross-compiling. Hence
+ # we can't rely on the output of MSYS `uname' for the architecture
+ # (32 bit MinGW compiler with 64 bit MSYS2, for instance) and must
+ # use the compiler's target, unless when the user explicitly
+ # provides one:
+ if test -z $target_alias; then
+ AC_MSG_CHECKING([the compiler's target])
+ if test -z $CC; then
+ cc=gcc
+ else
+ cc=$CC
+ fi
+ t=`$cc -v 2>&1 | sed -n 's/Target: //p'`
+ case "$t" in
+ *-*) canonical=$t
+ ;;
+ "") AC_MSG_ERROR([Impossible to obtain $cc compiler target.
+Please explicitly provide --target])
+ ;;
+ *) AC_MSG_WARN([Compiler reported non-standard target.
+Defaulting to $canonical.])
+ ;;
+ esac
+ AC_MSG_RESULT([$canonical])
+ else
+ canonical=$target_alias
+ fi
+
case $srcdir in
/* | ?:*)
# srcdir is an absolute path. In this case, force the format