diff options
author | Andy Polyakov <appro@openssl.org> | 2012-10-21 18:19:41 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2012-10-21 18:19:41 +0000 |
commit | 78c3e20579d3baa159c8b51b59d415b6e521614b (patch) | |
tree | e2b1e2556addea47a495681fa11b6164350d2f0f | |
parent | 0c832ec5c6741b2e972d39612f702bcfebe18b20 (diff) |
linux-pcc: make it more robust and recognize KERNEL_BITS variable.
-rwxr-xr-x | config | 19 | ||||
-rw-r--r-- | crypto/ppccap.c | 7 |
2 files changed, 20 insertions, 6 deletions
@@ -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(); |