summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-05-02 04:23:52 +0000
committerMike Frysinger <vapier@gentoo.org>2008-05-02 04:23:52 +0000
commit5c13e54e1761e4476b85e1a6688960a9a493d740 (patch)
tree81b0b71d9ba37e5a841f3ef3f877bf72040378fa /dev-libs/gmp
parentold (diff)
downloadgentoo-2-5c13e54e1761e4476b85e1a6688960a9a493d740.tar.gz
gentoo-2-5c13e54e1761e4476b85e1a6688960a9a493d740.tar.bz2
gentoo-2-5c13e54e1761e4476b85e1a6688960a9a493d740.zip
Add fix from upstream.
(Portage version: 2.2_pre5)
Diffstat (limited to 'dev-libs/gmp')
-rw-r--r--dev-libs/gmp/ChangeLog10
-rw-r--r--dev-libs/gmp/files/4.2.2/mpf_set_str.c.diff38
-rw-r--r--dev-libs/gmp/gmp-4.2.2-r1.ebuild76
3 files changed, 122 insertions, 2 deletions
diff --git a/dev-libs/gmp/ChangeLog b/dev-libs/gmp/ChangeLog
index fcf657efee9d..b65cc3e9e52f 100644
--- a/dev-libs/gmp/ChangeLog
+++ b/dev-libs/gmp/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-libs/gmp
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.92 2007/12/26 07:49:48 drac Exp $
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/ChangeLog,v 1.93 2008/05/02 04:23:52 vapier Exp $
+
+*gmp-4.2.2-r1 (02 May 2008)
+
+ 02 May 2008; Mike Frysinger <vapier@gentoo.org>
+ +files/4.2.2/mpf_set_str.c.diff, +gmp-4.2.2-r1.ebuild:
+ Add fix from upstream.
26 Dec 2007; Samuli Suominen <drac@gentoo.org> gmp-4.2.2.ebuild:
amd64 stable wrt #202665
diff --git a/dev-libs/gmp/files/4.2.2/mpf_set_str.c.diff b/dev-libs/gmp/files/4.2.2/mpf_set_str.c.diff
new file mode 100644
index 000000000000..9ea58b9f0384
--- /dev/null
+++ b/dev-libs/gmp/files/4.2.2/mpf_set_str.c.diff
@@ -0,0 +1,38 @@
+*** mpf/set_str.c 30 Aug 2007 18:19:41 -0000
+--- mpf/set_str.c 10 Dec 2007 04:47:18 -0000
+*************** mpf_set_str (mpf_ptr x, const char *str,
+*** 272,277 ****
+
+ if (expptr != 0)
+! /* FIXME: Should do some error checking here. */
+! exp_in_base = strtol (expptr, (char **) 0, exp_base);
+ else
+ exp_in_base = 0;
+--- 272,298 ----
+
+ if (expptr != 0)
+! {
+! /* Scan and convert the exponent, in base exp_base. */
+! long dig, neg = -(long) ('-' == expptr[0]);
+! expptr -= neg; /* conditional increment */
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! if (dig >= exp_base)
+! {
+! TMP_FREE;
+! return -1;
+! }
+! exp_in_base = dig;
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! while (dig < exp_base)
+! {
+! exp_in_base = exp_in_base * exp_base;
+! exp_in_base += dig;
+! c = (unsigned char) *expptr++;
+! dig = digit_value[c];
+! }
+! exp_in_base = (exp_in_base ^ neg) - neg; /* conditional negation */
+! }
+ else
+ exp_in_base = 0;
diff --git a/dev-libs/gmp/gmp-4.2.2-r1.ebuild b/dev-libs/gmp/gmp-4.2.2-r1.ebuild
new file mode 100644
index 000000000000..7bb0e0002e44
--- /dev/null
+++ b/dev-libs/gmp/gmp-4.2.2-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmp/gmp-4.2.2-r1.ebuild,v 1.1 2008/05/02 04:23:52 vapier Exp $
+
+inherit flag-o-matic eutils libtool
+
+DESCRIPTION="Library for arithmetic on arbitrary precision integers, rational numbers, and floating-point numbers"
+HOMEPAGE="http://gmplib.org/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2
+ doc? ( http://gmplib.org/${PN}-man-${PV}.pdf )"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="doc nocxx"
+
+RDEPEND=""
+DEPEND=""
+
+src_unpack () {
+ unpack ${A}
+ cd "${S}"
+ [[ -d ${FILESDIR}/${PV} ]] && EPATCH_SUFFIX="diff" EPATCH_FORCE="yes" epatch "${FILESDIR}"/${PV}
+ epatch "${FILESDIR}"/${PN}-4.1.4-noexecstack.patch
+ epatch "${FILESDIR}"/${PN}-4.2.2-ABI-multilib.patch
+ epatch "${FILESDIR}"/${PN}-4.2.1-s390.diff
+
+ sed -i -e 's:ABI = @ABI@:GMPABI = @GMPABI@:' \
+ Makefile.in */Makefile.in */*/Makefile.in
+
+ # note: we cannot run autotools here as gcc depends on this package
+ elibtoolize
+}
+
+src_compile() {
+ # GMP believes hppa2.0 is 64bit
+ local is_hppa_2_0
+ if [[ ${CHOST} == hppa2.0-* ]] ; then
+ is_hppa_2_0=1
+ export CHOST=${CHOST/2.0/1.1}
+ fi
+
+ # ABI mappings (needs all architectures supported)
+ case ${ABI} in
+ 32|x86) export GMPABI=32;;
+ 64|amd64|n64) export GMPABI=64;;
+ o32|n32) export GMPABI=${ABI};;
+ esac
+
+ econf \
+ --localstatedir=/var/state/gmp \
+ --disable-mpfr \
+ --disable-mpbsd \
+ $(use_enable !nocxx cxx) \
+ || die "configure failed"
+
+ # Fix the ABI for hppa2.0
+ if [[ -n ${is_hppa_2_0} ]] ; then
+ sed -i \
+ -e 's:pa32/hppa1_1:pa32/hppa2_0:' \
+ "${S}"/config.h || die
+ export CHOST=${CHOST/1.1/2.0}
+ fi
+
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "make install failed"
+
+ dodoc AUTHORS ChangeLog NEWS README
+ dodoc doc/configuration doc/isa_abi_headache
+ dohtml -r doc
+
+ use doc && cp "${DISTDIR}"/gmp-man-${PV}.pdf "${D}"/usr/share/doc/${PF}/
+}