]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
- Issue #14327: Call AC_CANONICAL_HOST in configure.ac and check in
authorMatthias Klose <doko@ubuntu.com>
Thu, 15 Mar 2012 21:19:28 +0000 (22:19 +0100)
committerMatthias Klose <doko@ubuntu.com>
Thu, 15 Mar 2012 21:19:28 +0000 (22:19 +0100)
  config.{guess,sub}. Don't use uname calls for cross builds.

Misc/NEWS
configure
configure.ac

index f746543e2e04b14d8babfb2c5f4283a7ad74f3b9..1c4c2155041e1ed4f14fc3a4b012ded651538c99 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -116,7 +116,7 @@ Build
 - Issue #14324: Fix configure tests for cross builds.
 
 - Issue #14327: Call AC_CANONICAL_HOST in configure.ac and check in
-  config.{guess,sub}.
+  config.{guess,sub}. Don't use uname calls for cross builds.
 
 Extension Modules
 -----------------
index a1d8612fff8ad59bad6efa11d1378723a45d26a4..be7684a89dcf3e8aaf6057f445ecfed1f61b0074 100755 (executable)
--- a/configure
+++ b/configure
@@ -3150,6 +3150,25 @@ fi
 $as_echo_n "checking MACHDEP... " >&6; }
 if test -z "$MACHDEP"
 then
+    # avoid using uname for cross builds
+    if test "$cross_compiling" = yes; then
+       # ac_sys_system and ac_sys_release are only used for setting
+       # `define_xopen_source' in the case statement below. For the
+       # current supported cross builds, this macro is not adjusted.
+       case "$host" in
+       *-*-linux*)
+               ac_sys_system=Linux
+               ;;
+       *-*-cygwin*)
+               ac_sys_system=Cygwin
+               ;;
+       *)
+               # for now, limit cross builds to known configurations
+               MACHDEP="unknown"
+               as_fn_error $? "cross build not supported for $host" "$LINENO" 5
+       esac
+       ac_sys_release=
+    else
        ac_sys_system=`uname -s`
        if test "$ac_sys_system" = "AIX" \
        -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
@@ -3157,19 +3176,20 @@ then
        else
                ac_sys_release=`uname -r`
        fi
-       ac_md_system=`echo $ac_sys_system |
-                          tr -d '/ ' | tr '[A-Z]' '[a-z]'`
-       ac_md_release=`echo $ac_sys_release |
-                          tr -d '/ ' | sed 's/^[A-Z]\.//' | sed 's/\..*//'`
-       MACHDEP="$ac_md_system$ac_md_release"
+    fi
+    ac_md_system=`echo $ac_sys_system |
+                       tr -d '/ ' | tr '[A-Z]' '[a-z]'`
+    ac_md_release=`echo $ac_sys_release |
+                       tr -d '/ ' | sed 's/^[A-Z]\.//' | sed 's/\..*//'`
+    MACHDEP="$ac_md_system$ac_md_release"
 
-       case $MACHDEP in
+    case $MACHDEP in
        linux*) MACHDEP="linux";;
        cygwin*) MACHDEP="cygwin";;
        darwin*) MACHDEP="darwin";;
         irix646) MACHDEP="irix6";;
        '')     MACHDEP="unknown";;
-       esac
+    esac
 fi
 
 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
@@ -3305,12 +3325,6 @@ $as_echo "$MACHDEP" >&6; }
 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking machine type as reported by uname -m" >&5
-$as_echo_n "checking machine type as reported by uname -m... " >&6; }
-ac_sys_machine=`uname -m`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_sys_machine" >&5
-$as_echo "$ac_sys_machine" >&6; }
-
 # checks for alternative programs
 
 # compiler flags are generated in two sets, BASECFLAGS and OPT.  OPT is just
@@ -5733,7 +5747,7 @@ $as_echo "$ac_cv_disable_unused_result_warning" >&6; }
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
     # the standard.
-    case $ac_sys_machine in
+    case $host in
          alpha*)
                 BASECFLAGS="$BASECFLAGS -mieee"
                 ;;
index dd09dc52346cfdef5fe0184a936d9486884200ba..0ae5003887727fc1349be768c880ea45abbe4d62 100644 (file)
@@ -292,6 +292,25 @@ AC_SUBST(MACHDEP)
 AC_MSG_CHECKING(MACHDEP)
 if test -z "$MACHDEP"
 then
+    # avoid using uname for cross builds
+    if test "$cross_compiling" = yes; then
+       # ac_sys_system and ac_sys_release are only used for setting
+       # `define_xopen_source' in the case statement below. For the
+       # current supported cross builds, this macro is not adjusted.
+       case "$host" in
+       *-*-linux*)
+               ac_sys_system=Linux
+               ;;
+       *-*-cygwin*)
+               ac_sys_system=Cygwin
+               ;;
+       *)
+               # for now, limit cross builds to known configurations
+               MACHDEP="unknown"
+               AC_MSG_ERROR([cross build not supported for $host])
+       esac
+       ac_sys_release=
+    else
        ac_sys_system=`uname -s`
        if test "$ac_sys_system" = "AIX" \
        -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
@@ -299,19 +318,20 @@ then
        else
                ac_sys_release=`uname -r`
        fi
-       ac_md_system=`echo $ac_sys_system |
-                          tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
-       ac_md_release=`echo $ac_sys_release |
-                          tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
-       MACHDEP="$ac_md_system$ac_md_release"
+    fi
+    ac_md_system=`echo $ac_sys_system |
+                       tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
+    ac_md_release=`echo $ac_sys_release |
+                       tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
+    MACHDEP="$ac_md_system$ac_md_release"
 
-       case $MACHDEP in
+    case $MACHDEP in
        linux*) MACHDEP="linux";;
        cygwin*) MACHDEP="cygwin";;
        darwin*) MACHDEP="darwin";;
         irix646) MACHDEP="irix6";;
        '')     MACHDEP="unknown";;
-       esac
+    esac
 fi
        
 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
@@ -439,10 +459,6 @@ AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
 
-AC_MSG_CHECKING(machine type as reported by uname -m)
-ac_sys_machine=`uname -m`
-AC_MSG_RESULT($ac_sys_machine)
-
 # checks for alternative programs
 
 # compiler flags are generated in two sets, BASECFLAGS and OPT.  OPT is just
@@ -1010,7 +1026,7 @@ yes)
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
     # the standard.
-    case $ac_sys_machine in
+    case $host in
          alpha*)
                 BASECFLAGS="$BASECFLAGS -mieee"
                 ;;