dev-libs/mpc: Sync with Gentoo upstream

Sync ebuild to upstream version to switch to EAPI=7, as previous
EAPIs cause issues with multilib deps when running ./build_toolchains
in the context of arm64 SDK.

Upstream commit e4adffda16496e86a61020e8569c6974f8018983
This commit is contained in:
Jeremi Piotrowski 2021-10-20 12:21:39 +00:00
parent 4db1c1b8c3
commit e51102ad70
7 changed files with 7 additions and 234 deletions

View File

@ -1,2 +1 @@
DIST mpc-1.0.3.tar.gz 669925 BLAKE2B 4b5a1db5220b58070f9356041f44f021c2c9ec46aa4303d0a31e809d649897bc3547e9b06271dae4e80be569ee67e2a84f86b662e05dac0ca36ff87e95fcbd62 SHA512 0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43
DIST mpc-1.1.0.tar.gz 701263 BLAKE2B afd9fefe687b7cd3c3a483e183f366348e34f58f5d713e2f6b38da16e2e382248b446d9da01ea89fe7202b795b08929b7c42c89c2c1e9a57482faf01ee697beb SHA512 72d657958b07c7812dc9c7cbae093118ce0e454c68a585bfb0e2fa559f1bf7c5f49b93906f580ab3f1073e5b595d23c6494d4d76b765d16dde857a18dd239628
DIST mpc-1.2.1.tar.gz 838731 BLAKE2B 9cd03c6a71839e4cdb3c1f18d718cc4d3097c3f8ec307a5c756bd5df27c68aa013755156b3b156efee1acabfee2269602c6a3a358092ef0d522271c9c56c133d SHA512 3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee

View File

