Apply mingw patches as supplied by Roumen Petrov an Alon Bar-Lev
authorLutz Jänicke <jaenicke@openssl.org>
Thu, 17 Apr 2008 10:19:16 +0000 (10:19 +0000)
committerLutz Jänicke <jaenicke@openssl.org>
Thu, 17 Apr 2008 10:19:16 +0000 (10:19 +0000)
PR: 1552
Submitted by: Roumen Petrov <openssl@roumenpetrov.info>, "Alon Bar-Lev" <alon.barlev@gmail.com>

31 files changed:
.cvsignore
Configure
Makefile.org
Makefile.shared
apps/.cvsignore
crypto/.cvsignore
crypto/aes/.cvsignore
crypto/bf/.cvsignore
crypto/bn/.cvsignore
crypto/camellia/.cvsignore
crypto/cast/.cvsignore
crypto/des/.cvsignore
crypto/md5/.cvsignore
crypto/rc4/.cvsignore
crypto/ripemd/.cvsignore
crypto/sha/.cvsignore
crypto/ts/.cvsignore
crypto/whrlpool/.cvsignore
crypto/x509/Makefile
engines/.cvsignore
engines/Makefile
engines/ccgost/.cvsignore
engines/ccgost/Makefile
ms/mingw32.bat
ms/mw.bat
shlib/win32.bat
shlib/win32dll.bat
test/.cvsignore
util/mkerr.pl
util/pl/BC-32.pl
util/pl/Mingw32.pl

index 815b0b8..ac4d0e7 100644 (file)
@@ -20,3 +20,4 @@ libssl.pc
 *.flc
 semantic.cache
 Makefile
+*.dll*
index f176008..b0fd828 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -494,7 +494,7 @@ my %table=(
 "BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32",
 
 # MinGW
-"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::MINGW32:-lws2_32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",
+"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::MINGW32:-lws2_32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a",
 
 # UWIN 
 "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
@@ -1192,13 +1192,16 @@ if (!$no_shared)
 
 if (!$IsMK1MF)
        {
+       # add {no-}static-engine to options to allow mkdef.pl to work without extra arguments
        if ($no_shared)
                {
                $openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
+               $options.=" static-engine";
                }
        else
                {
                $openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
+               $options.=" no-static-engine";
                }
        }
 
index 249e573..e5317ca 100644 (file)
@@ -534,6 +534,16 @@ install_sw:
                                        chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
                                        mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
                                fi ); \
+                               if expr $(PLATFORM) : 'mingw' > /dev/null; then \
+                               (       case $$i in \
+                                               *crypto*) i=libeay32.dll;; \
+                                               *ssl*)    i=ssleay32.dll;; \
+                                       esac; \
+                                       echo installing $$i; \
+                                       cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+                                       chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
+                                       mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
+                               fi; \
                        fi; \
                done; \
                (       here="`pwd`"; \
index 8bc6dd4..6970e58 100644 (file)
@@ -248,16 +248,21 @@ link_o.cygwin:
        INHIBIT_SYMLINKS=yes; \
        SHLIB=cyg$(LIBNAME); \
        base=-Wl,--enable-auto-image-base; \
+       deffile=; \
        if expr $(PLATFORM) : 'mingw' > /dev/null; then \
-                SHLIB=$(LIBNAME); base=; \
+               SHLIB=$(LIBNAME)eay32; base=; \
+               if test -f $(LIBNAME)eay32.def; then \
+                       deffile=$(LIBNAME)eay32.def; \
+               fi; \
        fi; \
        SHLIB_SUFFIX=.dll; \
        LIBVERSION="$(LIBVERSION)"; \
        SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
        ALLSYMSFLAGS='-Wl,--whole-archive'; \
        NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
-       SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic"; \
+       SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-s,-Bsymbolic"; \
        $(LINK_SO_O)
+#for mingw target if def-file is in use dll-name should match library-name
 link_a.cygwin:
        @ $(CALC_VERSIONS); \
        INHIBIT_SYMLINKS=yes; \
@@ -265,9 +270,13 @@ link_a.cygwin:
        dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \
        base=-Wl,--enable-auto-image-base; \
        if expr $(PLATFORM) : 'mingw' > /dev/null; then \
-               SHLIB=$(LIBNAME); SHLIB_SOVER=32; \
+               case $(LIBNAME) in \
+                       crypto) SHLIB=libeay;; \
+                       ssl) SHLIB=ssleay;; \
+               esac; \
+               SHLIB_SOVER=32; \
                extras="$(LIBNAME).def"; \
