summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorMatthieu Patou <mat@matws.net>2012-03-12 16:21:28 -0700
committerMatthieu Patou <mat@samba.org>2012-03-14 06:52:27 +0100
commitb68f72c7f58c05870100d0d993c9baf0fa80a891 (patch)
tree0853da0922a85295e57c2d617548e4da4143cb1d /source3
parent6dea4f24dc023a8234de01bbdcd012df29d3abf9 (diff)
downloadsamba-b68f72c7f58c05870100d0d993c9baf0fa80a891.tar.gz
samba-b68f72c7f58c05870100d0d993c9baf0fa80a891.tar.bz2
samba-b68f72c7f58c05870100d0d993c9baf0fa80a891.zip
lib/crypto: Detect CommonCrypto and use it if available
CommonCrypto/CommonDigest is available on Mac and there is function in the libc for MD5 calculation. MD5Final is a C define of CC_MD5_Final. Under some circumstance we have the symbol defined twice in samba binaries on Snow Leopard at least. By detecting CommonCrypto/CommonDigest we end up always using the system version if available.
Diffstat (limited to 'source3')
-rw-r--r--source3/Makefile.in2
-rw-r--r--source3/configure.in7
2 files changed, 8 insertions, 1 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 5fcf8598e3..acd47b7467 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -422,7 +422,7 @@ UTIL_OBJ = ../lib/util/rbtree.o ../lib/util/signal.o ../lib/util/time.o \
../lib/util/blocking.o ../lib/util/rfc1738.o \
../lib/util/select.o ../lib/util/util_pw.o ../lib/util/server_id.o
-CRYPTO_OBJ = ../lib/crypto/crc32.o ../lib/crypto/md5.o \
+CRYPTO_OBJ = ../lib/crypto/crc32.o @CRYPTO_MD5_OBJ@ \
../lib/crypto/hmacmd5.o ../lib/crypto/arcfour.o \
../lib/crypto/md4.o \
../lib/crypto/sha256.o ../lib/crypto/hmacsha256.o \
diff --git a/source3/configure.in b/source3/configure.in
index 3736dcbedb..e0fe79c9d0 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -750,12 +750,19 @@ AC_CHECK_HEADERS(xfs/libxfs.h)
AC_CHECK_HEADERS(netgroup.h)
AC_CHECK_HEADERS(linux/falloc.h)
AC_CHECK_HEADERS(sys/uuid.h)
+AC_CHECK_HEADERS(CommonCrypto/CommonDigest.h)
AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
#if HAVE_RPC_RPC_H
#include <rpc/rpc.h>
#endif
]])
+CRYPTO_MD5_OBJ=
+if test "x$ac_cv_header_CommonCrypto_CommonDigest_h" != "xyes"
+then
+ CRYPTO_MD5_OBJ="../lib/crypto/md5.o"
+fi
+AC_SUBST(CRYPTO_MD5_OBJ)
## These fail to compile on IRIX so just check for their presence
AC_CHECK_HEADERS(sys/mode.h,,,)