Code

msvc: Fix an "unrecognized option" linker warning
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>
Wed, 20 Jan 2010 19:25:51 +0000 (19:25 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sat, 23 Jan 2010 00:15:14 +0000 (16:15 -0800)
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 <ramsay@ramsay1.demon.co.uk>
Acked-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/vcbuild/scripts/clink.pl
contrib/buildsystems/engine.pl

index 8a2112f22f46b3066d75bd5472dfe05bf88836c8..4374771df202ed3c9d96439ec4695ccd55998167 100644 (file)
@@ -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:/;
index 8f890fb5a5ff99c6a0bd5811b9982ebd447739d1..23da787dc5565193dd93fa7406cd86f39651bb52 100644 (file)
@@ -319,6 +319,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);