From 64fd90fbe99dde18de3fc7c3a6b06793d87a4aad Mon Sep 17 00:00:00 2001 From: Shane Lontis Date: Tue, 15 Oct 2019 12:35:41 +1000 Subject: [PATCH] Fix missing Assembler defines Implementations are now spread across several libraries, so the assembler related defines need to be applied to all affected libraries and modules. AES_ASM define was missing from libimplementations.a which disabled AESNI aarch64 changes were made by xkqian. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/10180) --- crypto/aes/build.info | 8 +++++++- crypto/bn/build.info | 5 ++++- crypto/build.info | 8 ++++++-- crypto/ec/build.info | 6 +++++- crypto/md5/build.info | 4 ++++ crypto/modes/build.info | 6 +++++- crypto/poly1305/build.info | 4 ++++ crypto/ripemd/build.info | 4 ++++ crypto/sha/build.info | 8 ++++++-- crypto/whrlpool/build.info | 4 ++++ 10 files changed, 49 insertions(+), 8 deletions(-) diff --git a/crypto/aes/build.info b/crypto/aes/build.info index 59c009761e..291bf2af9b 100644 --- a/crypto/aes/build.info +++ b/crypto/aes/build.info @@ -61,9 +61,15 @@ ENDIF $COMMON=aes_misc.c aes_ecb.c $AESASM SOURCE[../../libcrypto]=$COMMON aes_cfb.c aes_ofb.c aes_ige.c aes_wrap.c -DEFINE[../../libcrypto]=$AESDEF SOURCE[../../providers/libfips.a]=$COMMON + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. +DEFINE[../../libcrypto]=$AESDEF DEFINE[../../providers/libfips.a]=$AESDEF +DEFINE[../../providers/libimplementations.a]=$AESDEF +# fipsprov.c needs access to AESNI. +DEFINE[../../providers/fips]=$AESDEF GENERATE[aes-ia64.s]=asm/aes-ia64.S diff --git a/crypto/bn/build.info b/crypto/bn/build.info index 75b84d0df6..5ad8bf14d3 100644 --- a/crypto/bn/build.info +++ b/crypto/bn/build.info @@ -108,9 +108,12 @@ $COMMON=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c \ bn_const.c bn_x931p.c bn_intern.c bn_dh.c \ bn_rsa_fips186_4.c $BNASM SOURCE[../../libcrypto]=$COMMON bn_print.c bn_err.c bn_depr.c bn_srp.c -DEFINE[../../libcrypto]=$BNDEF SOURCE[../../providers/libfips.a]=$COMMON +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. +DEFINE[../../libcrypto]=$BNDEF DEFINE[../../providers/libfips.a]=$BNDEF +DEFINE[../../providers/libimplementations.a]=$BNDEF INCLUDE[../../libcrypto]=../../crypto/include diff --git a/crypto/build.info b/crypto/build.info index f41ecf448f..7d3eb29570 100644 --- a/crypto/build.info +++ b/crypto/build.info @@ -77,10 +77,14 @@ SOURCE[../libcrypto]=$UTIL_COMMON \ cversion.c info.c cpt_err.c ebcdic.c uid.c o_time.c o_dir.c \ o_fopen.c getenv.c o_init.c o_fips.c init.c trace.c provider.c \ $UPLINKSRC -DEFINE[../libcrypto]=$UTIL_DEFINE $UPLINKDEF SOURCE[../providers/libfips.a]=$UTIL_COMMON -DEFINE[../providers/libfips.a]=$UTIL_DEFINE +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. +DEFINE[../libcrypto]=$UTIL_DEFINE $UPLINKDEF +DEFINE[../providers/libfips.a]=$UTIL_DEFINE +DEFINE[../providers/fips]=$UTIL_DEFINE +DEFINE[../providers/libimplementations.a]=$UTIL_DEFINE DEPEND[info.o]=buildinf.h DEPEND[cversion.o]=buildinf.h diff --git a/crypto/ec/build.info b/crypto/ec/build.info index 40aef36798..90aea66a14 100644 --- a/crypto/ec/build.info +++ b/crypto/ec/build.info @@ -56,9 +56,13 @@ $COMMON=ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \ $ECASM SOURCE[../../libcrypto]=$COMMON ec_ameth.c ec_pmeth.c ecx_meth.c ec_err.c \ ecdh_kdf.c eck_prn.c -DEFINE[../../libcrypto]=$ECDEF SOURCE[../../providers/libfips.a]=$COMMON + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. +DEFINE[../../libcrypto]=$ECDEF DEFINE[../../providers/libfips.a]=$ECDEF +DEFINE[../../providers/libimplementations.a]=$ECDEF GENERATE[ecp_nistz256-x86.s]=asm/ecp_nistz256-x86.pl diff --git a/crypto/md5/build.info b/crypto/md5/build.info index 081e0b08bd..d4494b274d 100644 --- a/crypto/md5/build.info +++ b/crypto/md5/build.info @@ -15,7 +15,11 @@ IF[{- !$disabled{asm} -}] ENDIF SOURCE[../../libcrypto]=md5_dgst.c md5_one.c md5_sha1.c $MD5ASM + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. DEFINE[../../libcrypto]=$MD5DEF +DEFINE[../../providers/libimplementations.a]=$MD5DEF GENERATE[md5-586.s]=asm/md5-586.pl diff --git a/crypto/modes/build.info b/crypto/modes/build.info index 4ae0d8b011..b741be821b 100644 --- a/crypto/modes/build.info +++ b/crypto/modes/build.info @@ -52,10 +52,14 @@ $COMMON=cbc128.c ctr128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c \ wrap128.c $MODESASM SOURCE[../../libcrypto]=$COMMON \ cts128.c ocb128.c siv128.c +SOURCE[../../providers/libfips.a]=$COMMON +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. DEFINE[../../libcrypto]=$MODESDEF -SOURCE[../../providers/libfips.a]=$COMMON DEFINE[../../providers/libfips.a]=$MODESDEF +DEFINE[../../providers/libimplementations.a]=$MODESDEF + INCLUDE[gcm128.o]=.. diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info index 29cdf4c861..6425a01583 100644 --- a/crypto/poly1305/build.info +++ b/crypto/poly1305/build.info @@ -30,7 +30,11 @@ IF[{- !$disabled{asm} -}] ENDIF SOURCE[../../libcrypto]=poly1305_ameth.c poly1305.c $POLY1305ASM + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. DEFINE[../../libcrypto]=$POLY1305DEF +DEFINE[../providers/libimplementations.a]=$POLY1305DEF GENERATE[poly1305-sparcv9.S]=asm/poly1305-sparcv9.pl INCLUDE[poly1305-sparcv9.o]=.. diff --git a/crypto/ripemd/build.info b/crypto/ripemd/build.info index c4baf63141..a0a45b0e84 100644 --- a/crypto/ripemd/build.info +++ b/crypto/ripemd/build.info @@ -13,7 +13,11 @@ IF[{- !$disabled{asm} -}] ENDIF SOURCE[../../libcrypto]=rmd_dgst.c rmd_one.c $RMD160ASM + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules DEFINE[../../libcrypto]=$RMD160DEF +DEFINE[../providers/libimplementations.a]=$RMD160DEF GENERATE[rmd-586.s]=asm/rmd-586.pl DEPEND[rmd-586.s]=../perlasm/x86asm.pl diff --git a/crypto/sha/build.info b/crypto/sha/build.info index 25c64a0e2c..dd10c5cd66 100644 --- a/crypto/sha/build.info +++ b/crypto/sha/build.info @@ -75,9 +75,13 @@ ENDIF $COMMON=sha1dgst.c sha256.c sha512.c sha3.c $SHA1ASM $KECCAK1600ASM SOURCE[../../libcrypto]=$COMMON sha1_one.c -DEFINE[../../libcrypto]=$SHA1DEF $KECCAK1600DEF SOURCE[../../providers/libfips.a]= $COMMON -DEFINE[../../providers/libfips.a]= $SHA1DEF $KECCAK1600DEF + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. +DEFINE[../../libcrypto]=$SHA1DEF $KECCAK1600DEF +DEFINE[../../providers/libfips.a]=$SHA1DEF $KECCAK1600DEF +DEFINE[../../providers/libimplementations.a]=$SHA1DEF $KECCAK1600DEF GENERATE[sha1-586.s]=asm/sha1-586.pl DEPEND[sha1-586.s]=../perlasm/x86asm.pl diff --git a/crypto/whrlpool/build.info b/crypto/whrlpool/build.info index 3276bd1237..6630a779f4 100644 --- a/crypto/whrlpool/build.info +++ b/crypto/whrlpool/build.info @@ -18,7 +18,11 @@ IF[{- !$disabled{asm} -}] ENDIF SOURCE[../../libcrypto]=wp_dgst.c $WPASM + +# Implementations are now spread across several libraries, so the defines +# need to be applied to all affected libraries and modules. DEFINE[../../libcrypto]=$WPDEF +DEFINE[../../providers/libimplementations.a]=$WPDEF GENERATE[wp-mmx.s]=asm/wp-mmx.pl DEPEND[wp-mmx.s]=../perlasm/x86asm.pl -- 2.25.1