diff options
author | 2008-05-02 04:23:52 +0000 | |
---|---|---|
committer | 2008-05-02 04:23:52 +0000 | |
commit | 5c13e54e1761e4476b85e1a6688960a9a493d740 (patch) | |
tree | 81b0b71d9ba37e5a841f3ef3f877bf72040378fa /dev-libs/gmp | |
parent | old (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | dev-libs/gmp/files/4.2.2/mpf_set_str.c.diff | 38 | ||||
-rw-r--r-- | dev-libs/gmp/gmp-4.2.2-r1.ebuild | 76 |
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}/ +} |