From: Pauli Date: Sun, 6 Sep 2020 10:39:12 +0000 (+1000) Subject: In a non-shared build, don't include the md5 object files in legacy provider X-Git-Tag: openssl-3.0.0-alpha7~349 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e942111267f292070cbc8397e0cc5fddaf8371a0;p=thirdparty%2Fopenssl.git In a non-shared build, don't include the md5 object files in legacy provider Reviewed-by: Ben Kaduk (Merged from https://github.com/openssl/openssl/pull/11961) --- diff --git a/crypto/md5/build.info b/crypto/md5/build.info index 18d5342a36b..bbb70fde3c1 100644 --- a/crypto/md5/build.info +++ b/crypto/md5/build.info @@ -17,7 +17,16 @@ ENDIF $COMMON=md5_dgst.c md5_one.c md5_sha1.c $MD5ASM SOURCE[../../libcrypto]=$COMMON SOURCE[../../providers/libimplementations.a]=$COMMON -SOURCE[../../providers/liblegacy.a]=$COMMON + +# A no-deprecated no-shared build ends up with double function definitions +# without conditioning this on dso. The issue is MD5 which is needed in the +# legacy provider for one of the spliced algorithms, however it resides in the +# default provider. A no-deprecated build removes the external definition from +# libcrypto and this means that the code needs to be in liblegacy. However, +# when building without 'dso', liblegacy is included in libcrypto. +IF[{- !$disabled{dso} -}] + SOURCE[../../providers/liblegacy.a]=$COMMON +ENDIF # Implementations are now spread across several libraries, so the defines # need to be applied to all affected libraries and modules.