@ -1,129 +0,0 @@
https://bugs.gentoo.org/642300
From 36a84f43f326de14db888ba07936cc9621c23f19 Mon Sep 17 00:00:00 2001
From: Paul Zimmermann <Paul.Zimmermann@inria.fr>
Date: Sun, 10 Jan 2016 23:19:37 +0100
Subject: [PATCH] use mpfr_fmma and mpfr_fmms if provided by mpfr
---
configure.ac | 16 ++++++++++++++++
src/mul.c | 15 ++++++++++++---
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index b6fa199..bdb21ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -165,6 +165,22 @@ AC_LINK_IFELSE(
AC_MSG_ERROR([libmpfr not found or uses a different ABI (including static vs shared).])
])
+AC_MSG_CHECKING(for mpfr_fmma)
+LIBS="-lmpfr $LIBS"
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include "mpfr.h"]],
+ [[mpfr_t x; mpfr_fmma (x, x, x, x, x, 0);]]
+ )],
+ [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_MPFR_FMMA, 1, [mpfr_fmma is present])
+ ],
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(HAVE_MPFR_FMMA, 0, [mpfr_fmma is not present])
+ ])
+
# Check for a recent GMP
# We only guarantee that with a *functional* and recent enough GMP version,
# MPC will compile; we do not guarantee that GMP will compile.
diff --git a/src/mul.c b/src/mul.c
index 3c9c0a7..8c4afe4 100644
--- a/src/mul.c
+++ b/src/mul.c
@@ -171,8 +171,9 @@
}
+#if HAVE_MPFR_FMMA == 0
static int
-mpfr_fmma (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
+mpc_fmma (mpfr_ptr z, mpfr_srcptr a, mpfr_srcptr b, mpfr_srcptr c,
mpfr_srcptr d, int sign, mpfr_rnd_t rnd)
{
/* Computes z = ab+cd if sign >= 0, or z = ab-cd if sign < 0.
@@ -319,6 +320,7 @@
return inex;
}
+#endif
int
@@ -337,10 +339,17 @@
else
rop [0] = z [0];
- inex = MPC_INEX (mpfr_fmma (mpc_realref (rop), mpc_realref (x), mpc_realref (y), mpc_imagref (x),
- mpc_imagref (y), -1, MPC_RND_RE (rnd)),
+#if HAVE_MPFR_FMMA
+ inex = MPC_INEX (mpfr_fmms (mpc_realref (rop), mpc_realref (x), mpc_realref (y), mpc_imagref (x),
+ mpc_imagref (y), MPC_RND_RE (rnd)),
mpfr_fmma (mpc_imagref (rop), mpc_realref (x), mpc_imagref (y), mpc_imagref (x),
+ mpc_realref (y), MPC_RND_IM (rnd)));
+#else
+ inex = MPC_INEX (mpc_fmma (mpc_realref (rop), mpc_realref (x), mpc_realref (y), mpc_imagref (x),
+ mpc_imagref (y), -1, MPC_RND_RE (rnd)),
+ mpc_fmma (mpc_imagref (rop), mpc_realref (x), mpc_imagref (y), mpc_imagref (x),
mpc_realref (y), +1, MPC_RND_IM (rnd)));
+#endif
mpc_set (z, rop, MPC_RNDNN);
if (overlap)
--- a/configure
+++ b/configure
@@ -13835,6 +13835,41 @@ else
$as_echo "no" >&6; }
as_fn_error $? "libmpfr not found or uses a different ABI (including static vs shared)." "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpfr_fmma" >&5
+$as_echo_n "checking for mpfr_fmma... " >&6; }
+LIBS="-lmpfr $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "mpfr.h"
+int
+main ()
+{
+mpfr_t x; mpfr_fmma (x, x, x, x, x, 0);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_MPFR_FMMA 1" >>confdefs.h
+
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "#define HAVE_MPFR_FMMA 0" >>confdefs.h
+
+
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
--
2.15.1

View File

@ -1,25 +0,0 @@
mpfr-4.0.0 removed 'mpfr_add_one_ulp' and 'mpfr_sub_one_ulp'
From 5eaa17651b759c7856a118835802fecbebcf46ad Mon Sep 17 00:00:00 2001
From: Paul Zimmermann <Paul.Zimmermann@inria.fr>
Date: Wed, 4 Oct 2017 22:09:40 +0200
Subject: [PATCH] replace obsolete mpfr_add_one_ulp/mpfr_sub_one_ulp functions
---
src/mpc-impl.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mpc-impl.h b/src/mpc-impl.h
index 4026765..5420691 100644
--- a/src/mpc-impl.h
+++ b/src/mpc-impl.h
@@ -60,2 +60,4 @@ along with this program. If not, see http://www.gnu.org/licenses/ .
-#define MPFR_ADD_ONE_ULP(x) mpfr_add_one_ulp (x, GMP_RNDN)
-#define MPFR_SUB_ONE_ULP(x) mpfr_sub_one_ulp (x, GMP_RNDN)
+#define MPFR_ADD_ONE_ULP(x) \
+ (mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x))
+#define MPFR_SUB_ONE_ULP(x) \
+ (mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))
--
2.15.1

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>toolchain@gentoo.org</email>

View File

@ -1,39 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit eutils libtool multilib-minimal
DESCRIPTION="A library for multiprecision complex arithmetic with exact rounding"
HOMEPAGE="http://mpc.multiprecision.org/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0/3"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
DEPEND=">=dev-libs/gmp-4.3.2:0=[${MULTILIB_USEDEP},static-libs?]
>=dev-libs/mpfr-2.4.2:0=[${MULTILIB_USEDEP},static-libs?]"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-mpfr-4.0.0.patch
"${FILESDIR}"/${P}-no-ulp.patch
)
src_prepare() {
default
elibtoolize #347317
}
multilib_src_configure() {
ECONF_SOURCE=${S} econf $(use_enable static-libs static)
}
multilib_src_install_all() {
einstalldocs
prune_libtool_files
}

View File

@ -1,33 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="4"
inherit eutils libtool multilib-minimal
DESCRIPTION="A library for multiprecision complex arithmetic with exact rounding"
HOMEPAGE="http://mpc.multiprecision.org/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
DEPEND=">=dev-libs/gmp-4.3.2[${MULTILIB_USEDEP},static-libs?]
>=dev-libs/mpfr-2.4.2[${MULTILIB_USEDEP},static-libs?]
<dev-libs/mpfr-4.0.0"
RDEPEND="${DEPEND}"
src_prepare() {
elibtoolize #347317
}
multilib_src_configure() {
ECONF_SOURCE=${S} econf $(use_enable static-libs static)
}
multilib_src_install_all() {
einstalldocs
prune_libtool_files
}

View File

@ -1,7 +1,7 @@
# Copyright 1999-2018 Gentoo Foundation
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EAPI=7
inherit multilib-minimal
@ -10,12 +10,12 @@ HOMEPAGE="http://mpc.multiprecision.org/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0/3"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
SLOT="0/3" # libmpc.so.3
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
DEPEND=">=dev-libs/gmp-5.0.0:0=[${MULTILIB_USEDEP},static-libs?]
>=dev-libs/mpfr-3.0.0:0=[${MULTILIB_USEDEP},static-libs?]"
>=dev-libs/mpfr-4.1.0:0=[${MULTILIB_USEDEP},static-libs?]"
RDEPEND="${DEPEND}"
multilib_src_configure() {