Modernise the mingw cflags and ldflags
authorRichard Levitte <levitte@openssl.org>
Fri, 5 Feb 2016 14:14:45 +0000 (15:14 +0100)
committerRichard Levitte <levitte@openssl.org>
Thu, 11 Feb 2016 15:50:01 +0000 (16:50 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Configurations/10-main.conf
Configure

index 28322e3ac7e436b8b9b6e892149dabd2a584b7ac..c408763f66a4b34b55e73164479c0fcdf33f8e0b 100644 (file)
     "mingw" => {
         inherit_from     => [ asm("x86_asm") ],
         cc               => "gcc",
-        cflags           => "-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -march=i486 -Wall",
+        cflags           => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m32 -Wall",
         debug_cflags     => "-g -O0",
         release_cflags   => "-O3 -fomit-frame-pointer",
         thread_cflag     => "-D_MT",
         dso_scheme       => "win32",
         shared_target    => "cygwin-shared",
         shared_cflag     => "-D_WINDLL -DOPENSSL_USE_APPLINK",
-        shared_ldflag    => "-mno-cygwin",
+        shared_ldflag    => "-static-libgcc",
         shared_extension => ".dll",
     },
     "mingw64" => {
         # Applink is never engaged and can as well be omitted.
         inherit_from     => [ asm("x86_64_asm") ],
         cc               => "gcc",
-        cflags           => "-mno-cygwin -DL_ENDIAN -Wall -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE",
+        cflags           => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m64 -Wall",
         debug_cflags     => "-g -O0",
         release_cflags   => "-O3",
         thread_cflag     => "-D_MT",
         dso_scheme       => "win32",
         shared_target    => "cygwin-shared",
         shared_cflag     => "-D_WINDLL",
-        shared_ldflag    => "-mno-cygwin",
+        shared_ldflag    => "-static-libgcc",
         shared_extension => ".dll",
     },
 
index f617df5fbe30d6828a4712e785be386ec52f37df..722d7c1faf037affcabd8a03eb57f7e9d71b4a0b 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -870,10 +870,10 @@ push @{$config{defines}},
     map { (my $x = $_) =~ s/^OPENSSL_NO_/OPENSSL_EXPERIMENTAL_/; $x }
         @{$config{openssl_experimental_defines}};
 
-if ($target =~ /^mingw/ && `$target{cc} --target-help 2>&1` !~ m/-mno-cygwin/m)
+if ($target =~ /^mingw/ && `$target{cc} --target-help 2>&1` =~ m/-mno-cygwin/m)
        {
-       $config{cflags} =~ s/-mno-cygwin\s*//;
-       $target{shared_ldflag} =~ s/-mno-cygwin\s*//;
+       $config{cflags} .= " -mno-cygwin";
+       $target{shared_ldflag} .= " -mno-cygwin";
        }
 
 if ($target =~ /linux.*-mips/ && !$no_asm && $user_cflags !~ /-m(ips|arch=)/) {