[143276] trunk/dports/devel/openssl

cal at macports.org cal at macports.org
Sat Dec 12 09:18:06 PST 2015


Revision: 143276
          https://trac.macports.org/changeset/143276
Author:   cal at macports.org
Date:     2015-12-09 12:50:02 -0800 (Wed, 09 Dec 2015)
Log Message:
-----------
openssl: Fix FTBFS on 10.7, closes #47035

Upstream is at https://github.com/openssl/openssl/issues/494

Modified Paths:
--------------
    trunk/dports/devel/openssl/Portfile

Added Paths:
-----------
    trunk/dports/devel/openssl/files/fix-Apple-clang-version-detection.patch

Modified: trunk/dports/devel/openssl/Portfile
===================================================================
--- trunk/dports/devel/openssl/Portfile	2015-12-09 20:30:44 UTC (rev 143275)
+++ trunk/dports/devel/openssl/Portfile	2015-12-09 20:50:02 UTC (rev 143276)
@@ -40,7 +40,8 @@
 patchfiles          install-headers-HFS+.patch \
                     parallel-building.patch \
                     remove-duplicate-bn_print-doc.patch \
-                    x86_64-asm-on-i386.patch
+                    x86_64-asm-on-i386.patch \
+                    fix-Apple-clang-version-detection.patch
 
 configure.ccache    no
 configure.perl      /usr/bin/perl

