From 30a224367595f9e2506e41053fc9c7cb96a90928 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 22 May 2013 00:14:19 +1000 Subject: [PATCH] build: Update md5.h detection in waf and autoconf to use sys/md5.h and -lmd This brings the two build systems in sync, without using md5.h (which is a problem name) Tested on FreeBSD Andrew Bartlett Reviewed-by: Richard Sharpe Autobuild-User(master): Richard Sharpe Autobuild-Date(master): Wed May 22 10:06:40 CEST 2013 on sn-devel-104 --- lib/crypto/md5.h | 16 +++++++++------- lib/crypto/wscript_build | 4 ++++ lib/crypto/wscript_configure | 8 ++++++-- source3/configure.in | 4 ++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/crypto/md5.h b/lib/crypto/md5.h index 388cdf83f09..edae27f65bd 100644 --- a/lib/crypto/md5.h +++ b/lib/crypto/md5.h @@ -6,12 +6,16 @@ #define HEADER_MD5_H #endif -#ifdef HAVE_BSD_MD5_H -/* Try to avoid clashes with BSD MD5 implementation */ +#if defined(HAVE_BSD_MD5_H) +/* Try to avoid clashes with BSD MD5 implementation (on linux) */ #include -#else + +#elif defined(HAVE_SYS_MD5_H) +/* Try to avoid clashes with BSD MD5 implementation (on BSD) */ +#include + /* Try to use CommonCrypto on Mac as otherwise we can get MD5Final twice */ -#ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H +#elif defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H) #include #define MD5Init(c) CC_MD5_Init(c) @@ -32,8 +36,6 @@ void MD5Init(MD5_CTX *context); void MD5Update(MD5_CTX *context, const uint8_t *buf, size_t len); void MD5Final(uint8_t digest[MD5_DIGEST_LENGTH], MD5_CTX *context); -#endif /* HAVE_COMMONCRYPTO_COMMONDIGEST_H */ - -#endif /* HAVE_BSD_MD5_H */ +#endif /* HAVE_*MD5_H */ #endif /* !MD5_H */ diff --git a/lib/crypto/wscript_build b/lib/crypto/wscript_build index cd7a466a155..e056f653fb9 100644 --- a/lib/crypto/wscript_build +++ b/lib/crypto/wscript_build @@ -4,6 +4,10 @@ extra_source = '' extra_deps = '' if bld.CONFIG_SET('HAVE_BSD_MD5_H'): extra_deps += ' bsd' +elif bld.CONFIG_SET('HAVE_SYS_MD5_H') and bld.CONFIG_SET('HAVE_LIBMD5'): + extra_deps += ' md5' +elif bld.CONFIG_SET('HAVE_SYS_MD5_H') and bld.CONFIG_SET('HAVE_LIBMD'): + extra_deps += ' md' elif not bld.CONFIG_SET('HAVE_COMMONCRYPTO_COMMONDIGEST_H'): extra_source += ' md5.c' diff --git a/lib/crypto/wscript_configure b/lib/crypto/wscript_configure index 5fc00fb22cb..21ec566b6ba 100644 --- a/lib/crypto/wscript_configure +++ b/lib/crypto/wscript_configure @@ -1,4 +1,8 @@ -conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', - checklibc=True) +if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', + checklibc=True): + conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h', + checklibc=True) + conf.CHECK_FUNCS_IN('MD5Init', 'md', headers='sys/md5.h', + checklibc=True) conf.CHECK_FUNCS_IN('CC_MD5_Init', '', headers='CommonCrypto/CommonDigest.h', checklibc=True) diff --git a/source3/configure.in b/source3/configure.in index 822c5f4442e..0e2f1267a70 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -620,11 +620,11 @@ if test x"$samba_cv_md5lib" = x"none" ; then fi if test x"$samba_cv_md5lib" != x"none" ; then - AC_CHECK_HEADERS(md5.h) + AC_CHECK_HEADERS(sys/md5.h) fi CRYPTO_MD5_OBJ="../lib/crypto/md5.o" -if test x"$ac_cv_header_md5_h" = x"yes" -a \ +if test x"$ac_cv_header_sys_md5_h" = x"yes" -a \ x"$samba_cv_md5lib" != x"none" ; then if test x"$samba_cv_md5lib" != x ; then LIBS="${LIBS} -l${samba_cv_md5lib}" -- 2.11.4.GIT