[PATCH 2/4] msvc: Fix an "unrecognized option" linker warning
From: Ramsay Jones <hidden>
Date: 2016-06-15 22:48:04
Having recently added support for building git-imap-send on
Windows, we now link against OpenSSL libraries, and the linker
issues the following warning:
warning LNK4044: unrecognized option '/lssl'; ignored
In order to suppress the warning, we change the msvc linker
script to translate an '-lssl' parameter to the ssleay32.lib
library.
Note that the linker script was already including ssleay32.lib
(along with libeay32.lib) as part of the translation of the
'-lcrypto' library parameter. However, libeay32.dll does not
depend on ssleay32.dll and can be used stand-alone, so we remove
ssleay32.lib from the '-lcrypto' translation.
The dependence of ssleay32.dll on libeay32.dll is represented in
the Makefile by the NEEDS_CRYPTO_WITH_SSL build variable.
Also, add the corresponding change to the buildsystem generator.
Signed-off-by: Ramsay Jones <redacted>
---
compat/vcbuild/scripts/clink.pl | 1 +
contrib/buildsystems/engine.pl | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/compat/vcbuild/scripts/clink.pl b/compat/vcbuild/scripts/clink.pl
index 8a2112f..4374771 100644
--- a/compat/vcbuild/scripts/clink.pl
+++ b/compat/vcbuild/scripts/clink.pl@@ -31,6 +31,7 @@ while (@ARGV) { push(@args, "iconv.lib"); } elsif ("$arg" eq "-lcrypto") { push(@args, "libeay32.lib"); + } elsif ("$arg" eq "-lssl") { push(@args, "ssleay32.lib"); } elsif ("$arg" =~ /^-L/ && "$arg" ne "-LTCG") { $arg =~ s/^-L/-LIBPATH:/;
diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl
index 245af73..ce4eb1e 100644
--- a/contrib/buildsystems/engine.pl
+++ b/contrib/buildsystems/engine.pl@@ -322,6 +322,7 @@ sub handleLinkLine push(@libs, "zlib.lib"); } elsif ("$part" eq "-lcrypto") { push(@libs, "libeay32.lib"); + } elsif ("$part" eq "-lssl") { push(@libs, "ssleay32.lib"); } elsif ($part =~ /^-/) { push(@lflags, $part);
--
1.6.6