summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfig19
-rw-r--r--crypto/ppccap.c7
2 files changed, 20 insertions, 6 deletions
diff --git a/config b/config
index bebaef2308..fd4b1984a5 100755
--- a/config
+++ b/config
@@ -587,13 +587,20 @@ case "$GUESSOS" in
fi
;;
ppc64-*-linux2)
- echo "WARNING! If you wish to build 64-bit library, then you have to"
- echo " invoke './Configure linux-ppc64' *manually*."
- if [ "$TEST" = "false" -a -t 1 ]; then
- echo " You have about 5 seconds to press Ctrl-C to abort."
- (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
+ if [ -z "$KERNEL_BITS" ]; then
+ echo "WARNING! If you wish to build 64-bit library, then you have to"
+ echo " invoke './Configure linux-ppc64' *manually*."
+ if [ "$TEST" = "false" -a -t 1 ]; then
+ echo " You have about 5 seconds to press Ctrl-C to abort."
+ (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
+ fi
+ fi
+ if [ "$KERNEL_BITS" = "64" ]; then
+ OUT="linux-ppc64"
+ else
+ OUT="linux-ppc"
+ (echo "__LP64__" | gcc -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null) || options="$options -m32"
fi
- OUT="linux-ppc"
;;
ppc-*-linux2) OUT="linux-ppc" ;;
mips64*-*-linux2)
diff --git a/crypto/ppccap.c b/crypto/ppccap.c
index f71ba66aa3..531f1b3be8 100644
--- a/crypto/ppccap.c
+++ b/crypto/ppccap.c
@@ -4,6 +4,9 @@
#include <setjmp.h>
#include <signal.h>
#include <unistd.h>
+#ifdef __linux
+#include <sys/utsname.h>
+#endif
#include <crypto.h>
#include <openssl/bn.h>
@@ -102,6 +105,10 @@ void OPENSSL_cpuid_setup(void)
if (sizeof(size_t)==4)
{
+#ifdef __linux
+ struct utsname uts;
+ if (uname(&uts)==0 && strcmp(uts.machine,"ppc64")==0)
+#endif
if (sigsetjmp(ill_jmp,1) == 0)
{
OPENSSL_ppc64_probe();