# HG changeset patch # User reimar # Date 1253367418 0 # Node ID 151a1c2a5658e7f77d3217ad35eda12a85e84d53 # Parent df76c6b66c8e9db85ac4c5d517dcfc1da887c33b Use a compilation check to distinguish between x86 and x86_64, uname and CFLAGS checks alone are not reliable. diff -r df76c6b66c8e -r 151a1c2a5658 configure --- a/configure Sat Sep 19 13:18:48 2009 +0000 +++ b/configure Sat Sep 19 13:36:58 2009 +0000 @@ -1392,16 +1392,8 @@ # x86/x86pc is used by QNX case "$(uname -m 2>&1)" in - i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;; + x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;; ia64) host_arch=ia64 ;; - x86_64|amd64) - if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \ - -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then - host_arch=x86_64 - else - host_arch=i386 - fi - ;; macppc|ppc) host_arch=ppc ;; ppc64) host_arch=ppc64 ;; alpha) host_arch=alpha ;; @@ -1442,14 +1434,6 @@ fi fi -echo "Detected operating system: $system_name" -echo "Detected host architecture: $host_arch" - -if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then - die "Runtime CPU detection only works for x86, x86-64 and PPC!" -fi - - extra_cflags="-I. $extra_cflags" _timer=timer-linux.c _getch=getch2.c @@ -1532,6 +1516,24 @@ echo >> "$TMPLOG" +if x86 ; then + cat > $TMPC << EOF +int main(void) { + int test[sizeof(char *)-7]; + return 0; +} +EOF + cc_check && host_arch=x86_64 || host_arch=i386 +fi + +echo "Detected operating system: $system_name" +echo "Detected host architecture: $host_arch" + +if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then + die "Runtime CPU detection only works for x86, x86-64 and PPC!" +fi + + # Checking CC version... # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure) if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then