From 5d3ea311dda020adea4a997d0bbb3e02c012fdf4 Mon Sep 17 00:00:00 2001 From: mycroft Date: Fri, 21 Feb 2003 12:25:22 +0000 Subject: Update to gmp 4.1.2. Many changes, but the relevant bug fixes seems to be: * mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero. * mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space for pp temporary to allow for worst case overestimate of root. Add some asserts. * tests/mpz/t-root.c: Generalize and speed up. * mpfr/pow.c: Fixed bug (infinite loop) for exact powers. * mpfr/sub.c: Fixed wrong inexact flag for a - b where a and b are of different signs and EXP(a) < EXP(b). * printf/printffuns.c (gmp_fprintf_reps): Make it actually work for padding > 256. * gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation. * mpn/generic/tdiv_qr.c: Remove a bogus assert. * mpn/generic/mode1o.c, mpn/alpha/ev5/mode1o.c: Correction to ASSERTs. Reported by Christoph Ludwig. * mpf/urandomb.c: Truncate nbits to precision of rop. * configure.in (sparc v9 *bsd*): Add NetBSD and OpenBSD sparc64. (x86 openbsd*): Extra underscore for _GLOBAL_OFFSET_TABLE_. * mpn/generic/rootrem.c: Avoid overflow in xnb calculation. * mpz/root.c: Avoid overflow in rootnb calculation. * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken mpq/double functions. * mpn/m68k/lshift.asm: Fix typo in !scale_available_p code. * mpn/m68k/rshift.asm: Likewise. * mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO. * mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent float rounding gremlin on powerpc. * mpf/inp_str.c: Fix returned count of chars read, reported by Paul Zimmermann. Also fix a memory leak for invalid input. * mpfr/set_q.c: Allow for 1 bit numerator or denominator. --- devel/gmp/Makefile | 4 ++-- devel/gmp/PLIST | 7 ++++--- devel/gmp/buildlink2.mk | 4 ++-- devel/gmp/distinfo | 10 +++------- devel/gmp/patches/patch-ga | 25 ------------------------- devel/gmp/patches/patch-gb | 33 --------------------------------- devel/gmp/patches/patch-gc | 27 --------------------------- devel/gmp/patches/patch-gd | 30 ------------------------------ 8 files changed, 11 insertions(+), 129 deletions(-) delete mode 100644 devel/gmp/patches/patch-ga delete mode 100644 devel/gmp/patches/patch-gb delete mode 100644 devel/gmp/patches/patch-gc delete mode 100644 devel/gmp/patches/patch-gd (limited to 'devel/gmp') diff --git a/devel/gmp/Makefile b/devel/gmp/Makefile index 39fc084c4b0..78fb5f3e2d3 100644 --- a/devel/gmp/Makefile +++ b/devel/gmp/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.15 2003/01/02 20:30:59 hubertf Exp $ +# $NetBSD: Makefile,v 1.16 2003/02/21 12:25:22 mycroft Exp $ # -DISTNAME= gmp-4.1 +DISTNAME= gmp-4.1.2 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GNU:=gmp/} diff --git a/devel/gmp/PLIST b/devel/gmp/PLIST index 85313335c72..2751cbae2ba 100644 --- a/devel/gmp/PLIST +++ b/devel/gmp/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.6 2002/08/25 21:49:42 jlam Exp $ +@comment $NetBSD: PLIST,v 1.7 2003/02/21 12:25:22 mycroft Exp $ include/gmp.h include/gmpxx.h @unexec ${INSTALL_INFO} --delete --info-dir=%D/info %D/info/gmp.info @@ -12,12 +12,13 @@ info/gmp.info-5 info/gmp.info-6 info/gmp.info-7 info/gmp.info-8 +info/gmp.info-9 lib/libgmp.a lib/libgmp.la lib/libgmp.so -lib/libgmp.so.6.0 +lib/libgmp.so.6.2 lib/libgmp.so.6 -lib/libgmpxx.so.3.2 +lib/libgmpxx.so.3.4 lib/libgmpxx.so.3 lib/libgmpxx.a lib/libgmpxx.la diff --git a/devel/gmp/buildlink2.mk b/devel/gmp/buildlink2.mk index 00e9b1cae46..50e616f052e 100644 --- a/devel/gmp/buildlink2.mk +++ b/devel/gmp/buildlink2.mk @@ -1,10 +1,10 @@ -# $NetBSD: buildlink2.mk,v 1.1 2002/08/27 06:23:53 jlam Exp $ +# $NetBSD: buildlink2.mk,v 1.2 2003/02/21 12:25:22 mycroft Exp $ .if !defined(GMP_BUILDLINK2_MK) GMP_BUILDLINK2_MK= # defined BUILDLINK_PACKAGES+= gmp -BUILDLINK_DEPENDS.gmp?= gmp>=4.1 +BUILDLINK_DEPENDS.gmp?= gmp>=4.1.2 BUILDLINK_PKGSRCDIR.gmp?= ../../devel/gmp EVAL_PREFIX+= BUILDLINK_PREFIX.gmp=gmp diff --git a/devel/gmp/distinfo b/devel/gmp/distinfo index e456ad7bd98..b97cec96e27 100644 --- a/devel/gmp/distinfo +++ b/devel/gmp/distinfo @@ -1,8 +1,4 @@ -$NetBSD: distinfo,v 1.6 2002/08/25 21:49:43 jlam Exp $ +$NetBSD: distinfo,v 1.7 2003/02/21 12:25:22 mycroft Exp $ -SHA1 (gmp-4.1.tar.gz) = 6385fdfda2da9bd8c47256f5766b917f767c181b -Size (gmp-4.1.tar.gz) = 2145387 bytes -SHA1 (patch-ga) = 59b4b5cca8a78c3220b35b5abdbe9354f0c9865e -SHA1 (patch-gb) = fc15a237f4bfc74aec382b3926dbfa1a224b7480 -SHA1 (patch-gc) = 811a6e3ce6691ce63338ca6283ba589db3ed6c84 -SHA1 (patch-gd) = 771fa505e8d2c8eed1e8c09f3d340c461ab350df +SHA1 (gmp-4.1.2.tar.gz) = 68a6ee6488e9c660f201be70bc55b8e2c40b16b1 +Size (gmp-4.1.2.tar.gz) = 2159329 bytes diff --git a/devel/gmp/patches/patch-ga b/devel/gmp/patches/patch-ga deleted file mode 100644 index 9eeddc4628b..00000000000 --- a/devel/gmp/patches/patch-ga +++ /dev/null @@ -1,25 +0,0 @@ -$NetBSD: patch-ga,v 1.2 2002/08/25 21:49:43 jlam Exp $ - -This is a patch for 4.1 from the GNU MP Homepage, it should be -removed in future versions - -Index: randraw.c -=================================================================== -RCS file: /home/cvsfiles/gmp/randraw.c,v -retrieving revision 1.18 -retrieving revision 1.19 -diff -u -r1.18 -r1.19 ---- randraw.c 2002/05/14 16:59:44 1.18 -+++ randraw.c 2002/06/09 08:12:03 1.19 -@@ -112,10 +112,8 @@ - if (seedn == 0) - { - /* Seed is 0. Result is C % M. Assume table is sensibly stored, -- with C smaller than M*/ -+ with C smaller than M. */ - *rp = c; -- -- ASSERT_ALWAYS (((mp_limb_t) 1 << m2exp) > c); - - *seedp = c; - SIZ (rstate->_mp_seed) = 1; diff --git a/devel/gmp/patches/patch-gb b/devel/gmp/patches/patch-gb deleted file mode 100644 index 9ed1fd35e1f..00000000000 --- a/devel/gmp/patches/patch-gb +++ /dev/null @@ -1,33 +0,0 @@ -$NetBSD: patch-gb,v 1.2 2002/08/25 21:49:44 jlam Exp $ - -This is a patch for 4.1 from the GNU MP Homepage, it should be -removed in future versions - ---- mpz/powm_ui.c.~1.16.~ Thu May 16 09:20:49 2002 -+++ mpz/powm_ui.c Sat Jun 1 10:41:34 2002 -@@ -115,6 +115,17 @@ - - /* Main loop. */ - -+ /* If m is already normalized (high bit of high limb set), and b is the -+ same size, but a bigger value, and e==1, then there's no modular -+ reductions done and we can end up with a result out of range at the -+ end. */ -+ if (c == 0) -+ { -+ if (xn == mn && mpn_cmp (xp, mp, mn) >= 0) -+ mpn_sub_n (xp, xp, mp, mn); -+ goto finishup; -+ } -+ - while (c != 0) - { - mpn_sqr_n (tp, xp, xn); -@@ -149,6 +160,7 @@ - c--; - } - -+ finishup: - /* We shifted m left m_zero_cnt steps. Adjust the result by reducing - it with the original MOD. */ - if (m_zero_cnt != 0) diff --git a/devel/gmp/patches/patch-gc b/devel/gmp/patches/patch-gc deleted file mode 100644 index bb138ee94d1..00000000000 --- a/devel/gmp/patches/patch-gc +++ /dev/null @@ -1,27 +0,0 @@ -$NetBSD: patch-gc,v 1.2 2002/08/25 21:49:44 jlam Exp $ - -This is a patch for 4.1 from the GNU MP Homepage, it should be -removed in future versions - ---- mpf/inp_str.c.old Tue Jan 2 18:53:42 2001 -+++ mpf/inp_str.c Wed Jul 3 10:57:33 2002 -@@ -64,6 +64,7 @@ - c = getc (stream); - } - ungetc (c, stream); -+ nread--; - - if (str_size >= alloc_size) - { -@@ -74,9 +75,10 @@ - str[str_size] = 0; - - retval = mpf_set_str (rop, str, base); -+ (*__gmp_free_func) (str, alloc_size); -+ - if (retval == -1) - return 0; /* error */ - -- (*__gmp_free_func) (str, alloc_size); - return str_size + nread; - } diff --git a/devel/gmp/patches/patch-gd b/devel/gmp/patches/patch-gd deleted file mode 100644 index a5fcf6edff1..00000000000 --- a/devel/gmp/patches/patch-gd +++ /dev/null @@ -1,30 +0,0 @@ -$NetBSD: patch-gd,v 1.2 2002/08/25 21:49:45 jlam Exp $ - -This is a patch for 4.1 from the GNU MP Homepage, it should be -removed in future versions - ---- gmpxx.h.old Wed Jul 3 10:45:48 2002 -+++ gmpxx.h Wed Jul 3 10:49:28 2002 -@@ -2633,10 +2633,18 @@ - } - - // conversion functions -- const mpz_classref get_num() const { return mpz_classref(mpq_numref(mp)); } -- mpz_classref get_num() { return mpz_classref(mpq_numref(mp)); } -- const mpz_classref get_den() const { return mpz_classref(mpq_denref(mp)); } -- mpz_classref get_den() { return mpz_classref(mpq_denref(mp)); } -+ -+ // casting a reference to an mpz_t to mpz_class & is a dirty hack, -+ // but works because the internal representation of mpz_class is -+ // exactly an mpz_t -+ const mpz_class & get_num() const -+ { return reinterpret_cast(*mpq_numref(mp)); } -+ mpz_class & get_num() -+ { return reinterpret_cast(*mpq_numref(mp)); } -+ const mpz_class & get_den() const -+ { return reinterpret_cast(*mpq_denref(mp)); } -+ mpz_class & get_den() -+ { return reinterpret_cast(*mpq_denref(mp)); } - - mpq_srcptr get_mpq_t() const { return mp; } - mpq_ptr get_mpq_t() { return mp; } -- cgit v1.2.3