From: Brian Gernhardt <brian@gernhardtsoftware.com>
To: Git List <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH] Makefile: Add NEEDS_CRYPTO_WITH_SSL
Date: Sat, 15 Aug 2009 12:46:53 -0400 [thread overview]
Message-ID: <1250354813-81349-1-git-send-email-brian@gernhardtsoftware.com> (raw)
The Makefile comment for NEEDS_SSL_WITH_CRYPTO says to define it "if
you need -lcrypto with -lssl (Darwin)." However, what it actually
does is add -lssl when you use -lcrypto and not the other way around.
However, libcrypto contains a majority of the ERR_* functions from
OpenSSL (at least on OS X) so we need it both ways.
So, add NEEDS_CRYPTO_WITH_SSL which adds -lcrypto to the OpenSSL link
flags and clarify the difference between it and NEEDS_SSL_WITH_CRYPTO.
---
After adding BLK_SHA1 to my config.mak, git-imap-send started giving me link
errors:
Undefined symbols:
"_ERR_get_error", referenced from:
_ssl_socket_perror in imap-send.o
"_ERR_error_string", referenced from:
_ssl_socket_perror in imap-send.o
Some investigation led me to the fact that BLK_SHA1 removes LIB_4_CRYPTO from
EXTLIBS. That let me find the missing functions in libcrypto. At first I
considered making NEEDS_SSL_WITH_CRYPTO add -lcrypto to the SSL build flags
but decided to go this route in case there are platforms that need it one way
around and not the other.
I've enabled this build option by default on Darwin but nowhere else. If you
can't build git-imap-send (with SSL) after enabling BLK_SHA1, your platform
may need this flag as well.
Makefile | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index f94fe05..bc745fb 100644
--- a/Makefile
+++ b/Makefile
@@ -99,7 +99,9 @@ all::
# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
# choice) has very fast version optimized for i586.
#
-# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
+# Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
+#
+# Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
#
# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
#
@@ -714,6 +716,7 @@ ifeq ($(uname_S),SCO_SV)
TAR = gtar
endif
ifeq ($(uname_S),Darwin)
+ NEEDS_CRYPTO_WITH_SSL = YesPlease
NEEDS_SSL_WITH_CRYPTO = YesPlease
NEEDS_LIBICONV = YesPlease
ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
@@ -1023,6 +1026,9 @@ ifndef NO_OPENSSL
else
OPENSSL_LINK =
endif
+ ifdef NEEDS_CRYPTO_WITH_SSL
+ OPENSSL_LINK += -lcrypto
+ endif
else
BASIC_CFLAGS += -DNO_OPENSSL
MOZILLA_SHA1 = 1
--
1.6.4.244.ge5cd0
next reply other threads:[~2009-08-15 16:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-15 16:46 Brian Gernhardt [this message]
2009-08-24 9:45 ` [PATCH] Makefile: Add NEEDS_CRYPTO_WITH_SSL Alex Riesen
2009-08-24 14:22 ` Brian Gernhardt
-- strict thread matches above, loose matches on Subject: below --
2009-09-08 13:54 Brian Gernhardt
2009-09-08 20:19 ` Junio C Hamano
2009-09-09 0:40 ` Brian Gernhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1250354813-81349-1-git-send-email-brian@gernhardtsoftware.com \
--to=brian@gernhardtsoftware.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).