Bug 1629414 - Guard USE_PPC_CRYPTO and VSX types with __VSX__ and __ALTIVEC__ r=kjacobs NSS_3_53_BETA1
authorJ.C. Jones <jjones@mozilla.com>
Fri, 22 May 2020 22:34:20 +0000
changeset 15632 c7a1c91cd9befb627eb908965ae3a611b381c7ad
parent 15631 e23fe363fa058e9b289ae03cd352fc1f9e057146
child 15633 661e3e3f6ba515a36fc97038164979a216c9f87b
push id3752
push userjjones@mozilla.com
push dateFri, 22 May 2020 23:09:21 +0000
reviewerskjacobs
bugs1629414
Bug 1629414 - Guard USE_PPC_CRYPTO and VSX types with __VSX__ and __ALTIVEC__ r=kjacobs This avoids build errors on non-VSX architectures even when not compiling the POWER accelerated code. Differential Revision: https://phabricator.services.mozilla.com/D72014
lib/freebl/altivec-types.h
lib/freebl/ppc-crypto.h
--- a/lib/freebl/altivec-types.h
+++ b/lib/freebl/altivec-types.h
@@ -11,13 +11,15 @@
 #include <altivec.h>
 
 typedef __vector unsigned char vec_u8;
 typedef __vector signed char vec_s8;
 typedef __vector unsigned short vec_u16;
 typedef __vector signed short vec_s16;
 typedef __vector unsigned int vec_u32;
 typedef __vector signed int vec_s32;
+#ifdef __VSX__
 typedef __vector unsigned long long vec_u64;
 typedef __vector signed long long vec_s64;
+#endif
 typedef __vector float vec_f;
 
 #endif
--- a/lib/freebl/ppc-crypto.h
+++ b/lib/freebl/ppc-crypto.h
@@ -1,30 +1,31 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef PPC_CRYPTO_H
 #define PPC_CRYPTO_H 1
 
-#if defined(__powerpc64__) && !defined(NSS_DISABLE_ALTIVEC)
+#if defined(__powerpc64__) && defined(__ALTIVEC__) && \
+    !defined(NSS_DISABLE_ALTIVEC)
 #include "altivec-types.h"
 
 /* The ghash freebl test tries to use this in C++, and gcc defines conflict. */
 #ifdef __cplusplus
 #undef pixel
 #undef vector
 #undef bool
 #endif
 
 /*
  * PPC CRYPTO requires at least gcc 8 or clang. The LE check is purely
  * because it's only been tested on LE. If you're interested in BE,
  * please send a patch.
  */
 #if (defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 8)) && \
-    defined(IS_LITTLE_ENDIAN)
+    defined(IS_LITTLE_ENDIAN) && defined(__VSX__)
 #define USE_PPC_CRYPTO
 #endif
 
-#endif /* defined(__powerpc64__) && !defined(NSS_DISABLE_ALTIVEC) */
+#endif /* defined(__powerpc64__) && !defined(NSS_DISABLE_ALTIVEC) && defined(__ALTIVEC__) */
 
 #endif