[openssl-dev] [openssl.org #4326] Failed to configure for Cygwin-x64

Corinna Vinschen vinschen at redhat.com
Mon Feb 22 18:00:08 UTC 2016


On Feb 22 18:43, Richard Levitte wrote:
> In message <20160222173404.GB11853 at calimero.vinschen.de> on Mon, 22 Feb 2016 18:34:04 +0100, Corinna Vinschen <vinschen at redhat.com> said:
> 
> vinschen> On Feb 21 06:27, Richard Levitte via RT wrote:
> vinschen> > I believe that the auto-detecting script, ./config, is lacking detection of
> vinschen> > architecture for Cygwin. Does one preferably recognise a x86_64 Cygwin from
> vinschen> > `uname -m` or is there something in `uname -s` that should be used as an
> vinschen> > indicator?
> vinschen> 
> vinschen> Uh oh, is there a chance that the configury for 1.0.2 is NOT changed
> vinschen> anymore?  We have a set of local patches in the Cygwin distro which
> vinschen> works around the missing pieces in 1.0.2 in a certain way, and changing
> vinschen> the 1.0.2 branch now would break the build scripts for the Cygwin distro.
> 
> A patch that fixes ./config was merged to the 1.0.2 branch earlier
> today.  Commit 5c57fbb8ca991e8db7ce23174613898a27ca3fcb.  It's a
> backport of the corresponding patch in master.  It's a very small
> change, I'd be surprised if you can't edit that particular one from
> your scripts.

This one's no problem since the build script runs ./Configure directly.

> 1.0.2 is on long term support, see
> http://openssl.org/policies/releasestrat.html.  That means that
> reasonable fixes might very well go in.  Sorry if that becomes a
> bother.

It's not a bother per se, only changes in the build system are
potentially disruptive, that's why I really dread them for the branch.

OTOH, is it much of a problem to apply the patches used for the Cygwin
distro into the 1.0.2 branch so we can get rid of them entirely?  That
would be extremly cool.  I attached them for your review.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
--- origsrc/openssl-1.0.2a/Configure	2015-03-19 16:08:33.952761607 +0100
+++ src/openssl-1.0.2a/Configure	2015-03-19 16:14:46.061816093 +0100
@@ -588,8 +588,8 @@ my %table=(
 "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
 
 # Cygwin
-"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:coff:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
-"Cygwin-x86_64", "gcc:-DTERMIOS -DL_ENDIAN -O3 -Wall:::CYGWIN::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:mingw64:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
+"Cygwin", "gcc:\$(OPT_CFLAGS) -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i686 -Wall:::CYGWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:coff:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
+"Cygwin-x86_64", "gcc:\$(OPT_CFLAGS) -DTERMIOS -DL_ENDIAN -O3 -Wall:::CYGWIN::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:mingw64:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
 
 # NetWare from David Ward (dsward at novell.com)
 # requires either MetroWerks NLM development tools, or gcc / nlmconv
--- origsrc/openssl-1.0.2a/Makefile.shared	2015-03-19 16:14:57.245727560 +0100
+++ src/openssl-1.0.2a/Makefile.shared	2015-03-19 16:15:45.514345456 +0100
@@ -272,7 +272,7 @@ link_o.cygwin:
 	SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
 	ALLSYMSFLAGS='-Wl,--whole-archive'; \
 	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
-	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-s,-Bsymbolic"; \
+	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base $$deffile -Wl,-Bsymbolic"; \
 	$(LINK_SO_O)
 #for mingw target if def-file is in use dll-name should match library-name
 link_a.cygwin:
@@ -297,7 +297,7 @@ link_a.cygwin:
 	extras="$$extras rc.o"; \
 	ALLSYMSFLAGS='-Wl,--whole-archive'; \
 	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
-	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
+	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
 	[ -f apps/$$dll_name ] && rm apps/$$dll_name; \
 	[ -f test/$$dll_name ] && rm test/$$dll_name; \
 	$(LINK_SO_A) || exit 1; \
-------------- next part --------------
diff -up openssl-1.0.2a/Configure.enginesdir openssl-1.0.2a/Configure
--- openssl-1.0.2a/Configure.enginesdir	2015-04-20 14:37:58.137392222 +0200
+++ openssl-1.0.2a/Configure	2015-04-20 14:37:58.140392292 +0200
@@ -702,6 +702,7 @@ my $idx_multilib = $idx++;
 my $prefix="";
 my $libdir="";
 my $openssldir="";
+my $enginesdir="";
 my $exe_ext="";
 my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
 my $cross_compile_prefix="";
@@ -929,6 +930,10 @@ PROCESS_ARGS:
 				{
 				$openssldir=$1;
 				}
+			elsif (/^--enginesdir=(.*)$/)
+				{
+				$enginesdir=$1;
+				}
 			elsif (/^--install.prefix=(.*)$/)
 				{
 				$install_prefix=$1;
@@ -1185,7 +1190,7 @@ chop $prefix if $prefix =~ /.\/$/;
 
 $openssldir=$prefix . "/ssl" if $openssldir eq "";
 $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
-
+$enginesdir="$prefix/lib/engines" if $enginesdir eq "";
 
 print "IsMK1MF=$IsMK1MF\n";
 
@@ -1871,7 +1876,7 @@ while (<IN>)
 		}
 	elsif	(/^#define\s+ENGINESDIR/)
 		{
-		my $foo = "$prefix/$libdir/engines";
+		my $foo = "$enginesdir";
 		$foo =~ s/\\/\\\\/g;
 		print OUT "#define ENGINESDIR \"$foo\"\n";
 		}
diff -up openssl-1.0.2a/engines/Makefile.enginesdir openssl-1.0.2a/engines/Makefile
--- openssl-1.0.2a/engines/Makefile.enginesdir	2015-04-20 14:37:58.140392292 +0200
+++ openssl-1.0.2a/engines/Makefile	2015-04-20 14:40:15.570598383 +0200
@@ -124,7 +124,7 @@ install:
 				esac; \
 				cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
 			  fi; \
-			  chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
+			  chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
 			  mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
 		done; \
 	fi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-dev/attachments/20160222/16384626/attachment.sig>


More information about the openssl-dev mailing list