Found in current CVS HEAD (05/13/2008 16:00)

Shared build of OpenSSL for Windows platform involves executing of
file util/mkdef.pl to creates .def file for each shared library.
This file specifies what symbols are exported from the library.

Script mkdef.pl expects to receive some configuration options, such as
no-<alg> or zlib. If these options are not passed properly (i.e same way
as to Configure), build fails, either when building shared library
(in case if some algorithms were disabled and corresponding functions
are not available in the object files) or when building openssl.exe
binary (in case if some optional features such as zlib compression were
enabled and used by object files in the apps directory).

However, script mkdef.pl is invoked from the link_a.cygwin target
of Makefile.shared without passsing configure arguments.

Attached patch fixes this problem

It does just to things:

1. Adds variable CONFIGURE_ARGS to the list of variables passed to make 
subprocess in the BUILDENV macro 
2. Passes content of this variable to mkdef.pl invocation in the
link_a.cygwin target in the Makefile.shared.






Index: Makefile.shared
===================================================================
RCS file: /cvs-openssl/openssl/Makefile.shared,v
retrieving revision 1.68
diff -u -r1.68 Makefile.shared
--- Makefile.shared	17 Apr 2008 10:19:04 -0000	1.68
+++ Makefile.shared	13 May 2008 14:14:29 -0000
@@ -276,7 +276,7 @@
 		esac; \
 		SHLIB_SOVER=32; \
 		extras="$(LIBNAME).def"; \
-		$(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \
+		$(PERL) util/mkdef.pl 32 $$SHLIB $(CONFIGURE_ARGS)> $$extras; \
 		base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
 	fi; \
 	dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
Index: Makefile.org
===================================================================
RCS file: /cvs-openssl/openssl/Makefile.org,v
retrieving revision 1.288
diff -u -r1.288 Makefile.org
--- Makefile.org	17 Apr 2008 10:19:04 -0000	1.288
+++ Makefile.org	13 May 2008 14:14:29 -0000
@@ -201,6 +201,7 @@
 		RMD160_ASM_OBJ='${RMD160_ASM_OBJ}'		\
 		WP_ASM_OBJ='${WP_ASM_OBJ}'			\
 		PERLASM_SCHEME='${PERLASM_SCHEME}'		\
+		CONFIGURE_ARGS='${CONFIGURE_ARGS}'  \
 		THIS=$${THIS:[EMAIL PROTECTED] MAKEFILE=Makefile MAKEOVERRIDES=
 # MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
 # which in turn eliminates ambiguities in variable treatment with -e.

Reply via email to