The branch master has been updated
       via  64c443e3f0057946ddd8f37a36821a7f9c0e0493 (commit)
       via  68ab559a50e1819fa441183b81e4523ed1d949e7 (commit)
      from  e737d7b197e153775735f700cd6c31cb55d803de (commit)


- Log -----------------------------------------------------------------
commit 64c443e3f0057946ddd8f37a36821a7f9c0e0493
Author: Richard Levitte <[email protected]>
Date:   Fri Feb 5 15:17:33 2016 +0100

    Add support for shared_rcflag, useful for windres (Cygwin and Mingw)
    
    Reviewed-by: Rich Salz <[email protected]>

commit 68ab559a50e1819fa441183b81e4523ed1d949e7
Author: Richard Levitte <[email protected]>
Date:   Fri Feb 5 15:14:45 2016 +0100

    Modernise the mingw cflags and ldflags
    
    Reviewed-by: Rich Salz <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 Configurations/00-base-templates.conf |  1 +
 Configurations/10-main.conf           | 10 ++++++----
 Configure                             |  7 ++++---
 Makefile.in                           |  2 ++
 Makefile.shared                       |  6 +++++-
 5 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/Configurations/00-base-templates.conf 
b/Configurations/00-base-templates.conf
index 1771e3d..9d405ef 100644
--- a/Configurations/00-base-templates.conf
+++ b/Configurations/00-base-templates.conf
@@ -35,6 +35,7 @@
        shared_target   => "",
        shared_cflag    => "",
        shared_ldflag   => "",
+       shared_rcflag   => "",
        shared_extension        => "",
        build_scheme    => "unixmake",
        build_file      => "Makefile",
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 28322e3..07e1d6a 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1162,7 +1162,7 @@
     "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",
@@ -1173,7 +1173,8 @@
         dso_scheme       => "win32",
         shared_target    => "cygwin-shared",
         shared_cflag     => "-D_WINDLL -DOPENSSL_USE_APPLINK",
-        shared_ldflag    => "-mno-cygwin",
+        shared_ldflag    => "-static-libgcc",
+        shared_rcflag    => "--target=pe-i386",
         shared_extension => ".dll",
     },
     "mingw64" => {
@@ -1187,7 +1188,7 @@
         # 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",
@@ -1198,7 +1199,8 @@
         dso_scheme       => "win32",
         shared_target    => "cygwin-shared",
         shared_cflag     => "-D_WINDLL",
-        shared_ldflag    => "-mno-cygwin",
+        shared_ldflag    => "-static-libgcc",
+        shared_rcflag    => "--target=pe-x86-64",
         shared_extension => ".dll",
     },
 
diff --git a/Configure b/Configure
index f617df5..d3800cb 100755
--- 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=)/) {
@@ -2180,6 +2180,7 @@ sub print_table_entry
        "shared_target",
        "shared_cflag",
        "shared_ldflag",
+       "shared_rcflag",
        "shared_extension",
        "obj_extension",
        "exe_extension",
diff --git a/Makefile.in b/Makefile.in
index a1c3252..b788042 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -205,6 +205,7 @@ SHARED_LDFLAG={- $target{shared_ldflag}
                  # $prefix is not /usr.
                  . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
                     ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
+SHARED_RCFLAG={- $target{shared_rcflag} -}
 
 GENERAL=        Makefile
 BASENAME=       openssl
@@ -255,6 +256,7 @@ BUILDENV=   LC_ALL=C PLATFORM='$(PLATFORM)' 
PROCESSOR='$(PROCESSOR)'\
                LIBDIR='$(LIBDIR)'                              \
                DEPFLAG='$(DEPFLAG)'                            \
                SHARED_LDFLAG='$(SHARED_LDFLAG)'                \
+               SHARED_RCFLAG='$(SHARED_RCFLAG)'                \
                ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)'     \
                EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)'       \
                SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
diff --git a/Makefile.shared b/Makefile.shared
index a474f16..29e1808 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -14,6 +14,10 @@ CFLAGS=$(CFLAG)
 LDFLAGS=$(LDFLAG)
 SHARED_LDFLAGS=$(SHARED_LDFLAG)
 
+# SHARED_RCFLAGS are flags used with windres, i.e. when build for Cygwin
+# or Mingw.
+SHARED_RCFLAGS=$(SHARED_RCFLAG)
+
 NM=nm
 
 # LIBNAME contains just the name of the library, without prefix ("lib"
@@ -305,7 +309,7 @@ link_a.cygwin:
        fi; \
        dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
        $(PERL) util/mkrc.pl $$dll_name | \
-               $(CROSS_COMPILE)windres -o rc.o; \
+               $(CROSS_COMPILE)windres $(SHARED_RCFLAGS) -o rc.o; \
        extras="$$extras rc.o"; \
        ALLSYMSFLAGS='-Wl,--whole-archive'; \
        NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
_____
openssl-commits mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits

Reply via email to