On 12/09/2013 12:15 AM, Paul Eggert wrote:
> Pádraig Brady wrote:
>> * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Don't empty LIB_CRYPTO
> 
> That would inherit LIB_CRYPTO from the environment, no?
> It might be better to move the LIB_CRYPTO= into the
> initialization code.

I pushed the attached to fix this.
Tested with coreutils.

thanks,
Pádraig.

>From 8b5510050ddbf5bdee4a7cb89f8ee32e08aecd94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com>
Date: Sun, 8 Dec 2013 23:19:29 +0000
Subject: [PATCH] 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.
---
 ChangeLog        |    8 ++++++++
 m4/gc.m4         |    1 -
 m4/gl-openssl.m4 |    5 ++++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9688c32..563e867 100644
--- 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  <egg...@cs.ucla.edu>
 
 	md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
diff --git a/m4/gc.m4 b/m4/gc.m4
index 3d13354..66736b8 100644
--- 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]),
diff --git a/m4/gl-openssl.m4 b/m4/gl-openssl.m4
index c8f9dd9..0434c4c 100644
--- a/m4/gl-openssl.m4
+++ b/m4/gl-openssl.m4
@@ -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],
-- 
1.7.7.6

Reply via email to