Added: trunk/dports/devel/openssl/files/fix-Apple-clang-version-detection.patch
===================================================================
--- trunk/dports/devel/openssl/files/fix-Apple-clang-version-detection.patch	                        (rev 0)
+++ trunk/dports/devel/openssl/files/fix-Apple-clang-version-detection.patch	2015-12-09 20:50:02 UTC (rev 143276)
@@ -0,0 +1,234 @@
+Fix OpenSSL compiler version gates for older Apple clang versions
+
+OpenSSL modified the detection code for AVX and the addx instruction to support
+clang from Xcode 7. The new regexes now match and extract the "Apple" version
+numbering scheme, which is then interpreted as LLVM version number and yields
+incorrect results.
+
+Fix this by introducing separate checks for Apple's compiler versions. This is
+necessary because Apple has now dropped the "based on LLVM" string in newer
+compiler versions. Of course the best alternative would be to switch to tests
+that actually check whether the feature is present, rather than looking at the
+compiler versions, though.
+
+Signed-off-by: Clemens Lang <cal at macports.org>
+Upstream-Status: Submitted [https://github.com/openssl/openssl/issues/494]
+--- ./crypto/aes/asm/aesni-mb-x86_64.pl.orig	2015-12-03 14:42:07.000000000 +0100
++++ ./crypto/aes/asm/aesni-mb-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -63,7 +63,14 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++ 	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++ 	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	# see http://trac.macports.org/wiki/XcodeVersionInfo
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/aes/asm/aesni-sha1-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/aes/asm/aesni-sha1-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -94,7 +94,9 @@
+ $avx=1 if (!$avx && $win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
+ 	   `ml64 2>&1` =~ /Version ([0-9]+)\./ &&
+ 	   $1>=10);
+-$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0);
++# Apple clang 2.1 and 3.0 correspond to LLVM 3.0, see http://trac.macports.org/wiki/XcodeVersionInfo
++$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/ && $2>=2.1);
++$avx=1 if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/ && $2>=3.0);
+ 
+ $shaext=1;	### set to zero if compiling for 1.0.1
+ 
+--- ./crypto/aes/asm/aesni-sha256-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/aes/asm/aesni-sha256-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -59,7 +59,14 @@
+ 	$avx = ($1>=10) + ($1>=12);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++ 	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++ 	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	# see http://trac.macports.org/wiki/XcodeVersionInfo
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/bn/asm/rsaz-x86_64.pl.orig	2015-12-03 14:42:07.000000000 +0100
++++ ./crypto/bn/asm/rsaz-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -113,7 +113,12 @@
+ 	$addx = ($1>=12);
+ }
+ 
+-if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) {
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([5-9])\.([0-9]+)/) {
++	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
++	$addx = ($ver>=5.00);		# Apple LLVM version 5.0 corresponds to LLVM 3.3, see http://trac.macports.org/wiki/XcodeVersionInfo
++}
++
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+ 	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
+ 	$addx = ($ver>=3.03);
+ }
+--- ./crypto/bn/asm/x86_64-mont.pl.orig	2015-12-03 14:42:07.000000000 +0100
++++ ./crypto/bn/asm/x86_64-mont.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -68,7 +68,12 @@
+ 	$addx = ($1>=12);
+ }
+ 
+-if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) {
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([5-9])\.([0-9]+)/) {
++	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
++	$addx = ($ver>=5.00);		# Apple LLVM version 5.0 corresponds to LLVM 3.3, see http://trac.macports.org/wiki/XcodeVersionInfo
++}
++
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+ 	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
+ 	$addx = ($ver>=3.03);
+ }
+--- ./crypto/bn/asm/x86_64-mont5.pl.orig	2015-12-03 15:41:12.000000000 +0100
++++ ./crypto/bn/asm/x86_64-mont5.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -53,7 +53,12 @@
+ 	$addx = ($1>=12);
+ }
+ 
+-if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) {
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([5-9])\.([0-9]+)/) {
++	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
++	$addx = ($ver>=5.00);		# Apple LLVM version 5.0 corresponds to LLVM 3.3, see http://trac.macports.org/wiki/XcodeVersionInfo
++}
++
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+ 	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
+ 	$addx = ($ver>=3.03);
+ }
+--- ./crypto/ec/asm/ecp_nistz256-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/ec/asm/ecp_nistz256-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -81,7 +81,16 @@
+ 	$addx = ($1>=12);
+ }
+ 
+-if (!$addx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9])\.([0-9]+)/) {
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:clang|LLVM) version) ([2-9])\.([0-9]+)/) {
++	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($ver>=2.01) + ($ver>=3.01);
++	# Apple LLVM version 5.0 corresponds to LLVM 3.3
++	$addx = ($ver>=5.00);		
++}
++
++if (!$addx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
+ 	my $ver = $2 + $3/100.0;	# 3.1->3.01, 3.10->3.10
+ 	$avx = ($ver>=3.0) + ($ver>=3.01);
+ 	$addx = ($ver>=3.03);
+--- ./crypto/modes/asm/aesni-gcm-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/modes/asm/aesni-gcm-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -56,7 +56,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/modes/asm/ghash-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/modes/asm/ghash-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -105,7 +105,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/sha/asm/sha1-mb-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/sha/asm/sha1-mb-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -58,7 +58,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/sha/asm/sha1-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/sha/asm/sha1-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -107,7 +107,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([2-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/sha/asm/sha256-mb-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/sha/asm/sha256-mb-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -59,7 +59,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
+--- ./crypto/sha/asm/sha512-x86_64.pl.orig	2015-12-03 15:04:23.000000000 +0100
++++ ./crypto/sha/asm/sha512-x86_64.pl	2015-12-09 01:31:37.000000000 +0100
+@@ -124,7 +124,13 @@
+ 	$avx = ($1>=10) + ($1>=11);
+ }
+ 
+-if (!$avx && `$ENV{CC} -v 2>&1` =~ /((?:^clang|LLVM) version|based on LLVM) ([3-9]\.[0-9]+)/) {
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^Apple (?:^clang|LLVM) version) ([2-9]\.[0-9]+)/) {
++	# Apple clang versions 2.1 and 3.0 correspond to LLVM 3.0
++	# Apple clang versions 3.1 and 4.1 correspond to LLVM 3.1
++	$avx = ($2>=2.1) + ($2>=3.1);
++}
++
++if (!$avx && `$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9]\.[0-9]+)/) {
+ 	$avx = ($2>=3.0) + ($2>3.0);
+ }
+ 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20151212/9adc9457/attachment.html>


More information about the macports-changes mailing list