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