summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2012-05-16 18:18:29 +0000
committerAndy Polyakov <appro@openssl.org>2012-05-16 18:18:29 +0000
commit6321ac9e15b23fdcbad25299ca4456a8186f6403 (patch)
treebf55a4352477f611aa8ddd54f0ad3418ae624c9d /crypto
parenteeca72f71ef0b679ba4314e6e9e6b74e14ca1f7c (diff)
ppccap.c: assume no features under 32-bit AIX kernel [from HEAD].
PR: 2810
Diffstat (limited to 'crypto')
-rw-r--r--crypto/ppccap.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/crypto/ppccap.c b/crypto/ppccap.c
index ab89ccaa12..f71ba66aa3 100644
--- a/crypto/ppccap.c
+++ b/crypto/ppccap.c
@@ -3,6 +3,7 @@
#include <string.h>
#include <setjmp.h>
#include <signal.h>
+#include <unistd.h>
#include <crypto.h>
#include <openssl/bn.h>
@@ -53,6 +54,7 @@ static sigjmp_buf ill_jmp;
static void ill_handler (int sig) { siglongjmp(ill_jmp,sig); }
void OPENSSL_ppc64_probe(void);
+void OPENSSL_altivec_probe(void);
void OPENSSL_cpuid_setup(void)
{
@@ -82,6 +84,15 @@ void OPENSSL_cpuid_setup(void)
OPENSSL_ppccap_P = 0;
+#if defined(_AIX)
+ if (sizeof(size_t)==4
+# if defined(_SC_AIX_KERNEL_BITMODE)
+ && sysconf(_SC_AIX_KERNEL_BITMODE)!=64
+# endif
+ )
+ return;
+#endif
+
memset(&ill_act,0,sizeof(ill_act));
ill_act.sa_handler = ill_handler;
ill_act.sa_mask = all_masked;