dev-libs/gf2x: new version 1.3.0.
authorMichael Orlitzky <mjo@gentoo.org>
Sun, 26 Apr 2020 18:08:58 +0000 (14:08 -0400)
committerMichael Orlitzky <mjo@gentoo.org>
Sun, 26 Apr 2020 18:18:09 +0000 (14:18 -0400)
Standard version bump along with some ebuild improvements:

  * EAPI=7.
  * Dropped the unused eutils and replaced the ltprune eclasses.
  * Added the new Gitlab instance to HOMEPAGE.
  * Added a GCC-10.x compatibility patch already merged upstream.
  * Updated the subslot to match the major soname component.

Closes: https://bugs.gentoo.org/719612
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
dev-libs/gf2x/Manifest
dev-libs/gf2x/files/fno-common.patch [new file with mode: 0644]
dev-libs/gf2x/gf2x-1.3.0.ebuild [new file with mode: 0644]

index 28e154527b01469260e202b3778bc0b0066666f0..a221ee912f7c62b52275e86ed78ca3ab4659ad2a 100644 (file)
@@ -1 +1,2 @@
 DIST gf2x-1.2.tar.gz 706519 BLAKE2B 4aa45d10646b51e540be51d0fe3691083c48c666d34e67d50d8f53753c49af2bd9664483618eee5a1883106d1f58ddb28cd4eb02031f13eebe8278630de736f6 SHA512 efddad2b99fa103fa77caed4a62f4a763dbff67bc7cf4527bbbf33ca826829e4a4f94e97454ef1a6498bdc2cee8934ff43f9dabf41a4a4f256721527a1dffa30
+DIST gf2x-1.3.0.tar.gz 727717 BLAKE2B 65f6596a09087708e4ae940b067cb375476c1e7b25a28bf12e9318c752cb326516edeb9363d0f98a9b4173f5bcefd204aa62e1cb87b3f27ad9c30b661edc7451 SHA512 4991568032483e0ecb4552a698e5b7d09f80875e54584a0060a9473be1f87e4e8f714e657f08fec0b9fcf493d969408e5a9000f900623b3694aba1ecf6dc239e
diff --git a/dev-libs/gf2x/files/fno-common.patch b/dev-libs/gf2x/files/fno-common.patch
new file mode 100644 (file)
index 0000000..bcb4c25
--- /dev/null
@@ -0,0 +1,37 @@
+From 5c8737c5c3170358024a4a969e1386cea15932f3 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sun, 26 Apr 2020 09:56:34 -0400
+Subject: [PATCH 1/1] src/tunetoom.c: delete duplicate definition of rp.
+
+The "make tune-toom" command has started failing with gcc-10.x because
+of its new default -fno-common behavior,
+
+  * https://gcc.gnu.org/gcc-10/porting_to.html
+  * https://wiki.gentoo.org/wiki/Gcc_10_porting_notes/fno_common
+
+This leads to an error involving the FILE pointer "rp" that is declared
+in global scope in both src/tunetoom.c and src/tuning-common.c. In this
+case, the declaration in src/tunetoom.c is simply redundant: that file
+includes src/tuning-common.h which already declares "rp" as extern.
+
+Deleting the redeclaration in src/tunetoom.c makes the build succeed.
+---
+ src/tunetoom.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/tunetoom.c b/src/tunetoom.c
+index 7553e0c..1140606 100644
+--- a/src/tunetoom.c
++++ b/src/tunetoom.c
+@@ -111,8 +111,6 @@ const char * gf2x_utoom_select_string[] = {
+     [GF2X_SELECT_UNB_TC3U]  = "TC3U",
+ };
+-FILE *rp;
+-
+ void tunetoom(long tablesz)
+ {
+     long high, n;
+-- 
+2.24.1
+
diff --git a/dev-libs/gf2x/gf2x-1.3.0.ebuild b/dev-libs/gf2x/gf2x-1.3.0.ebuild
new file mode 100644 (file)
index 0000000..4763099
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="C/C++ routines for fast arithmetic in GF(2)[x]"
+HOMEPAGE="https://gitlab.inria.fr/thome/gf2x/ http://gforge.inria.fr/projects/gf2x/"
+# The Gitlab release is missing the autotools files.
+SRC_URI="https://gforge.inria.fr/frs/download.php/38243/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/3" # soname major version, defined in configure.ac
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="fft static-libs custom-tune"
+IUSE_CPU_FLAGS=" pclmul sse2 sse3 sse4_1 ssse3"
+IUSE+=" ${IUSE_CPU_FLAGS// / cpu_flags_x86_}"
+
+PATCHES=( "${FILESDIR}/fno-common.patch" )
+
+src_prepare() {
+       default
+       # fix for cross-compiling, avoid ABI detection
+       sed -e 's/VERIFY_WORDSIZE(\[$ABI\].*/echo "skipping ABI check"/' \
+               -e 's/AC_MSG_ERROR(\[already_t.*/echo "skipping ABI check"/' \
+               -i configure.ac || die
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               $(use_enable cpu_flags_x86_sse2 sse2) \
+               $(use_enable cpu_flags_x86_sse3 sse3) \
+               $(use_enable cpu_flags_x86_ssse3 ssse3) \
+               $(use_enable cpu_flags_x86_sse4_1 sse41) \
+               $(use_enable cpu_flags_x86_pclmul pclmul) \
+               $(use_enable fft fft-interface) \
+               $(use_enable static-libs static)
+}
+
+src_compile() {
+       emake
+       if use custom-tune; then
+               einfo "Starting tuning"
+               emake tune-lowlevel
+               emake tune-toom
+               use fft && emake tune-fft
+       fi
+}
+
+src_install() {
+       default
+       if ! use static-libs; then
+               find "${ED}" -name '*.la' -delete || die
+       fi
+}