]> git.eshelyaron.com Git - emacs.git/commitdiff
configure.ac [mingw]: Set $canonical default value
authorOscar Fuentes <ofv@wanadoo.es>
Tue, 25 Nov 2014 02:29:43 +0000 (03:29 +0100)
committerOscar Fuentes <ofv@wanadoo.es>
Tue, 25 Nov 2014 02:29:43 +0000 (03:29 +0100)
... 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.

ChangeLog
configure.ac

index 5fe2a913b933c54bf152f512fd74d53526bca938..808f3a04717e7970f9ab7472c5e29403c5a9ff94 100644 (file)
--- 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,
index 0f1508f3a94d8ecc4bd878eba76fcf93fa03641a..6b6b1c7d22f66763e7080b3d9988bda1294a3120 100644 (file)
@@ -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