summaryrefslogtreecommitdiff
path: root/main/openssl/crypto/armcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/openssl/crypto/armcap.c')
-rw-r--r--main/openssl/crypto/armcap.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main/openssl/crypto/armcap.c b/main/openssl/crypto/armcap.c
index 7e46d07a..59b74948 100644
--- a/main/openssl/crypto/armcap.c
+++ b/main/openssl/crypto/armcap.c
@@ -68,6 +68,14 @@ static unsigned long (*getauxval)(unsigned long) = NULL;
# define HWCAP_CE_SHA256 (1 << 6)
#endif
+#ifdef ANDROID
+// Works around a bug where Android versions up to and including L don't
+// properly restore the signal mask when asked.
+#define sigsetjmp(env,savesigs) \
+ (sigprocmask(SIG_SETMASK,&ill_act.sa_mask,NULL), \
+ sigsetjmp(env,savesigs))
+#endif
+
void OPENSSL_cpuid_setup(void)
{
char *e;