The branch OpenSSL_1_1_1-stable has been updated via 2357e6e94a46362dbf56eecfec6ffbaa8bd76a68 (commit) from b2dea4d5f22ec146373324c282fb1bcecd5a7d90 (commit)
- Log ----------------------------------------------------------------- commit 2357e6e94a46362dbf56eecfec6ffbaa8bd76a68 Author: Lars Immisch <immi...@adobe.com> Date: Thu Mar 5 11:26:06 2020 +0100 Use getauxval on Android with API level > 18 We received analytics that devices of the device family Oppo A37x are crashing with SIGILL when trying to load libcrypto.so. These crashes were fixed by using the system-supplied getauxval function. Reviewed-by: Paul Dale <pa...@openssl.org> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15763) ----------------------------------------------------------------------- Summary of changes: crypto/armcap.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crypto/armcap.c b/crypto/armcap.c index 9e209f36aa..c5685bde58 100644 --- a/crypto/armcap.c +++ b/crypto/armcap.c @@ -93,6 +93,15 @@ static unsigned long getauxval(unsigned long key) # endif # endif +/* + * Android: according to https://developer.android.com/ndk/guides/cpu-features, + * getauxval is supported starting with API level 18 + */ +# if defined(__ANDROID__) && defined(__ANDROID_API__) && __ANDROID_API__ >= 18 +# include <sys/auxv.h> +# define OSSL_IMPLEMENT_GETAUXVAL +# endif + /* * ARM puts the feature bits for Crypto Extensions in AT_HWCAP2, whereas * AArch64 used AT_HWCAP.