Blob Blame History Raw
commit 9afc2ee682d2f9fd3ad938756c841d7f0eed5f21
Author: Anton Blanchard <anton@samba.org>
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 <anton@samba.org>

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*)