[openssl-commits] [openssl] master update
Andy Polyakov
appro at openssl.org
Sun Apr 2 18:48:34 UTC 2017
The branch master has been updated
via 0bd93bbe4ae60e5f318b298bfe617e468a7b71d0 (commit)
from d83112b7fd3b0e751f8a5947e5a93db1cbbe86dc (commit)
- Log -----------------------------------------------------------------
commit 0bd93bbe4ae60e5f318b298bfe617e468a7b71d0
Author: Andy Polyakov <appro at openssl.org>
Date: Sat Apr 1 15:28:28 2017 +0200
crypto/ppccap.c: SIGILL-free processor capabilities detection on MacOS X.
It seems to be problematic to probe processor capabilities with SIGILL
on MacOS X. The problem should be limited to cases when application code
is debugged, but crashes were reported even during normal execution...
Reviewed-by: Kurt Roeckx <kurt at openssl.org>
Reviewed-by: Richard Levitte <levitte at openssl.org>
Reviewed-by: Rich Salz <rsalz at openssl.org>
-----------------------------------------------------------------------
Summary of changes:
crypto/ppccap.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/crypto/ppccap.c b/crypto/ppccap.c
index b2b898e..2f7cd8e 100644
--- a/crypto/ppccap.c
+++ b/crypto/ppccap.c
@@ -22,6 +22,10 @@
# define __power_set(a) (_system_configuration.implementation & (a))
# endif
#endif
+#if defined(__APPLE__) && defined(__MACH__)
+# include <sys/types.h>
+# include <sys/sysctl.h>
+#endif
#include <openssl/crypto.h>
#include <openssl/bn.h>
@@ -240,6 +244,28 @@ void OPENSSL_cpuid_setup(void)
# endif
#endif
+#if defined(__APPLE__) && defined(__MACH__)
+ OPENSSL_ppccap_P |= PPC_FPU;
+
+ {
+ int val;
+ size_t len = sizeof(val);
+
+ if (sysctlbyname("hw.optional.64bitops", &val, &len, NULL, 0) == 0) {
+ if (val)
+ OPENSSL_ppccap_P |= PPC_FPU64;
+ }
+
+ len = sizeof(val);
+ if (sysctlbyname("hw.optional.altivec", &val, &len, NULL, 0) == 0) {
+ if (val)
+ OPENSSL_ppccap_P |= PPC_ALTIVEC;
+ }
+
+ return;
+ }
+#endif
+
if (getauxval != NULL) {
unsigned long hwcap = getauxval(HWCAP);
More information about the openssl-commits
mailing list