On 2006.10.23 at 13:35:39 +0400, Victor B. Wagner wrote:

> I've tested current CVS state of OpenSSL with mingw32-cross compiler
> and found out following:
>
> 1. Everything compiles without error
> 2. make rehash is omitted during build
>
> When testing on real Win32 platform with MSYS installed
>
> 1. make rehash is omitted again, but shouldn't.
> 2. attempt to start very first test (destest.exe) causes dialog window
> to popup saying "Application cannot start becouse crypto32.dll is not
> found". Just renaming created dlls solves the problem.
> This is quite explainable, because build creates
> crypto-0.9.8.dll, but def file contains section
>
> LIBRARY crypto32
>
> So, we have either to create crypto32.dll and ssl32 dll instead of
> crypto-0.9.8.dll and ssl-0.9.8.dll, or modify mkdef.pl so it would put
> real dll names into the LIBRARY section of .def file.
> Note that if dll name contain hyphen or dots, it should be quoted and
> include extension.
>
> I.e. section should look like
>
> LIBRARY "crypto-0.9.8.dll"
>
> Probably, if we are going to maintain binary compatibility with MSVC
> build, changing dll name to crypto32.dll and ssl32.dll is better.


Now, I'm developed a patch which solves this problem. With this patch
current CVS state of OpenSSL compiles cleanly with either cross-compiler
and native Mingw32 compiler and make test runs.

Rationale of the patch - make names of created DLLs same that
it is written in the .def file by util/mkdef.pl


Index: Makefile.shared
================================================== =================
RCS file: /cvs-openssl/openssl/Makefile.shared,v
retrieving revision 1.59
diff -u -r1.59 Makefile.shared
--- Makefile.shared 23 Oct 2006 07:30:18 -0000 1.59
+++ Makefile.shared 23 Oct 2006 11:00:18 -0000
@@ -260,14 +260,15 @@
link_a.cygwin:
@ $(CALC_VERSIONS); \
INHIBIT_SYMLINKS=yes; \
+ SHLIB_SOVER=-$(LIBVERSION); \
SHLIB=cyg$(LIBNAME); def=; \
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
SHLIB=$(LIBNAME); \
def="$(LIBNAME).def"; \
+ SHLIB_SOVER=32; \
$(PERL) util/mkdef.pl 32 $(LIBNAME) > $$def; \
fi; \
SHLIB_SUFFIX=.dll; \
- SHLIB_SOVER=-$(LIBVERSION); \
ALLSYMSFLAGS='-Wl,--whole-archive'; \
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org