-               $(PERL) util/mkdef.pl 32 $(LIBNAME) > $$extras; \
+               $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \
                base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
        fi; \
        dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
index ac07a77..9981329 100644 (file)
@@ -5,3 +5,4 @@ der_chop.bak
 CA.pl
 *.flc
 semantic.cache
+*.dll
index 52d2683..337529e 100644 (file)
@@ -4,5 +4,5 @@ opensslconf.h
 Makefile.save
 *.flc
 semantic.cache
-x86cpuid-elf.s
-x86_64cpuid.s
+*cpuid.s
+uplink-cof.s
index 957e89b..035489b 100644 (file)
@@ -2,5 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-ax86-elf.s
-aes-x86_64.s
+aes-*.s
index 403e8f3..86da787 100644 (file)
@@ -2,4 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-bx86-elf.s
+bf-*.s
index f8067f2..ebe4b61 100644 (file)
@@ -2,7 +2,6 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-co86-elf.s
-bn86-elf.s
-mo86-elf.s
-x86_64-mont.s
+co-*.s
+bn-*.s
+*-mont.s
index e79919b..56fedb2 100644 (file)
@@ -2,4 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-cx86-elf.s
+cx86-*.s
index 5dcc40f..6f011ea 100644 (file)
@@ -3,5 +3,5 @@ Makefile.save
 des
 *.flc
 semantic.cache
-yx86-elf.s
-dx86-elf.s
+crypt*.s
+des-*.s
index 50d58e8..e7bf5dd 100644 (file)
@@ -2,5 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-mx86-elf.s
-md5-x86_64.s
+md5-*.s
index 8885ec1..55e2f07 100644 (file)
@@ -2,5 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-rx86-elf.s
-rc4-x86_64.s
+rc4-*.s
index f7abe18..4e5de48 100644 (file)
@@ -2,4 +2,4 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-rm86-elf.s
+rmd-*.s
index 6ab2266..4f51f91 100644 (file)
@@ -2,10 +2,6 @@ lib
 Makefile.save
 *.flc
 semantic.cache
-sx86-elf.s
-s512sse2-elf.s
-sha1-x86_64.s
-sha256-x86_64.s
-sha512-x86_64.s
-sha256x86-elf.s
-sha512x86-elf.s
+sha1-*.s
+sha256-*.s
+sha512-*.s
index a65b417..c6d03a9 100644 (file)
@@ -1 +1,2 @@
 lib
+Makefile.save
index 60be998..baa1c42 100644 (file)
@@ -1,3 +1,3 @@
 lib
-w86mmx-elf.s
-wp-x86_64.s
+Makefile.save
+wp-*.s
index ca8f02b..72c8227 100644 (file)
@@ -48,7 +48,7 @@ lib:  $(LIBOBJ)
        @touch lib
 
 files:
-       $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
 
 links:
        @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
index 47b5fd1..b722ca8 100644 (file)
@@ -3,3 +3,4 @@ lib
 libs
 *.flc
 semantic.cache
+*.dll
index 7796cb5..e3719bc 100644 (file)
@@ -99,26 +99,29 @@ links:
 # for shared libraries as well as for Cygwin which uses the
 # dlfcn_name_converter and therefore stores the engines with .so suffix, too.
 # XXXXX This was extended to HP-UX dl targets, which use .sl suffix.
