[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