commit:     b9721b858df2cc6c2a170758daa9a1c8dcd00a6e
Author:     Kristian Fiskerstrand <k_f <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 16 23:33:45 2017 +0000
Commit:     Kristian Fiskerstrand <k_f <AT> gentoo <DOT> org>
CommitDate: Mon Jan 16 23:34:05 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9721b85

dev-libs/libgcrypt: Add fix for SSSE3 problems on Nehalem

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 .../files/libgcrypt-1.7.5-fix-nehalem.patch        | 41 ++++++++++++++++++++++
 ...rypt-1.7.5.ebuild => libgcrypt-1.7.5-r1.ebuild} |  3 +-
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch 
b/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch
new file mode 100644
index 00000000..25633ad
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch
@@ -0,0 +1,41 @@
+From aada604594fd42224d366d3cb98f67fd3b989cd6 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivili...@iki.fi>
+Date: Wed, 4 Jan 2017 12:02:36 +0200
+Subject: [PATCH 1/1] rijndael-ssse3: fix counter operand from read-only to
+ read/write
+
+* cipher/rijndael-ssse3-amd64.c (_gcry_aes_ssse3_ctr_enc): Change
+'ctrlow' operand from read-only to read-write.
+--
+
+With read-only operand, compiler is allowed to pass temporary
+register to assembly block and throw away any calculation that
+have been done on that register. On the other hand, compiler is
+also allowed to keep operand value permanently in one register
+as value is treated as read-only, and effectly operates as
+expected. Selection between these two depends on compiler
+version and used flags.
+
+Signed-off-by: Jussi Kivilinna <jussi.kivili...@iki.fi>
+---
+ cipher/rijndael-ssse3-amd64.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cipher/rijndael-ssse3-amd64.c b/cipher/rijndael-ssse3-amd64.c
+index a8e89d4..2adb73f 100644
+--- a/cipher/rijndael-ssse3-amd64.c
++++ b/cipher/rijndael-ssse3-amd64.c
+@@ -387,8 +387,8 @@ _gcry_aes_ssse3_ctr_enc (RIJNDAEL_context *ctx, unsigned 
char *outbuf,
+                     ".Lno_carry%=:\n\t"
+ 
+                     "pshufb %%xmm6, %%xmm7\n\t"
+-                    :
+-                    : [ctr] "r" (ctr), [ctrlow] "r" (ctrlow)
++                    : [ctrlow] "+r" (ctrlow)
++                    : [ctr] "r" (ctr)
+                     : "cc", "memory");
+ 
+       do_vpaes_ssse3_enc (ctx, nrounds, aes_const_ptr);
+-- 
+2.8.0.rc3
+

diff --git a/dev-libs/libgcrypt/libgcrypt-1.7.5.ebuild 
b/dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild
similarity index 96%
rename from dev-libs/libgcrypt/libgcrypt-1.7.5.ebuild
rename to dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild
index bdecc44..6c374f3 100644
--- a/dev-libs/libgcrypt/libgcrypt-1.7.5.ebuild
+++ b/dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -30,6 +30,7 @@ DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
 PATCHES=(
        "${FILESDIR}"/${PN}-1.6.1-uscore.patch
        "${FILESDIR}"/${PN}-multilib-syspath.patch
+       "${FILESDIR}"/${P}-fix-nehalem.patch
 )
 
 MULTILIB_CHOST_TOOLS=(

Reply via email to