+# XXXXX This was extended to mingw targets, which use eay32.dll suffix without lib as prefix.
 install:
        @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
        @if [ -n "$(SHARED_LIBS)" ]; then \
                set -e; \
                for l in $(LIBNAMES); do \
                        ( echo installing $$l; \
+                         pfx=lib; \
                          if [ "$(PLATFORM)" != "Cygwin" ]; then \
                                case "$(CFLAGS)" in \
-                               *DSO_BEOS*)     sfx="so";;      \
-                               *DSO_DLFCN*)    sfx="so";;      \
-                               *DSO_DL*)       sfx="sl";;      \
-                               *)              sfx="bad";;     \
+                               *DSO_BEOS*)     sfx=".so";;     \
+                               *DSO_DLFCN*)    sfx=".so";;     \
+                               *DSO_DL*)       sfx=".sl";;     \
+                               *DSO_WIN32*)    sfx="eay32.dll"; pfx=;; \
+                               *)              sfx=".bad";;    \
                                esac; \
-                               cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
+                               cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$$pfx$$l$$sfx.new; \
                          else \
-                               sfx="so"; \
-                               cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
+                               sfx=".so"; \
+                               cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$$pfx$$l$$sfx.new; \
                          fi; \
-                         chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
-                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx ); \
+                         chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$$pfx$$l$$sfx.new; \
+                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$$pfx$$l$$sfx ); \
                done; \
        fi
        @target=install; $(RECURSIVE_MAKE)
index 47b5fd1..b722ca8 100644 (file)
@@ -3,3 +3,4 @@ lib
 libs
 *.flc
 semantic.cache
+*.dll
index 737fad3..eae172f 100644 (file)
@@ -44,20 +44,22 @@ install:
        if [ -n "$(SHARED_LIBS)" ]; then \
                set -e; \
                echo installing $(LIBNAME); \
+               pfx=lib; \
                if [ "$(PLATFORM)" != "Cygwin" ]; then \
                        case "$(CFLAGS)" in \
-                       *DSO_BEOS*) sfx="so";; \
-                       *DSO_DLFCN*) sfx="so";; \
-                       *DSO_DL*) sfx="sl";; \
-                       *) sfx="bad";; \
+                       *DSO_BEOS*) sfx=".so";; \
+                       *DSO_DLFCN*) sfx=".so";; \
+                       *DSO_DL*) sfx=".sl";; \
+                       *DSO_WIN32*)    sfx="eay32.dll"; pfx=;; \
+                       *) sfx=".bad";; \
                        esac; \
-                       cp lib$(LIBNAME).$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$(LIBNAME).$$sfx.new; \
+                       cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$${pfx}$(LIBNAME)$$sfx.new; \
                else \
                        sfx="so"; \
-                       cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$(LIBNAME).$$sfx.new; \
+                       cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$${pfx}$(LIBNAME)$$sfx.new; \
                fi; \
-               chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$(LIBNAME).$$sfx.new; \
-               mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$(LIBNAME).$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$(LIBNAME).$$sfx; \
+               chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$${pfx}$(LIBNAME)$$sfx.new; \
+               mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/$${pfx}$(LIBNAME)$$sfx; \
        fi
 
 links:
index 8c7c63e..7c26983 100644 (file)
@@ -79,7 +79,7 @@ mingw32-make -f ms/mingw32a.mak
 if errorlevel 1 goto end\r
 \r
 echo Generating the DLLs and input libraries\r
-dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32\r
+dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32\r
 if errorlevel 1 goto end\r
 dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a\r
 if errorlevel 1 goto end\r
index c5ccd69..64a21b8 100644 (file)
--- a/ms/mw.bat
+++ b/ms/mw.bat
@@ -15,7 +15,7 @@ make -f ms/mingw32.mak
 if errorlevel 1 goto end\r
 \r
 @rem Generate the DLLs and input libraries\r
-dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lwsock32 -lgdi32\r
+dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32\r
 if errorlevel 1 goto end\r
 dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a\r
 if errorlevel 1 goto end\r
index c807a99..2b0faaa 100755 (executable)
@@ -14,5 +14,5 @@ cl /Focrypto.obj -DWIN32 %OPTIONS% -c crypto\crypto.c
 cl /Fossl.obj -DWIN32 %OPTIONS% -c ssl\ssl.c
 cl /Foeay.obj -DWIN32 %OPTIONS% -c apps\eay.c
 
-cl /Fessleay.exe %OPTIONS% eay.obj ssl.obj crypto.obj crypto\bf\asm\b-win32.obj crypto\des\asm\c-win32.obj crypto\des\asm\d-win32.obj crypto\bn\asm\x86nt32.obj user32.lib gdi32.lib wsock32.lib
+cl /Fessleay.exe %OPTIONS% eay.obj ssl.obj crypto.obj crypto\bf\asm\b-win32.obj crypto\des\asm\c-win32.obj crypto\des\asm\d-win32.obj crypto\bn\asm\x86nt32.obj user32.lib gdi32.lib ws2_32.lib
 
index 294c94c..844e353 100755 (executable)
@@ -5,9 +5,9 @@ set OPTIONS2=/W3 /WX /Ox /Gf /nologo
 
 set OPTIONS=%OPTIONS1% %OPTIONS2%
 
-cl /Felibeay32.dll /GD /MD /LD -DWIN32 %OPTIONS% ms\libeay32.def crypto\crypto.c crypto\bf\asm\b-win32.obj crypto\des\asm\c-win32.obj crypto\des\asm\d-win32.obj crypto\bn\asm\x86nt32.obj user32.lib gdi32.lib wsock32.lib
+cl /Felibeay32.dll /GD /MD /LD -DWIN32 %OPTIONS% ms\libeay32.def crypto\crypto.c crypto\bf\asm\b-win32.obj crypto\des\asm\c-win32.obj crypto\des\asm\d-win32.obj crypto\bn\asm\x86nt32.obj user32.lib gdi32.lib ws2_32.lib
 
 cl /Fessleay32.dll /GD /MD /LD -DWIN32 %OPTIONS% ms\ssleay32.def ssl\ssl.c libeay32.lib
 
-cl /Fessleay.exe /MD -DWIN32 %OPTIONS% apps\eay.c ssleay32.lib libeay32.lib user32.lib wsock32.lib
+cl /Fessleay.exe /MD -DWIN32 %OPTIONS% apps\eay.c ssleay32.lib libeay32.lib user32.lib ws2_32.lib
 
index ee951f2..8b5997c 100644 (file)
@@ -31,3 +31,4 @@ sha512t
 *.flc
 semantic.cache
 newkey.pem
+*.dll
index aac87bb..6004853 100644 (file)
@@ -377,6 +377,10 @@ foreach $lib (keys %csrc)
 "#ifndef HEADER_${lib}_ERR_H\n",
 "#define HEADER_${lib}_ERR_H\n",
 "\n",
+"#ifdef  __cplusplus\n",
+"extern \"C\" {\n",
+"#endif\n",
+"\n",
 "/* BEGIN ERROR CODES */\n";
        }
        open (OUT, ">$hfile") || die "Can't Open File $hfile for writing\n";
index 99b8c05..1f1e13f 100644 (file)
@@ -117,7 +117,7 @@ ___
        else
                {
                local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
-               $ex.=' wsock32.lib gdi32.lib';
+               $ex.=' ws2_32.lib gdi32.lib';
                $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n  \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
                }
        $ret.="\n";
index b76b7af..fe3fb27 100644 (file)
@@ -55,7 +55,7 @@ $link='${CC}';
 $lflags='${CFLAGS}';
 $efile='-o ';
 $exep='';
-$ex_libs="-lwsock32 -lgdi32";
+$ex_libs="-lws2_32 -lgdi32";
 
 # static library stuff
 $mklib='ar r';