md5, sha1, sha256, sha512: fix link error with partial libcrypto
authorPádraig Brady <P@draigBrady.com>
Sun, 8 Dec 2013 23:19:29 +0000 (23:19 +0000)
committerPádraig Brady <P@draigBrady.com>
Mon, 9 Dec 2013 12:32:09 +0000 (12:32 +0000)
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Only clear LIB_CRYPTO at
init time, so that if early checks find crypto routines,
while the last does not, then @LIB_CRYPTO@ is replaced correctly,
avoiding link failures.

ChangeLog
m4/gc.m4
m4/gl-openssl.m4

index 9688c32..563e867 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-12-07  Pádraig Brady <P@draigBrady.com>
+
+       md5, sha1, sha256, sha512: fix link error with partial libcrypto
+       * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Only clear LIB_CRYPTO at
+       init time, so that if early checks find crypto routines,
+       while the last does not, then @LIB_CRYPTO@ is replaced correctly,
+       avoiding link failures.
+
 2013-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
index 3d13354..66736b8 100644 (file)
--- a/m4/gc.m4
+++ b/m4/gc.m4
@@ -6,7 +6,6 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_GC],
 [
-  LIB_CRYPTO=
   AC_SUBST([LIB_CRYPTO])
   AC_ARG_WITH([libgcrypt],
     AS_HELP_STRING([--with-libgcrypt], [use libgcrypt for low-level crypto]),
index c8f9dd9..0434c4c 100644 (file)
@@ -12,8 +12,12 @@ gl_SET_CRYPTO_CHECK_DEFAULT([no])
 
 AC_DEFUN([gl_CRYPTO_CHECK],
 [
+  dnl gnulib users set this before gl_INIT with gl_SET_CRYPTO_CHECK_DEFAULT()
   m4_divert_once([DEFAULTS], [with_openssl_default='gl_CRYPTO_CHECK_DEFAULT'])
 
+  dnl Only clear once, so crypto routines can be checked for individually
+  m4_divert_once([DEFAULTS], [LIB_CRYPTO=])
+
   AC_ARG_WITH([openssl],
     [AS_HELP_STRING([--with-openssl],
       [use libcrypto hash routines. Valid ARGs are:
@@ -29,7 +33,6 @@ AC_DEFUN([gl_CRYPTO_CHECK],
     ALG_header=sha.h
   fi
 
-  LIB_CRYPTO=
   AC_SUBST([LIB_CRYPTO])
   if test "x$with_openssl" != xno; then
     AC_CHECK_LIB([crypto], [$1],