crypto/s390xcap.c: Add guards around the GETAUXVAL checks
authorRichard Levitte <levitte@openssl.org>
Fri, 13 Sep 2019 09:43:18 +0000 (11:43 +0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 21 Oct 2019 13:14:09 +0000 (15:14 +0200)
HWCAP_S390_VX is missing on SUSE Linux Enterprise Server 12 SP1, so we
add a guard that checks the present of that macro.  While we're at it,
we do the same with HWCAP_S390_STFLE, for consistency.

Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com>
(Merged from https://github.com/openssl/openssl/pull/9892)

crypto/s390xcap.c

index eb00a4a7bd3617976d1243653b0a9ea1bb4e6d78..f8e0234968e4fc408f3317233a74eb1b9fa77b90 100644 (file)
@@ -19,7 +19,9 @@
 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
 # if __GLIBC_PREREQ(2, 16)
 #  include <sys/auxv.h>
-#  define OSSL_IMPLEMENT_GETAUXVAL
+#  if defined(HWCAP_S390_STFLE) && defined(HWCAP_S390_VX)
+#   define OSSL_IMPLEMENT_GETAUXVAL
+#  endif
 # endif
 #endif
 
@@ -82,7 +84,7 @@ void OPENSSL_cpuid_setup(void)
     /* set a bit that will not be tested later */
     OPENSSL_s390xcap_P.stfle[0] |= S390X_CAPBIT(0);
 
-#ifdef OSSL_IMPLEMENT_GETAUXVAL
+#if defined(OSSL_IMPLEMENT_GETAUXVAL)
     {
         const unsigned long hwcap = getauxval(AT_HWCAP);