Do not build P10-specific Chacha20 assembler on AIX
authorTomas Mraz <tomas@openssl.org>
Thu, 8 Dec 2022 16:26:19 +0000 (17:26 +0100)
committerTomas Mraz <tomas@openssl.org>
Wed, 14 Dec 2022 11:53:00 +0000 (12:53 +0100)
Fixes #18145

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19865)

(cherry picked from commit cdcc439aa0acba8a50b5e3444fb12d6e1157b991)

crypto/chacha/build.info
crypto/chacha/chacha_ppc.c

index d0400db24d16be5adcf5a95819a3a68bf99da2f2..b8c0a7870bcc2e0daaa46b1c1c4af96953073eb6 100644 (file)
@@ -12,7 +12,10 @@ IF[{- !$disabled{asm} -}]
   $CHACHAASM_armv4=chacha-armv4.S
   $CHACHAASM_aarch64=chacha-armv8.S chacha-armv8-sve.S
 
-  $CHACHAASM_ppc32=chacha_ppc.c chacha-ppc.s chachap10-ppc.s
+  $CHACHAASM_ppc32=chacha_ppc.c chacha-ppc.s
+  IF[{- $target{sys_id} ne "AIX" -}]
+    $CHACHAASM_ppc32=chacha_ppc.c chacha-ppc.s chachap10-ppc.s
+  ENDIF
   $CHACHAASM_ppc64=$CHACHAASM_ppc32
 
   $CHACHAASM_c64xplus=chacha-c64xplus.s
index 943559845241581e7f388081cf5b21910ea77fa9..05d8cf100df2e525ad7c9870d4feef00cb479a41 100644 (file)
@@ -30,9 +30,11 @@ void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,
                     size_t len, const unsigned int key[8],
                     const unsigned int counter[4])
 {
+#ifndef OPENSSL_SYS_AIX
     OPENSSL_ppccap_P & PPC_BRD31
-        ? ChaCha20_ctr32_vsx_p10(out, inp, len, key, counter)
-        :OPENSSL_ppccap_P & PPC_CRYPTO207
+        ? ChaCha20_ctr32_vsx_p10(out, inp, len, key, counter) :
+#endif
+          OPENSSL_ppccap_P & PPC_CRYPTO207
             ? ChaCha20_ctr32_vsx(out, inp, len, key, counter)
             : OPENSSL_ppccap_P & PPC_ALTIVEC
                  ? ChaCha20_ctr32_vmx(out, inp, len, key, counter)