summaryrefslogtreecommitdiffstats
path: root/crypto/async/arch/async_posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/async/arch/async_posix.c')
-rw-r--r--crypto/async/arch/async_posix.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/crypto/async/arch/async_posix.c b/crypto/async/arch/async_posix.c
index 2d9e5102fc..33f2a3fa1e 100644
--- a/crypto/async/arch/async_posix.c
+++ b/crypto/async/arch/async_posix.c
@@ -62,7 +62,13 @@
int ASYNC_is_capable(void)
{
- return 1;
+ ucontext_t ctx;
+
+ /*
+ * Some platforms provide getcontext() but it does not work (notably
+ * MacOSX PPC64). Check for a working getcontext();
+ */
+ return getcontext(&ctx) == 0;
}
void async_local_cleanup(void)