summaryrefslogtreecommitdiffstats
path: root/crypto/md5
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2020-09-06 20:39:12 +1000
committerPauli <paul.dale@oracle.com>2020-09-09 17:59:08 +1000
commite942111267f292070cbc8397e0cc5fddaf8371a0 (patch)
tree3b06d018b645a5951184c2c230bfa568befe8229 /crypto/md5
parent5c97eeb726dac6194e7a3aecf8231a512e0243ea (diff)
In a non-shared build, don't include the md5 object files in legacy provider
Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/11961)
Diffstat (limited to 'crypto/md5')
-rw-r--r--crypto/md5/build.info11
1 files changed, 10 insertions, 1 deletions
diff --git a/crypto/md5/build.info b/crypto/md5/build.info
index 18d5342a36..bbb70fde3c 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.