diff options
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch | 41 | ||||
-rw-r--r-- | dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild | 72 |
2 files changed, 113 insertions, 0 deletions
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..25633ada --- /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.kivilinna@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.kivilinna@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-r1.ebuild b/dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild new file mode 100644 index 00000000..124ae02d --- /dev/null +++ b/dev-libs/libgcrypt/libgcrypt-1.7.5-r1.ebuild @@ -0,0 +1,72 @@ +# Copyright 2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +AUTOTOOLS_AUTORECONF=1 +#WANT_AUTOMAKE=1.14 + +inherit autotools-multilib flag-o-matic + +DESCRIPTION="General purpose crypto library based on the code used in GnuPG" +HOMEPAGE="http://www.gnupg.org/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" + +LICENSE="LGPL-2.1 MIT" +SLOT="0/20" # subslot = soname major version +KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="doc static-libs" + +RDEPEND=">=dev-libs/libgpg-error-1.12[${MULTILIB_USEDEP}] + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-baselibs-20131008-r19 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32] + )" +DEPEND="${RDEPEND} + doc? ( virtual/texi2dvi )" + +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=( + /usr/bin/libgcrypt-config +) + +multilib_src_configure() { + if [[ ${CHOST} == *86*-solaris* ]] ; then + # ASM code uses GNU ELF syntax, divide in particular, we need to + # allow this via ASFLAGS, since we don't have a flag-o-matic + # function for that, we'll have to abuse cflags for this + append-cflags -Wa,--divide + fi + local myeconfargs=( + --disable-dependency-tracking + --enable-noexecstack + --disable-O-flag-munging + $(use_enable static-libs static) + + # disabled due to various applications requiring privileges + # after libgcrypt drops them (bug #468616) + --without-capabilities + + # http://trac.videolan.org/vlc/ticket/620 + # causes bus-errors on sparc64-solaris + $([[ ${CHOST} == *86*-darwin* ]] && echo "--disable-asm") + $([[ ${CHOST} == sparcv9-*-solaris* ]] && echo "--disable-asm") + ) + autotools-utils_src_configure +} + +multilib_src_compile() { + emake + multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf +} + +multilib_src_install() { + emake DESTDIR="${D}" install + multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf +} |