commit:     8827e0c526c4dc5d6382cd91d1547f64f85b1ace
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 21 01:26:55 2020 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Tue Apr 21 02:46:21 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8827e0c5

dev-libs/ppl: new revision to fix the build with clang.

This new revision includes an upstream patch (from their git
repository) to fix the build with clang by adding some missing
keywords that should have been there all along. Thanks to Olivier
Huber for the report and for tracking down the patch.

When building with clang, the ./configure script spits out scary
warnings about missing the GCC-specific -frounding-math flag. I
wouldn't worry about it, but judge for yourself.

Closes: https://bugs.gentoo.org/717768
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 dev-libs/ppl/files/fix-clang-build.patch | 37 +++++++++++++++++
 dev-libs/ppl/ppl-1.2-r3.ebuild           | 68 ++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)

diff --git a/dev-libs/ppl/files/fix-clang-build.patch 
b/dev-libs/ppl/files/fix-clang-build.patch
new file mode 100644
index 00000000000..648ff59aa30
--- /dev/null
+++ b/dev-libs/ppl/files/fix-clang-build.patch
@@ -0,0 +1,37 @@
+From: Roberto Bagnara <bagn...@cs.unipr.it>
+Date: Sun, 11 Feb 2018 08:11:09 +0000 (+0100)
+Subject: Added missing "template" and "typename" keywords.
+X-Git-Url: 
http://www.cs.unipr.it/git/gitweb.cgi?p=ppl%2Fppl.git;a=commitdiff_plain;h=c39f6a07b51f89e365b05ba4147aa2aa448febd7;hp=3a5e1e20a94cffb830182f22132b153d6691b7c5
+
+Added missing "template" and "typename" keywords.
+(Thanks to Dmitrii Pasechnik.)
+---
+
+diff --git a/src/Determinate_inlines.hh b/src/Determinate_inlines.hh
+index 2749953..5b47275 100644
+--- a/src/Determinate_inlines.hh
++++ b/src/Determinate_inlines.hh
+@@ -289,8 +289,8 @@ operator()(Determinate& x, const Determinate& y) const {
+ 
+ template <typename PSET>
+ template <typename Binary_Operator_Assign>
+-inline
+-Determinate<PSET>::Binary_Operator_Assign_Lifter<Binary_Operator_Assign>
++inline typename
++Determinate<PSET>::template 
Binary_Operator_Assign_Lifter<Binary_Operator_Assign>
+ Determinate<PSET>::lift_op_assign(Binary_Operator_Assign op_assign) {
+   return Binary_Operator_Assign_Lifter<Binary_Operator_Assign>(op_assign);
+ }
+diff --git a/src/OR_Matrix_inlines.hh b/src/OR_Matrix_inlines.hh
+index b20b697..8124b7f 100644
+--- a/src/OR_Matrix_inlines.hh
++++ b/src/OR_Matrix_inlines.hh
+@@ -97,7 +97,7 @@ OR_Matrix<T>::Pseudo_Row<U>::Pseudo_Row(const Pseudo_Row<V>& 
y)
+ 
+ template <typename T>
+ template <typename U>
+-inline OR_Matrix<T>::Pseudo_Row<U>&
++inline typename OR_Matrix<T>::template Pseudo_Row<U>&
+ OR_Matrix<T>::Pseudo_Row<U>::operator=(const Pseudo_Row& y) {
+   first = y.first;
+ #if PPL_OR_MATRIX_EXTRA_DEBUG

diff --git a/dev-libs/ppl/ppl-1.2-r3.ebuild b/dev-libs/ppl/ppl-1.2-r3.ebuild
new file mode 100644
index 00000000000..91ea71b2109
--- /dev/null
+++ b/dev-libs/ppl/ppl-1.2-r3.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="The Parma Polyhedra Library for numerical analysis of complex 
systems"
+HOMEPAGE="http://bugseng.com/products/ppl";
+SRC_URI="http://bugseng.com/products/ppl/download/ftp/releases/${PV}/${P}.tar.xz";
+
+LICENSE="GPL-3"
+SLOT="0/4.14" # SONAMEs
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sparc ~x86 ~amd64-linux ~sparc-solaris"
+IUSE="cdd +cxx doc lpsol pch static-libs test"
+
+RDEPEND=">=dev-libs/gmp-6[cxx]
+       lpsol? ( sci-mathematics/glpk )"
+DEPEND="${RDEPEND}
+       app-arch/xz-utils
+       sys-devel/m4"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+       "${FILESDIR}/disable-mipproblem2.patch"
+       "${FILESDIR}/disable-containsintegerpoint1.patch"
+       "${FILESDIR}/disable-boeing-tests.patch"
+       "${FILESDIR}/fix-clang-build.patch"
+)
+
+src_prepare() {
+       default
+
+       # The patch should do this, but then the diff makes it run
+       # afoul of the Gentoo patch size limit.
+       rm demos/ppl_lpsol/examples/boeing[12].mps || die
+
+       eautoreconf
+}
+
+src_configure() {
+       local interfaces=( c )
+       use cxx && interfaces+=( cxx )
+       econf \
+               --disable-debugging \
+               --disable-optimization \
+               $(use_enable doc documentation) \
+               $(use_enable cdd ppl_lcdd) \
+               $(use_enable lpsol ppl_lpsol) \
+               $(use_enable pch) \
+               $(use_enable static-libs static) \
+               --enable-interfaces="${interfaces[*]}" \
+               $(use test && echo --enable-check=quick)
+}
+
+src_install() {
+       default
+       if ! use static-libs; then
+               find "${ED}"/usr -name 'libppl*.la' -delete || die
+       fi
+
+       pushd "${ED}/usr/share/doc/${PF}" >/dev/null || die
+       rm gpl* fdl* || die
+       if ! use doc ; then
+               rm -r *-html/ *.ps.gz *.pdf || die
+       fi
+}

Reply via email to