diff options
Diffstat (limited to 'main/openssl/crypto/armcap.c')
-rw-r--r-- | main/openssl/crypto/armcap.c | 8 |
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; |