commit 9afc2ee682d2f9fd3ad938756c841d7f0eed5f21 Author: Anton Blanchard Date: Thu Jul 11 12:03:57 2013 +1000 powerpc: enhance 32/64bit detection We were using uname to determine if userspace was 32 or 64bit. This fails when we have a 64bit kernel and a 32bit userspace. * configure.ac (powerpc*): Similar to x86, use a runtime test to determine if we are 32 or 64bit. Signed-off-by: Anton Blanchard diff --git a/configure.ac b/configure.ac index 03e49fe..b3b62e8 100644 --- a/configure.ac +++ b/configure.ac @@ -54,7 +54,11 @@ alpha*) powerpc*) arch=powerpc AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.]) - if test $host_cpu = powerpc64; then + AC_TRY_COMPILE( +[#ifndef __LP64__ +# error 32 bit +#endif], [], ppc_bits=64, ppc_bits=32) + if test "$ppc_bits" = "64"; then AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.]) fi ;; diff -up strace-4.8/configure.ppc64 strace-4.8/configure --- strace-4.8/configure.ppc64 2013-06-05 02:02:43.000000000 +0200 +++ strace-4.8/configure 2014-07-25 16:16:01.000000000 +0200 @@ -4660,10 +4660,29 @@ powerpc*) $as_echo "#define POWERPC 1" >>confdefs.h - if test $host_cpu = powerpc64; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __LP64__ +# error 32 bit +#endif +int +main () +{ -$as_echo "#define POWERPC64 1" >>confdefs.h + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ppc_bits=64 +else + ppc_bits=32 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ppc_bits" = "64"; then +$as_echo "#define POWERPC64 1" >>confdefs.h + fi ;; arm*)