summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-10-24 12:27:15 -0400
committerMike Frysinger <vapier@gentoo.org>2015-10-24 12:27:15 -0400
commit1047ea4d83a5cd59ee12bf45814b56b42de9afd3 (patch)
treea57ca9361ca14a1cb275a1543484d6aa7fe5d15f /dev-libs/mpfr/files
parentdev-libs/mpfr: mark 3.1.3_p4 arm64/ia64/m68k/s390/sh/sparc stable #532028 (diff)
downloadgentoo-1047ea4d83a5cd59ee12bf45814b56b42de9afd3.tar.gz
gentoo-1047ea4d83a5cd59ee12bf45814b56b42de9afd3.tar.bz2
gentoo-1047ea4d83a5cd59ee12bf45814b56b42de9afd3.zip
dev-libs/mpfr: drop old versions
Diffstat (limited to 'dev-libs/mpfr/files')
-rw-r--r--dev-libs/mpfr/files/3.0.0/patch01220
-rw-r--r--dev-libs/mpfr/files/3.0.0/patch02377
-rw-r--r--dev-libs/mpfr/files/3.0.0/patch0388
-rw-r--r--dev-libs/mpfr/files/3.0.1/patch01137
-rw-r--r--dev-libs/mpfr/files/3.0.1/patch0276
-rw-r--r--dev-libs/mpfr/files/3.0.1/patch03107
-rw-r--r--dev-libs/mpfr/files/3.0.1/patch0447
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch0150
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch0296
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch03247
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch04166
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch0569
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch0645
-rw-r--r--dev-libs/mpfr/files/3.1.0/patch07591
-rw-r--r--dev-libs/mpfr/files/3.1.1/patch01235
-rw-r--r--dev-libs/mpfr/files/3.1.1/patch02170
16 files changed, 0 insertions, 2721 deletions
diff --git a/dev-libs/mpfr/files/3.0.0/patch01 b/dev-libs/mpfr/files/3.0.0/patch01
deleted file mode 100644
index da98aab758f9..000000000000
--- a/dev-libs/mpfr/files/3.0.0/patch01
+++ /dev/null
@@ -1,220 +0,0 @@
-diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
---- mpfr-3.0.0-a/PATCHES 2010-06-23 11:02:49.000000000 +0000
-+++ mpfr-3.0.0-b/PATCHES 2010-06-23 11:03:36.000000000 +0000
-@@ -0,0 +1 @@
-+mpfr_out_str
-diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
---- mpfr-3.0.0-a/VERSION 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/VERSION 2010-06-23 11:03:20.000000000 +0000
-@@ -1 +1 @@
--3.0.0
-+3.0.0-p1
-diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
---- mpfr-3.0.0-a/mpfr.h 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/mpfr.h 2010-06-23 11:03:20.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.0.0"
-+#define MPFR_VERSION_STRING "3.0.0-p1"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.0-a/mpfr.texi mpfr-3.0.0-b/mpfr.texi
---- mpfr-3.0.0-a/mpfr.texi 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/mpfr.texi 2010-06-23 11:03:12.000000000 +0000
-@@ -2050,7 +2050,7 @@
- are printed. If @var{base} is greater than 10, @samp{@@} will be used
- instead of @samp{e} as exponent delimiter.
-
--Return the number of bytes written, or if an error occurred, return 0.
-+Return the number of characters written, or if an error occurred, return 0.
- @end deftypefun
-
- @deftypefun size_t mpfr_inp_str (mpfr_t @var{rop}, FILE *@var{stream}, int @var{base}, mpfr_rnd_t @var{rnd})
-diff -Naurd mpfr-3.0.0-a/out_str.c mpfr-3.0.0-b/out_str.c
---- mpfr-3.0.0-a/out_str.c 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/out_str.c 2010-06-23 11:03:12.000000000 +0000
-@@ -22,6 +22,16 @@
-
- #include "mpfr-impl.h"
-
-+/* Warning! S should not contain "%". */
-+#define OUT_STR_RET(S) \
-+ do \
-+ { \
-+ int r; \
-+ r = fprintf (stream, (S)); \
-+ return r < 0 ? 0 : r; \
-+ } \
-+ while (0)
-+
- size_t
- mpfr_out_str (FILE *stream, int base, size_t n_digits, mpfr_srcptr op,
- mpfr_rnd_t rnd_mode)
-@@ -29,6 +39,7 @@
- char *s, *s0;
- size_t l;
- mpfr_exp_t e;
-+ int err;
-
- MPFR_ASSERTN (base >= 2 && base <= 62);
-
-@@ -36,37 +47,16 @@
- if (stream == NULL)
- stream = stdout;
-
-- if (MPFR_IS_NAN(op))
-- {
-- fprintf (stream, "@NaN@");
-- return 3;
-- }
--
-- if (MPFR_IS_INF(op))
-- {
-- if (MPFR_SIGN(op) > 0)
-- {
-- fprintf (stream, "@Inf@");
-- return 3;
-- }
-- else
-- {
-- fprintf (stream, "-@Inf@");
-- return 4;
-- }
-- }
--
-- if (MPFR_IS_ZERO(op))
-+ if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (op)))
- {
-- if (MPFR_SIGN(op) > 0)
-- {
-- fprintf(stream, "0");
-- return 1;
-- }
-+ if (MPFR_IS_NAN (op))
-+ OUT_STR_RET ("@NaN@");
-+ else if (MPFR_IS_INF (op))
-+ OUT_STR_RET (MPFR_IS_POS (op) ? "@Inf@" : "-@Inf@");
- else
- {
-- fprintf(stream, "-0");
-- return 2;
-+ MPFR_ASSERTD (MPFR_IS_ZERO (op));
-+ OUT_STR_RET (MPFR_IS_POS (op) ? "0" : "-0");
- }
- }
-
-@@ -77,21 +67,31 @@
-
- l = strlen (s) + 1; /* size of allocated block returned by mpfr_get_str
- - may be incorrect, as only an upper bound? */
-- if (*s == '-')
-- fputc (*s++, stream);
-
-- /* outputs mantissa */
-- fputc (*s++, stream); e--; /* leading digit */
-- fputc ((unsigned char) MPFR_DECIMAL_POINT, stream);
-- fputs (s, stream); /* rest of mantissa */
-+ /* outputs possible sign and significand */
-+ err = (*s == '-' && fputc (*s++, stream) == EOF)
-+ || fputc (*s++, stream) == EOF /* leading digit */
-+ || fputc ((unsigned char) MPFR_DECIMAL_POINT, stream) == EOF
-+ || fputs (s, stream) == EOF; /* trailing significand */
- (*__gmp_free_func) (s0, l);
-+ if (MPFR_UNLIKELY (err))
-+ return 0;
-+
-+ e--; /* due to the leading digit */
-
- /* outputs exponent */
- if (e)
- {
-+ int r;
-+
- MPFR_ASSERTN(e >= LONG_MIN);
- MPFR_ASSERTN(e <= LONG_MAX);
-- l += fprintf (stream, (base <= 10 ? "e%ld" : "@%ld"), (long) e);
-+
-+ r = fprintf (stream, (base <= 10 ? "e%ld" : "@%ld"), (long) e);
-+ if (MPFR_UNLIKELY (r < 0))
-+ return 0;
-+
-+ l += r;
- }
-
- return l;
-diff -Naurd mpfr-3.0.0-a/tests/tout_str.c mpfr-3.0.0-b/tests/tout_str.c
---- mpfr-3.0.0-a/tests/tout_str.c 2010-06-10 11:00:13.000000000 +0000
-+++ mpfr-3.0.0-b/tests/tout_str.c 2010-06-23 11:03:12.000000000 +0000
-@@ -46,22 +46,54 @@
- special (void)
- {
- mpfr_t x;
-+ unsigned int n;
-
- mpfr_init (x);
-
- mpfr_set_nan (x);
-- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ if (n != 5)
-+ {
-+ printf ("Error: mpfr_out_str (file, 10, 0, NaN, MPFR_RNDN) wrote %u "
-+ "characters instead of 5.\n", n);
-+ exit (1);
-+ }
-
- mpfr_set_inf (x, 1);
-- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ if (n != 5)
-+ {
-+ printf ("Error: mpfr_out_str (file, 10, 0, +Inf, MPFR_RNDN) wrote %u "
-+ "characters instead of 5.\n", n);
-+ exit (1);
-+ }
-
- mpfr_set_inf (x, -1);
-- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ if (n != 6)
-+ {
-+ printf ("Error: mpfr_out_str (file, 10, 0, -Inf, MPFR_RNDN) wrote %u "
-+ "characters instead of 6.\n", n);
-+ exit (1);
-+ }
-
- mpfr_set_ui (x, 0, MPFR_RNDN);
-- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ if (n != 1)
-+ {
-+ printf ("Error: mpfr_out_str (file, 10, 0, +0, MPFR_RNDN) wrote %u "
-+ "characters instead of 1.\n", n);
-+ exit (1);
-+ }
-+
- mpfr_neg (x, x, MPFR_RNDN);
-- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
-+ if (n != 2)
-+ {
-+ printf ("Error: mpfr_out_str (file, 10, 0, -0, MPFR_RNDN) wrote %u "
-+ "characters instead of 2.\n", n);
-+ exit (1);
-+ }
-
- mpfr_clear (x);
- }
-diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
---- mpfr-3.0.0-a/version.c 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/version.c 2010-06-23 11:03:20.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.0";
-+ return "3.0.0-p1";
- }
diff --git a/dev-libs/mpfr/files/3.0.0/patch02 b/dev-libs/mpfr/files/3.0.0/patch02
deleted file mode 100644
index af6dfb21380f..000000000000
--- a/dev-libs/mpfr/files/3.0.0/patch02
+++ /dev/null
@@ -1,377 +0,0 @@
-diff -Naurd mpfr-3.0.0-a/Makefile.in mpfr-3.0.0-b/Makefile.in
---- mpfr-3.0.0-a/Makefile.in 2010-06-10 11:00:52.000000000 +0000
-+++ mpfr-3.0.0-b/Makefile.in 2010-06-10 11:00:52.000000000 +0000
-@@ -239,6 +239,7 @@
- distuninstallcheck_listfiles = find . -type f -print
- distcleancheck_listfiles = find . -type f -print
- ACLOCAL = @ACLOCAL@
-+ALLOCA = @ALLOCA@
- AMTAR = @AMTAR@
- AR = @AR@
- AS = @AS@
-diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
---- mpfr-3.0.0-a/PATCHES 2010-06-23 11:03:36.000000000 +0000
-+++ mpfr-3.0.0-b/PATCHES 2010-06-25 13:23:13.000000000 +0000
-@@ -0,0 +1 @@
-+alloca
-diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
---- mpfr-3.0.0-a/VERSION 2010-06-23 11:03:20.000000000 +0000
-+++ mpfr-3.0.0-b/VERSION 2010-06-25 13:23:13.000000000 +0000
-@@ -1 +1 @@
--3.0.0-p1
-+3.0.0-p2
-diff -Naurd mpfr-3.0.0-a/acinclude.m4 mpfr-3.0.0-b/acinclude.m4
---- mpfr-3.0.0-a/acinclude.m4 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/acinclude.m4 2010-06-10 11:00:14.000000000 +0000
-@@ -59,6 +59,9 @@
- dnl sys/fpu.h - MIPS specific
- AC_CHECK_HEADERS([sys/time.h sys/fpu.h])
-
-+dnl Check how to get `alloca'
-+AC_FUNC_ALLOCA
-+
- dnl SIZE_MAX macro
- gl_SIZE_MAX
-
-diff -Naurd mpfr-3.0.0-a/configure mpfr-3.0.0-b/configure
---- mpfr-3.0.0-a/configure 2010-06-10 11:00:51.000000000 +0000
-+++ mpfr-3.0.0-b/configure 2010-06-25 13:23:05.000000000 +0000
-@@ -783,6 +783,7 @@
- OBJDUMP
- DLLTOOL
- AS
-+ALLOCA
- MPFR_LIBM
- ANSI2KNR
- U
-@@ -5622,6 +5623,197 @@
- done
-
-
-+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-+# for constant arguments. Useless!
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
-+$as_echo_n "checking for working alloca.h... " >&6; }
-+if test "${ac_cv_working_alloca_h+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+#include <alloca.h>
-+int
-+main ()
-+{
-+char *p = (char *) alloca (2 * sizeof (int));
-+ if (p) return 0;
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+ ac_cv_working_alloca_h=yes
-+else
-+ ac_cv_working_alloca_h=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-+$as_echo "$ac_cv_working_alloca_h" >&6; }
-+if test $ac_cv_working_alloca_h = yes; then
-+
-+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
-+
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
-+$as_echo_n "checking for alloca... " >&6; }
-+if test "${ac_cv_func_alloca_works+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+#ifdef __GNUC__
-+# define alloca __builtin_alloca
-+#else
-+# ifdef _MSC_VER
-+# include <malloc.h>
-+# define alloca _alloca
-+# else
-+# ifdef HAVE_ALLOCA_H
-+# include <alloca.h>
-+# else
-+# ifdef _AIX
-+ #pragma alloca
-+# else
-+# ifndef alloca /* predefined by HP cc +Olibcalls */
-+char *alloca ();
-+# endif
-+# endif
-+# endif
-+# endif
-+#endif
-+
-+int
-+main ()
-+{
-+char *p = (char *) alloca (1);
-+ if (p) return 0;
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+ ac_cv_func_alloca_works=yes
-+else
-+ ac_cv_func_alloca_works=no
-+fi
-+rm -f core conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-+$as_echo "$ac_cv_func_alloca_works" >&6; }
-+
-+if test $ac_cv_func_alloca_works = yes; then
-+
-+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
-+
-+else
-+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-+# that cause trouble. Some versions do not even contain alloca or
-+# contain a buggy version. If you still want to use their alloca,
-+# use ar to extract alloca.o from them instead of compiling alloca.c.
-+
-+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-+
-+$as_echo "#define C_ALLOCA 1" >>confdefs.h
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
-+$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-+if test "${ac_cv_os_cray+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+#if defined CRAY && ! defined CRAY2
-+webecray
-+#else
-+wenotbecray
-+#endif
-+
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+ $EGREP "webecray" >/dev/null 2>&1; then :
-+ ac_cv_os_cray=yes
-+else
-+ ac_cv_os_cray=no
-+fi
-+rm -f conftest*
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
-+$as_echo "$ac_cv_os_cray" >&6; }
-+if test $ac_cv_os_cray = yes; then
-+ for ac_func in _getb67 GETB67 getb67; do
-+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-+eval as_val=\$$as_ac_var
-+ if test "x$as_val" = x""yes; then :
-+
-+cat >>confdefs.h <<_ACEOF
-+#define CRAY_STACKSEG_END $ac_func
-+_ACEOF
-+
-+ break
-+fi
-+
-+ done
-+fi
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
-+$as_echo_n "checking stack direction for C alloca... " >&6; }
-+if test "${ac_cv_c_stack_direction+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ if test "$cross_compiling" = yes; then :
-+ ac_cv_c_stack_direction=0
-+else
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h. */
-+$ac_includes_default
-+int
-+find_stack_direction ()
-+{
-+ static char *addr = 0;
-+ auto char dummy;
-+ if (addr == 0)
-+ {
-+ addr = &dummy;
-+ return find_stack_direction ();
-+ }
-+ else
-+ return (&dummy > addr) ? 1 : -1;
-+}
-+
-+int
-+main ()
-+{
-+ return find_stack_direction () < 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_run "$LINENO"; then :
-+ ac_cv_c_stack_direction=1
-+else
-+ ac_cv_c_stack_direction=-1
-+fi
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+ conftest.$ac_objext conftest.beam conftest.$ac_ext
-+fi
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
-+$as_echo "$ac_cv_c_stack_direction" >&6; }
-+cat >>confdefs.h <<_ACEOF
-+#define STACK_DIRECTION $ac_cv_c_stack_direction
-+_ACEOF
-+
-+
-+fi
-+
-+
-
- for ac_header in stdint.h
- do :
-@@ -7564,13 +7756,13 @@
- else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
-- (eval echo "\"\$as_me:7567: $ac_compile\"" >&5)
-+ (eval echo "\"\$as_me:7759: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
-- (eval echo "\"\$as_me:7570: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-+ (eval echo "\"\$as_me:7762: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
-- (eval echo "\"\$as_me:7573: output\"" >&5)
-+ (eval echo "\"\$as_me:7765: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
-@@ -8772,7 +8964,7 @@
- ;;
- *-*-irix6*)
- # Find out which ABI we are using.
-- echo '#line 8775 "configure"' > conftest.$ac_ext
-+ echo '#line 8967 "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-@@ -10032,11 +10224,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:10035: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:10227: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:10039: \$? = $ac_status" >&5
-+ echo "$as_me:10231: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -10371,11 +10563,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:10374: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:10566: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
-- echo "$as_me:10378: \$? = $ac_status" >&5
-+ echo "$as_me:10570: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
-@@ -10476,11 +10668,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:10479: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:10671: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:10483: \$? = $ac_status" >&5
-+ echo "$as_me:10675: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -10531,11 +10723,11 @@
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
-- (eval echo "\"\$as_me:10534: $lt_compile\"" >&5)
-+ (eval echo "\"\$as_me:10726: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
-- echo "$as_me:10538: \$? = $ac_status" >&5
-+ echo "$as_me:10730: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
-@@ -12915,7 +13107,7 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 12918 "configure"
-+#line 13110 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -13011,7 +13203,7 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 13014 "configure"
-+#line 13206 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
---- mpfr-3.0.0-a/mpfr.h 2010-06-23 11:03:20.000000000 +0000
-+++ mpfr-3.0.0-b/mpfr.h 2010-06-25 13:23:13.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.0.0-p1"
-+#define MPFR_VERSION_STRING "3.0.0-p2"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.0-a/tests/Makefile.in mpfr-3.0.0-b/tests/Makefile.in
---- mpfr-3.0.0-a/tests/Makefile.in 2010-06-10 11:00:52.000000000 +0000
-+++ mpfr-3.0.0-b/tests/Makefile.in 2010-06-10 11:00:52.000000000 +0000
-@@ -960,6 +960,7 @@
- red=; grn=; lgn=; blu=; std=
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- ACLOCAL = @ACLOCAL@
-+ALLOCA = @ALLOCA@
- AMTAR = @AMTAR@
- AR = @AR@
- AS = @AS@
-diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
---- mpfr-3.0.0-a/version.c 2010-06-23 11:03:20.000000000 +0000
-+++ mpfr-3.0.0-b/version.c 2010-06-25 13:23:13.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.0-p1";
-+ return "3.0.0-p2";
- }
diff --git a/dev-libs/mpfr/files/3.0.0/patch03 b/dev-libs/mpfr/files/3.0.0/patch03
deleted file mode 100644
index cf8a936ec62f..000000000000
--- a/dev-libs/mpfr/files/3.0.0/patch03
+++ /dev/null
@@ -1,88 +0,0 @@
-diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
---- mpfr-3.0.0-a/PATCHES 2010-07-10 00:11:19.000000000 +0000
-+++ mpfr-3.0.0-b/PATCHES 2010-07-10 00:12:50.000000000 +0000
-@@ -0,0 +1 @@
-+gamma_underflow
-diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
---- mpfr-3.0.0-a/VERSION 2010-06-25 13:23:13.000000000 +0000
-+++ mpfr-3.0.0-b/VERSION 2010-07-10 00:11:53.000000000 +0000
-@@ -1 +1 @@
--3.0.0-p2
-+3.0.0-p3
-diff -Naurd mpfr-3.0.0-a/gamma.c mpfr-3.0.0-b/gamma.c
---- mpfr-3.0.0-a/gamma.c 2010-06-10 11:00:14.000000000 +0000
-+++ mpfr-3.0.0-b/gamma.c 2010-07-10 00:11:46.000000000 +0000
-@@ -274,7 +274,7 @@
- /* we want an upper bound for x * [log(2-x)-1].
- since x < 0, we need a lower bound on log(2-x) */
- mpfr_ui_sub (xp, 2, x, MPFR_RNDD);
-- mpfr_log (xp, xp, MPFR_RNDD);
-+ mpfr_log2 (xp, xp, MPFR_RNDD);
- mpfr_sub_ui (xp, xp, 1, MPFR_RNDD);
- mpfr_mul (xp, xp, x, MPFR_RNDU);
-
-@@ -303,8 +303,8 @@
- {
- mpfr_sub (tmp, tmp, tmp2, MPFR_RNDZ); /* low bnd on |sin(Pi*(2-x))| */
- mpfr_ui_div (tmp, 12, tmp, MPFR_RNDU); /* upper bound */
-- mpfr_log (tmp, tmp, MPFR_RNDU);
-- mpfr_add (tmp, tmp, xp, MPFR_RNDU);
-+ mpfr_log2 (tmp, tmp, MPFR_RNDU);
-+ mpfr_add (xp, tmp, xp, MPFR_RNDU);
- underflow = mpfr_cmp_si (xp, expo.saved_emin - 2) <= 0;
- }
-
-diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
---- mpfr-3.0.0-a/mpfr.h 2010-06-25 13:23:13.000000000 +0000
-+++ mpfr-3.0.0-b/mpfr.h 2010-07-10 00:11:53.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.0.0-p2"
-+#define MPFR_VERSION_STRING "3.0.0-p3"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.0-a/tests/tgamma.c mpfr-3.0.0-b/tests/tgamma.c
---- mpfr-3.0.0-a/tests/tgamma.c 2010-06-10 11:00:13.000000000 +0000
-+++ mpfr-3.0.0-b/tests/tgamma.c 2010-07-10 00:11:46.000000000 +0000
-@@ -461,6 +461,20 @@
- mpfr_clear (x);
- }
-
-+/* bug found by Stathis, only occurs on 32-bit machines */
-+static void
-+test20100709 (void)
-+{
-+ mpfr_t x;
-+ int inex;
-+
-+ mpfr_init2 (x, 100);
-+ mpfr_set_str (x, "-4.6308260837372266e+07", 10, MPFR_RNDN);
-+ inex = mpfr_gamma (x, x, MPFR_RNDN);
-+ MPFR_ASSERTN(MPFR_IS_ZERO(x) && MPFR_IS_NEG(x) && inex > 0);
-+ mpfr_clear (x);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -471,6 +485,7 @@
- test_generic (2, 100, 2);
- gamma_integer ();
- test20071231 ();
-+ test20100709 ();
-
- data_check ("data/gamma", mpfr_gamma, "mpfr_gamma");
-
-diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
---- mpfr-3.0.0-a/version.c 2010-06-25 13:23:13.000000000 +0000
-+++ mpfr-3.0.0-b/version.c 2010-07-10 00:11:53.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.0-p2";
-+ return "3.0.0-p3";
- }
diff --git a/dev-libs/mpfr/files/3.0.1/patch01 b/dev-libs/mpfr/files/3.0.1/patch01
deleted file mode 100644
index d79a6f9f2465..000000000000
--- a/dev-libs/mpfr/files/3.0.1/patch01
+++ /dev/null
@@ -1,137 +0,0 @@
-diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
---- mpfr-3.0.1-a/PATCHES 2011-04-12 10:50:02.000000000 +0000
-+++ mpfr-3.0.1-b/PATCHES 2011-04-12 10:50:02.000000000 +0000
-@@ -0,0 +1 @@
-+asin_exprange
-diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
---- mpfr-3.0.1-a/VERSION 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/VERSION 2011-04-12 10:50:02.000000000 +0000
-@@ -1 +1 @@
--3.0.1
-+3.0.1-p1
-diff -Naurd mpfr-3.0.1-a/asin.c mpfr-3.0.1-b/asin.c
---- mpfr-3.0.1-a/asin.c 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/asin.c 2011-04-12 10:50:02.000000000 +0000
-@@ -63,11 +63,14 @@
-
- compared = mpfr_cmp_ui (xp, 1);
-
-+ MPFR_SAVE_EXPO_MARK (expo);
-+
- if (MPFR_UNLIKELY (compared >= 0))
- {
- mpfr_clear (xp);
- if (compared > 0) /* asin(x) = NaN for |x| > 1 */
- {
-+ MPFR_SAVE_EXPO_FREE (expo);
- MPFR_SET_NAN (asin);
- MPFR_RET_NAN;
- }
-@@ -80,13 +83,11 @@
- inexact = -mpfr_const_pi (asin, MPFR_INVERT_RND(rnd_mode));
- MPFR_CHANGE_SIGN (asin);
- }
-- mpfr_div_2ui (asin, asin, 1, rnd_mode); /* May underflow */
-- return inexact;
-+ mpfr_div_2ui (asin, asin, 1, rnd_mode);
- }
- }
--
-- MPFR_SAVE_EXPO_MARK (expo);
--
-+ else
-+ {
- /* Compute exponent of 1 - ABS(x) */
- mpfr_ui_sub (xp, 1, xp, MPFR_RNDD);
- MPFR_ASSERTD (MPFR_GET_EXP (xp) <= 0);
-@@ -115,6 +116,7 @@
- inexact = mpfr_set (asin, xp, rnd_mode);
-
- mpfr_clear (xp);
-+ }
-
- MPFR_SAVE_EXPO_FREE (expo);
- return mpfr_check_range (asin, inexact, rnd_mode);
-diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
---- mpfr-3.0.1-a/mpfr.h 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/mpfr.h 2011-04-12 10:50:02.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.0.1"
-+#define MPFR_VERSION_STRING "3.0.1-p1"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.1-a/tests/tasin.c mpfr-3.0.1-b/tests/tasin.c
---- mpfr-3.0.1-a/tests/tasin.c 2011-04-04 10:19:17.000000000 +0000
-+++ mpfr-3.0.1-b/tests/tasin.c 2011-04-12 10:50:02.000000000 +0000
-@@ -219,6 +219,49 @@
- mpfr_clear (y);
- }
-
-+static void
-+reduced_expo_range (void)
-+{
-+ mpfr_exp_t emin, emax;
-+ mpfr_t x, y, ex_y;
-+ int inex, ex_inex;
-+ unsigned int flags, ex_flags;
-+
-+ emin = mpfr_get_emin ();
-+ emax = mpfr_get_emax ();
-+
-+ mpfr_inits2 (4, x, y, ex_y, (mpfr_ptr) 0);
-+ mpfr_set_str (x, "-0.1e1", 2, MPFR_RNDN);
-+
-+ mpfr_set_emin (1);
-+ mpfr_set_emax (1);
-+ mpfr_clear_flags ();
-+ inex = mpfr_asin (y, x, MPFR_RNDA);
-+ flags = __gmpfr_flags;
-+ mpfr_set_emin (emin);
-+ mpfr_set_emax (emax);
-+
-+ mpfr_set_str (ex_y, "-0.1101e1", 2, MPFR_RNDN);
-+ ex_inex = -1;
-+ ex_flags = MPFR_FLAGS_INEXACT;
-+
-+ if (SIGN (inex) != ex_inex || flags != ex_flags ||
-+ ! mpfr_equal_p (y, ex_y))
-+ {
-+ printf ("Error in reduced_expo_range\non x = ");
-+ mpfr_dump (x);
-+ printf ("Expected y = ");
-+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN);
-+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags);
-+ printf ("Got y = ");
-+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN);
-+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags);
-+ exit (1);
-+ }
-+
-+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0);
-+}
-+
- int
- main (void)
- {
-@@ -226,6 +269,7 @@
-
- special ();
- special_overflow ();
-+ reduced_expo_range ();
-
- test_generic (2, 100, 15);
-
-diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
---- mpfr-3.0.1-a/version.c 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/version.c 2011-04-12 10:50:02.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.1";
-+ return "3.0.1-p1";
- }
diff --git a/dev-libs/mpfr/files/3.0.1/patch02 b/dev-libs/mpfr/files/3.0.1/patch02
deleted file mode 100644
index 0367d846a060..000000000000
--- a/dev-libs/mpfr/files/3.0.1/patch02
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
---- mpfr-3.0.1-a/PATCHES 2011-05-04 11:18:33.000000000 +0000
-+++ mpfr-3.0.1-b/PATCHES 2011-05-04 11:18:33.000000000 +0000
-@@ -0,0 +1 @@
-+rec_sqrt-carry
-diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
---- mpfr-3.0.1-a/VERSION 2011-04-12 10:50:02.000000000 +0000
-+++ mpfr-3.0.1-b/VERSION 2011-05-04 11:18:33.000000000 +0000
-@@ -1 +1 @@
--3.0.1-p1
-+3.0.1-p2
-diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
---- mpfr-3.0.1-a/mpfr.h 2011-04-12 10:50:02.000000000 +0000
-+++ mpfr-3.0.1-b/mpfr.h 2011-05-04 11:18:33.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.0.1-p1"
-+#define MPFR_VERSION_STRING "3.0.1-p2"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.1-a/rec_sqrt.c mpfr-3.0.1-b/rec_sqrt.c
---- mpfr-3.0.1-a/rec_sqrt.c 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/rec_sqrt.c 2011-05-04 11:18:33.000000000 +0000
-@@ -375,20 +375,37 @@
- MPFR_ASSERTD(un == ln + 1 || un == ln + 2);
- /* the high un-ln limbs of u will overlap the low part of {x+ln,xn},
- we need to add or subtract the overlapping part {u + ln, un - ln} */
-+ /* Warning! th may be 0, in which case the mpn_add_1 and mpn_sub_1
-+ below (with size = th) mustn't be used. In such a case, the limb
-+ (carry) will be 0, so that this is semantically a no-op, but if
-+ mpn_add_1 and mpn_sub_1 are used, GMP (currently) still does a
-+ non-atomic read/write in a place that is not always allocated,
-+ with the possible consequences: a crash if the corresponding
-+ address is not mapped, or (rather unlikely) memory corruption
-+ if another process/thread writes at the same place; things may
-+ be worse with future GMP versions. Hence the tests carry != 0. */
- if (neg == 0)
- {
- if (ln > 0)
- MPN_COPY (x, u, ln);
- cy = mpn_add (x + ln, x + ln, xn, u + ln, un - ln);
- /* add cu at x+un */
-- cy += mpn_add_1 (x + un, x + un, th, cu);
-+ if (cu != 0)
-+ {
-+ MPFR_ASSERTD (th != 0);
-+ cy += mpn_add_1 (x + un, x + un, th, cu);
-+ }
- }
- else /* negative case */
- {
- /* subtract {u+ln, un-ln} from {x+ln,un} */
- cy = mpn_sub (x + ln, x + ln, xn, u + ln, un - ln);
- /* carry cy is at x+un, like cu */
-- cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */
-+ if (cy + cu != 0)
-+ {
-+ MPFR_ASSERTD (th != 0);
-+ cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */
-+ }
- /* cy cannot be zero, since the most significant bit of Xh is 1,
- and the correction is bounded by 2^{-h+3} */
- MPFR_ASSERTD(cy == 0);
-diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
---- mpfr-3.0.1-a/version.c 2011-04-12 10:50:02.000000000 +0000
-+++ mpfr-3.0.1-b/version.c 2011-05-04 11:18:33.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.1-p1";
-+ return "3.0.1-p2";
- }
diff --git a/dev-libs/mpfr/files/3.0.1/patch03 b/dev-libs/mpfr/files/3.0.1/patch03
deleted file mode 100644
index 251b83732042..000000000000
--- a/dev-libs/mpfr/files/3.0.1/patch03
+++ /dev/null
@@ -1,107 +0,0 @@
-diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
---- mpfr-3.0.1-a/PATCHES 2011-05-05 00:00:35.000000000 +0000
-+++ mpfr-3.0.1-b/PATCHES 2011-05-05 00:00:35.000000000 +0000
-@@ -0,0 +1 @@
-+atan-expo-range
-diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
---- mpfr-3.0.1-a/VERSION 2011-05-04 11:18:33.000000000 +0000
-+++ mpfr-3.0.1-b/VERSION 2011-05-05 00:00:35.000000000 +0000
-@@ -1 +1 @@
--3.0.1-p2
-+3.0.1-p3
-diff -Naurd mpfr-3.0.1-a/atan.c mpfr-3.0.1-b/atan.c
---- mpfr-3.0.1-a/atan.c 2011-04-04 10:19:18.000000000 +0000
-+++ mpfr-3.0.1-b/atan.c 2011-05-05 00:00:35.000000000 +0000
-@@ -431,5 +431,5 @@
- MPFR_GROUP_CLEAR (group);
-
- MPFR_SAVE_EXPO_FREE (expo);
-- return mpfr_check_range (arctgt, inexact, rnd_mode);
-+ return mpfr_check_range (atan, inexact, rnd_mode);
- }
-diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
---- mpfr-3.0.1-a/mpfr.h 2011-05-04 11:18:33.000000000 +0000
-+++ mpfr-3.0.1-b/mpfr.h 2011-05-05 00:00:35.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.0.1-p2"
-+#define MPFR_VERSION_STRING "3.0.1-p3"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.1-a/tests/tatan.c mpfr-3.0.1-b/tests/tatan.c
---- mpfr-3.0.1-a/tests/tatan.c 2011-04-04 10:19:17.000000000 +0000
-+++ mpfr-3.0.1-b/tests/tatan.c 2011-05-05 00:00:35.000000000 +0000
-@@ -535,6 +535,52 @@
- mpfr_clears (a, x, y, (mpfr_ptr) 0);
- }
-
-+/* http://websympa.loria.fr/wwsympa/arc/mpfr/2011-05/msg00008.html
-+ * Incorrect flags (in debug mode on a 32-bit machine, assertion failure).
-+ */
-+static void
-+reduced_expo_range (void)
-+{
-+ mpfr_exp_t emin, emax;
-+ mpfr_t x, y, ex_y;
-+ int inex, ex_inex;
-+ unsigned int flags, ex_flags;
-+
-+ emin = mpfr_get_emin ();
-+ emax = mpfr_get_emax ();
-+
-+ mpfr_inits2 (12, x, y, ex_y, (mpfr_ptr) 0);
-+ mpfr_set_str (x, "0.1e-5", 2, MPFR_RNDN);
-+
-+ mpfr_set_emin (-5);
-+ mpfr_set_emax (-5);
-+ mpfr_clear_flags ();
-+ inex = mpfr_atan (y, x, MPFR_RNDN);
-+ flags = __gmpfr_flags;
-+ mpfr_set_emin (emin);
-+ mpfr_set_emax (emax);
-+
-+ mpfr_set_str (ex_y, "0.1e-5", 2, MPFR_RNDN);
-+ ex_inex = 1;
-+ ex_flags = MPFR_FLAGS_INEXACT;
-+
-+ if (SIGN (inex) != ex_inex || flags != ex_flags ||
-+ ! mpfr_equal_p (y, ex_y))
-+ {
-+ printf ("Error in reduced_expo_range\non x = ");
-+ mpfr_dump (x);
-+ printf ("Expected y = ");
-+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN);
-+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags);
-+ printf ("Got y = ");
-+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN);
-+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags);
-+ exit (1);
-+ }
-+
-+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -546,6 +592,7 @@
- smallvals_atan2 ();
- atan2_bug_20071003 ();
- atan2_different_prec ();
-+ reduced_expo_range ();
-
- test_generic_atan (2, 200, 17);
- test_generic_atan2 (2, 200, 17);
-diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
---- mpfr-3.0.1-a/version.c 2011-05-04 11:18:33.000000000 +0000
-+++ mpfr-3.0.1-b/version.c 2011-05-05 00:00:35.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.1-p2";
-+ return "3.0.1-p3";
- }
diff --git a/dev-libs/mpfr/files/3.0.1/patch04 b/dev-libs/mpfr/files/3.0.1/patch04
deleted file mode 100644
index fd74087dc689..000000000000
--- a/dev-libs/mpfr/files/3.0.1/patch04
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
---- mpfr-3.0.1-a/PATCHES 2011-05-09 14:48:24.000000000 +0000
-+++ mpfr-3.0.1-b/PATCHES 2011-05-09 14:48:24.000000000 +0000
-@@ -0,0 +1 @@
-+texp-zero
-diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
---- mpfr-3.0.1-a/VERSION 2011-05-05 00:00:35.000000000 +0000
-+++ mpfr-3.0.1-b/VERSION 2011-05-09 14:48:24.000000000 +0000
-@@ -1 +1 @@
--3.0.1-p3
-+3.0.1-p4
-diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
---- mpfr-3.0.1-a/mpfr.h 2011-05-05 00:00:35.000000000 +0000
-+++ mpfr-3.0.1-b/mpfr.h 2011-05-09 14:48:24.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 0
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.0.1-p3"
-+#define MPFR_VERSION_STRING "3.0.1-p4"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.0.1-a/tests/texp.c mpfr-3.0.1-b/tests/texp.c
---- mpfr-3.0.1-a/tests/texp.c 2011-04-04 10:19:17.000000000 +0000
-+++ mpfr-3.0.1-b/tests/texp.c 2011-05-09 14:48:24.000000000 +0000
-@@ -170,7 +170,9 @@
- mpfr_set_prec (x, prec);
- mpfr_set_prec (y, prec);
- mpfr_set_prec (z, prec);
-- mpfr_urandomb (x, RANDS);
-+ do
-+ mpfr_urandomb (x, RANDS);
-+ while (MPFR_IS_ZERO (x)); /* 0 is handled by mpfr_exp only */
- rnd = RND_RAND ();
- mpfr_exp_2 (y, x, rnd);
- mpfr_exp_3 (z, x, rnd);
-diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
---- mpfr-3.0.1-a/version.c 2011-05-05 00:00:35.000000000 +0000
-+++ mpfr-3.0.1-b/version.c 2011-05-09 14:48:24.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.0.1-p3";
-+ return "3.0.1-p4";
- }
diff --git a/dev-libs/mpfr/files/3.1.0/patch01 b/dev-libs/mpfr/files/3.1.0/patch01
deleted file mode 100644
index 437b1a278adc..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch01
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2011-10-05 21:39:57.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2011-10-05 21:39:57.000000000 +0000
-@@ -0,0 +1 @@
-+mpfr_unlikely
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2011-10-03 08:17:15.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2011-10-05 21:39:57.000000000 +0000
-@@ -1 +1 @@
--3.1.0
-+3.1.0-p1
-diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h
---- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000
-@@ -988,10 +988,11 @@
- ******************************************************/
-
- /* Theses macros help the compiler to determine if a test is
-- * likely or unlikely. */
-+ likely or unlikely. The !! is necessary in case x is larger
-+ than a long. */
- #if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0)
- # define MPFR_LIKELY(x) (__builtin_expect(!!(x),1))
--# define MPFR_UNLIKELY(x) (__builtin_expect((x),0))
-+# define MPFR_UNLIKELY(x) (__builtin_expect(!!(x),0))
- #else
- # define MPFR_LIKELY(x) (x)
- # define MPFR_UNLIKELY(x) (x)
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0"
-+#define MPFR_VERSION_STRING "3.1.0-p1"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2011-10-05 21:39:57.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0";
-+ return "3.1.0-p1";
- }
diff --git a/dev-libs/mpfr/files/3.1.0/patch02 b/dev-libs/mpfr/files/3.1.0/patch02
deleted file mode 100644
index 4714ac9b0d61..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch02
+++ /dev/null
@@ -1,96 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2011-10-14 10:43:32.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2011-10-14 10:43:32.000000000 +0000
-@@ -0,0 +1 @@
-+lib-search-path
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2011-10-05 21:39:57.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2011-10-14 10:43:32.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p1
-+3.1.0-p2
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p1"
-+#define MPFR_VERSION_STRING "3.1.0-p2"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2011-10-05 21:39:57.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2011-10-14 10:43:32.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p1";
-+ return "3.1.0-p2";
- }
-diff -Naurd mpfr-3.1.0-a/tests/Makefile.am mpfr-3.1.0-b/tests/Makefile.am
---- mpfr-3.1.0-a/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000
-@@ -65,8 +65,24 @@
- TESTS = $(check_PROGRAMS)
- TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND)
-
--# Option to prevent libtool from generating wrapper scripts for the tests.
-+# The -no-install option prevents libtool from generating wrapper scripts
-+# for the tests.
- # This is useful to easily run the test scripts under valgrind or gdb.
- # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033
- # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular.
--AM_LDFLAGS = -no-install
-+#
-+# The -L$(top_builddir)/src/.libs option is necessary for some platforms,
-+# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR
-+# library is already installed in the corresponding lib directory: its
-+# purpose is to make sure that the local .libs comes first in the library
-+# search path (otherwise the tests are linked against the old MPFR library
-+# by the LINK command -- see the generated Makefile). See:
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html
-+# and
-+# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728
-+#
-+AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs
-diff -Naurd mpfr-3.1.0-a/tests/Makefile.in mpfr-3.1.0-b/tests/Makefile.in
---- mpfr-3.1.0-a/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000
-+++ mpfr-3.1.0-b/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000
-@@ -1124,11 +1124,27 @@
- TESTS = $(check_PROGRAMS)
- TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND)
-
--# Option to prevent libtool from generating wrapper scripts for the tests.
-+# The -no-install option prevents libtool from generating wrapper scripts
-+# for the tests.
- # This is useful to easily run the test scripts under valgrind or gdb.
- # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033
- # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular.
--AM_LDFLAGS = -no-install
-+#
-+# The -L$(top_builddir)/src/.libs option is necessary for some platforms,
-+# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR
-+# library is already installed in the corresponding lib directory: its
-+# purpose is to make sure that the local .libs comes first in the library
-+# search path (otherwise the tests are linked against the old MPFR library
-+# by the LINK command -- see the generated Makefile). See:
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html
-+# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html
-+# and
-+# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728
-+#
-+AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs
- all: all-am
-
- .SUFFIXES:
diff --git a/dev-libs/mpfr/files/3.1.0/patch03 b/dev-libs/mpfr/files/3.1.0/patch03
deleted file mode 100644
index aa1cfbc609dd..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch03
+++ /dev/null
@@ -1,247 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2011-11-03 15:15:11.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2011-11-03 15:15:11.000000000 +0000
-@@ -0,0 +1 @@
-+vasprintf
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2011-10-14 10:43:32.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2011-11-03 15:15:11.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p2
-+3.1.0-p3
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p2"
-+#define MPFR_VERSION_STRING "3.1.0-p3"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/vasprintf.c mpfr-3.1.0-b/src/vasprintf.c
---- mpfr-3.1.0-a/src/vasprintf.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/vasprintf.c 2011-11-03 15:15:11.000000000 +0000
-@@ -1178,7 +1178,7 @@
- mpfr_exp_t exp;
- char * str;
- const int spec_g = (spec.spec == 'g' || spec.spec == 'G');
-- const int keep_trailing_zeros = spec_g && spec.alt;
-+ const int keep_trailing_zeros = !spec_g || spec.alt;
-
- /* WARNING: an empty precision field is forbidden (it means precision = 6
- and it should have been changed to 6 before the function call) */
-@@ -1356,7 +1356,7 @@
- else
- /* 1 <= |p| */
- {
-- size_t nsd; /* Number of significant digits */
-+ size_t str_len;
-
- /* Determine the position of the most significant decimal digit. */
- exp = floor_log10 (p);
-@@ -1365,12 +1365,10 @@
- /* P is too large to print all its integral part digits */
- return -1;
-
-- np->ip_size = exp + 1;
--
-- nsd = spec.prec + np->ip_size;
- if (dec_info == NULL)
-- {
-- str = mpfr_get_str (NULL, &exp, 10, nsd, p, spec.rnd_mode);
-+ { /* this case occurs with mpfr_printf ("%.0RUf", x) with x=9.5 */
-+ str =
-+ mpfr_get_str (NULL, &exp, 10, spec.prec+exp+1, p, spec.rnd_mode);
- register_string (np->sl, str);
- }
- else
-@@ -1379,81 +1377,60 @@
- str = dec_info->str;
- }
- np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign */
-+ str_len = strlen (str);
-+
-+ /* integral part */
-+ if (exp > str_len)
-+ /* mpfr_get_str gives no trailing zero when p is rounded up to the next
-+ power of 10 (p integer, so no fractional part) */
-+ {
-+ np->ip_trailing_zeros = exp - str_len;
-+ np->ip_size = str_len;
-+ }
-+ else
-+ np->ip_size = exp;
-
- if (spec.group)
- /* thousands separator in integral part */
- np->thousands_sep = MPFR_THOUSANDS_SEPARATOR;
-
-- if (nsd == 0 || (spec_g && !spec.alt))
-- /* compute how much non-zero digits in integral and fractional
-- parts */
-+ /* fractional part */
-+ str += np->ip_size;
-+ str_len -= np->ip_size;
-+ if (!keep_trailing_zeros)
-+ /* remove trailing zeros, if any */
- {
-- size_t str_len;
-- str_len = strlen (str); /* note: the sign has been skipped */
--
-- if (exp > str_len)
-- /* mpfr_get_str doesn't give the trailing zeros when p is a
-- multiple of 10 (p integer, so no fractional part) */
-- {
-- np->ip_trailing_zeros = exp - str_len;
-- np->ip_size = str_len;
-- if (spec.alt)
-- np->point = MPFR_DECIMAL_POINT;
-- }
-- else
-- /* str may contain some digits which are in fractional part */
-+ char *ptr = str + str_len - 1; /* pointer to the last digit of
-+ str */
-+ while ((*ptr == '0') && (str_len != 0))
- {
-- char *ptr;
--
-- ptr = str + str_len - 1; /* points to the end of str */
-- str_len -= np->ip_size; /* number of digits in fractional
-- part */
--
-- if (!keep_trailing_zeros)
-- /* remove trailing zeros, if any */
-- {
-- while ((*ptr == '0') && (str_len != 0))
-- {
-- --ptr;
-- --str_len;
-- }
-- }
--
-- if (str_len > INT_MAX)
-- /* too many digits in fractional part */
-- return -1;
--
-- if (str_len != 0)
-- /* some digits in fractional part */
-- {
-- np->point = MPFR_DECIMAL_POINT;
-- np->fp_ptr = str + np->ip_size;
-- np->fp_size = str_len;
-- }
-+ --ptr;
-+ --str_len;
- }
- }
-- else
-- /* spec.prec digits in fractional part */
-+
-+ if (str_len > 0)
-+ /* some nonzero digits in fractional part */
- {
-- if (np->ip_size == exp - 1)
-- /* the absolute value of the number has been rounded up to a power
-- of ten.
-- Insert an additional zero in integral part and put the rest of
-- them in fractional part. */
-- np->ip_trailing_zeros = 1;
-+ if (str_len > INT_MAX)
-+ /* too many digits in fractional part */
-+ return -1;
-
-- if (spec.prec != 0)
-- {
-- MPFR_ASSERTD (np->ip_size + np->ip_trailing_zeros == exp);
-- MPFR_ASSERTD (np->ip_size + spec.prec == nsd);
-+ np->point = MPFR_DECIMAL_POINT;
-+ np->fp_ptr = str;
-+ np->fp_size = str_len;
-+ }
-
-- np->point = MPFR_DECIMAL_POINT;
-- np->fp_ptr = str + np->ip_size;
-- np->fp_size = spec.prec;
-- }
-- else if (spec.alt)
-- np->point = MPFR_DECIMAL_POINT;
-+ if (keep_trailing_zeros && str_len < spec.prec)
-+ /* add missing trailing zeros */
-+ {
-+ np->point = MPFR_DECIMAL_POINT;
-+ np->fp_trailing_zeros = spec.prec - np->fp_size;
- }
-+
-+ if (spec.alt)
-+ /* add decimal point even if no digits follow it */
-+ np->point = MPFR_DECIMAL_POINT;
- }
-
- return 0;
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2011-10-14 10:43:32.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2011-11-03 15:15:11.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p2";
-+ return "3.1.0-p3";
- }
-diff -Naurd mpfr-3.1.0-a/tests/tsprintf.c mpfr-3.1.0-b/tests/tsprintf.c
---- mpfr-3.1.0-a/tests/tsprintf.c 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/tests/tsprintf.c 2011-11-03 15:15:11.000000000 +0000
-@@ -475,6 +475,18 @@
- check_sprintf ("-1.", "%- #0.1RG", x);
-
- /* precision zero */
-+ mpfr_set_d (x, 9.5, MPFR_RNDN);
-+ check_sprintf ("9", "%.0RDf", x);
-+ check_sprintf ("10", "%.0RUf", x);
-+
-+ mpfr_set_d (x, 19.5, MPFR_RNDN);
-+ check_sprintf ("19", "%.0RDf", x);
-+ check_sprintf ("20", "%.0RUf", x);
-+
-+ mpfr_set_d (x, 99.5, MPFR_RNDN);
-+ check_sprintf ("99", "%.0RDf", x);
-+ check_sprintf ("100", "%.0RUf", x);
-+
- mpfr_set_d (x, -9.5, MPFR_RNDN);
- check_sprintf ("-10", "%.0RDf", x);
- check_sprintf ("-10", "%.0RYf", x);
-@@ -1078,6 +1090,23 @@
- mpfr_clear (x);
- }
-
-+static void
-+bug20111102 (void)
-+{
-+ mpfr_t t;
-+ char s[100];
-+
-+ mpfr_init2 (t, 84);
-+ mpfr_set_str (t, "999.99999999999999999999", 10, MPFR_RNDN);
-+ mpfr_sprintf (s, "%.20RNg", t);
-+ if (strcmp (s, "1000") != 0)
-+ {
-+ printf ("Error in bug20111102, expected 1000, got %s\n", s);
-+ exit (1);
-+ }
-+ mpfr_clear (t);
-+}
-+
- /* In particular, the following test makes sure that the rounding
- * for %Ra and %Rb is not done on the MPFR number itself (as it
- * would overflow). Note: it has been reported on comp.std.c that
-@@ -1161,6 +1190,7 @@
- locale = setlocale (LC_ALL, "C");
- #endif
-
-+ bug20111102 ();
- native_types ();
- hexadecimal ();
- binary ();
diff --git a/dev-libs/mpfr/files/3.1.0/patch04 b/dev-libs/mpfr/files/3.1.0/patch04
deleted file mode 100644
index 4b1ba087cf1b..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch04
+++ /dev/null
@@ -1,166 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2011-11-28 12:22:52.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2011-11-28 12:22:52.000000000 +0000
-@@ -0,0 +1 @@
-+gmp41compat
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2011-11-03 15:15:11.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2011-11-28 12:22:52.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p3
-+3.1.0-p4
-diff -Naurd mpfr-3.1.0-a/doc/mpfr.info mpfr-3.1.0-b/doc/mpfr.info
---- mpfr-3.1.0-a/doc/mpfr.info 2011-10-03 09:43:04.000000000 +0000
-+++ mpfr-3.1.0-b/doc/mpfr.info 2011-11-28 12:22:52.000000000 +0000
-@@ -2994,11 +2994,12 @@
-
- * `mpfr_urandom' and `mpfr_urandomb' changed in MPFR 3.1. Their
- behavior no longer depends on the platform (assuming this is also
-- true for GMP's random generator). As a consequence, the returned
-- values can be different between MPFR 3.1 and previous MPFR
-- versions. Note: as the reproducibility of these functions was not
-- specified before MPFR 3.1, the MPFR 3.1 behavior is _not_ regarded
-- as backward incompatible with previous versions.
-+ true for GMP's random generator, which is not the case between GMP
-+ 4.1 and 4.2 if `gmp_randinit_default' is used). As a consequence,
-+ the returned values can be different between MPFR 3.1 and previous
-+ MPFR versions. Note: as the reproducibility of these functions
-+ was not specified before MPFR 3.1, the MPFR 3.1 behavior is _not_
-+ regarded as backward incompatible with previous versions.
-
-
- 
-@@ -4239,13 +4240,13 @@
- Node: Type and Macro Changes129308
- Node: Added Functions132029
- Node: Changed Functions134972
--Node: Removed Functions139167
--Node: Other Changes139579
--Node: Contributors141108
--Node: References143574
--Node: GNU Free Documentation License145315
--Node: Concept Index167758
--Node: Function and Type Index173677
-+Node: Removed Functions139253
-+Node: Other Changes139665
-+Node: Contributors141194
-+Node: References143660
-+Node: GNU Free Documentation License145401
-+Node: Concept Index167844
-+Node: Function and Type Index173763
- 
- End Tag Table
-
-diff -Naurd mpfr-3.1.0-a/doc/mpfr.texi mpfr-3.1.0-b/doc/mpfr.texi
---- mpfr-3.1.0-a/doc/mpfr.texi 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/doc/mpfr.texi 2011-11-28 12:22:52.000000000 +0000
-@@ -3466,8 +3466,9 @@
- a lack of specification.
-
- @item @code{mpfr_urandom} and @code{mpfr_urandomb} changed in MPFR 3.1.
--Their behavior no longer depends on the platform (assuming this is also
--true for GMP's random generator). As a consequence, the returned values
-+Their behavior no longer depends on the platform (assuming this is also true
-+for GMP's random generator, which is not the case between GMP 4.1 and 4.2 if
-+@code{gmp_randinit_default} is used). As a consequence, the returned values
- can be different between MPFR 3.1 and previous MPFR versions.
- Note: as the reproducibility of these functions was not specified
- before MPFR 3.1, the MPFR 3.1 behavior is @emph{not} regarded as
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2011-11-28 12:22:52.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p3"
-+#define MPFR_VERSION_STRING "3.1.0-p4"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2011-11-03 15:15:11.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2011-11-28 12:22:52.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p3";
-+ return "3.1.0-p4";
- }
-diff -Naurd mpfr-3.1.0-a/tests/trandom.c mpfr-3.1.0-b/tests/trandom.c
---- mpfr-3.1.0-a/tests/trandom.c 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/tests/trandom.c 2011-11-28 12:22:52.000000000 +0000
-@@ -114,21 +114,29 @@
- mpfr_t x;
- gmp_randstate_t s;
-
-+#if __MPFR_GMP(4,2,0)
-+# define C1 "0.895943"
-+# define C2 "0.848824"
-+#else
-+# define C1 "0.479652"
-+# define C2 "0.648529"
-+#endif
-+
- gmp_randinit_default (s);
- gmp_randseed_ui (s, 42);
- mpfr_init2 (x, 17);
- mpfr_urandomb (x, s);
-- if (mpfr_cmp_str1 (x, "0.895943") != 0)
-+ if (mpfr_cmp_str1 (x, C1) != 0)
- {
-- printf ("Error in bug20100914, expected 0.895943, got ");
-+ printf ("Error in bug20100914, expected " C1 ", got ");
- mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN);
- printf ("\n");
- exit (1);
- }
- mpfr_urandomb (x, s);
-- if (mpfr_cmp_str1 (x, "0.848824") != 0)
-+ if (mpfr_cmp_str1 (x, C2) != 0)
- {
-- printf ("Error in bug20100914, expected 0.848824, got ");
-+ printf ("Error in bug20100914, expected " C2 ", got ");
- mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN);
- printf ("\n");
- exit (1);
-diff -Naurd mpfr-3.1.0-a/tests/turandom.c mpfr-3.1.0-b/tests/turandom.c
---- mpfr-3.1.0-a/tests/turandom.c 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/tests/turandom.c 2011-11-28 12:22:52.000000000 +0000
-@@ -160,23 +160,29 @@
- mpfr_t x;
- gmp_randstate_t s;
-
-+#if __MPFR_GMP(4,2,0)
-+# define C1 "0.8488312"
-+# define C2 "0.8156509"
-+#else
-+# define C1 "0.6485367"
-+# define C2 "0.9362717"
-+#endif
-+
- gmp_randinit_default (s);
- gmp_randseed_ui (s, 42);
- mpfr_init2 (x, 17);
- mpfr_urandom (x, s, MPFR_RNDN);
-- /* the following values are obtained on a 32-bit computer, we should get
-- the same values on a 64-bit computer */
-- if (mpfr_cmp_str1 (x, "0.8488312") != 0)
-+ if (mpfr_cmp_str1 (x, C1) != 0)
- {
-- printf ("Error in bug20100914, expected 0.8488312, got ");
-+ printf ("Error in bug20100914, expected " C1 ", got ");
- mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN);
- printf ("\n");
- exit (1);
- }
- mpfr_urandom (x, s, MPFR_RNDN);
-- if (mpfr_cmp_str1 (x, "0.8156509") != 0)
-+ if (mpfr_cmp_str1 (x, C2) != 0)
- {
-- printf ("Error in bug20100914, expected 0.8156509, got ");
-+ printf ("Error in bug20100914, expected " C2 ", got ");
- mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN);
- printf ("\n");
- exit (1);
diff --git a/dev-libs/mpfr/files/3.1.0/patch05 b/dev-libs/mpfr/files/3.1.0/patch05
deleted file mode 100644
index c664cee3526c..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch05
+++ /dev/null
@@ -1,69 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2012-02-24 12:44:49.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2012-02-24 12:44:49.000000000 +0000
-@@ -0,0 +1 @@
-+logging-freeze
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2011-11-28 12:22:52.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2012-02-24 12:44:49.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p4
-+3.1.0-p5
-diff -Naurd mpfr-3.1.0-a/src/add_d.c mpfr-3.1.0-b/src/add_d.c
---- mpfr-3.1.0-a/src/add_d.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/add_d.c 2012-02-24 12:44:49.000000000 +0000
-@@ -34,7 +34,7 @@
- (("b[%Pu]=%.*Rg c=%.20g rnd=%d",
- mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode),
- ("a[%Pu]=%.*Rg inexact=%d",
-- mpfr_get_prec (a), mpfr_get_prec, a, inexact));
-+ mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
-diff -Naurd mpfr-3.1.0-a/src/add_ui.c mpfr-3.1.0-b/src/add_ui.c
---- mpfr-3.1.0-a/src/add_ui.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/add_ui.c 2012-02-24 12:44:49.000000000 +0000
-@@ -29,7 +29,7 @@
- MPFR_LOG_FUNC
- (("x[%Pu]=%.*Rg u=%d rnd=%d",
- mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode),
-- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_get_prec, y));
-+ ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y));
-
- if (MPFR_LIKELY(u != 0) ) /* if u=0, do nothing */
- {
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2011-11-28 12:22:52.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2012-02-24 12:44:49.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p4"
-+#define MPFR_VERSION_STRING "3.1.0-p5"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/mul_d.c mpfr-3.1.0-b/src/mul_d.c
---- mpfr-3.1.0-a/src/mul_d.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/mul_d.c 2012-02-24 12:44:49.000000000 +0000
-@@ -34,7 +34,7 @@
- (("b[%Pu]=%.*Rg c=%.20g rnd=%d",
- mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode),
- ("a[%Pu]=%.*Rg inexact=%d",
-- mpfr_get_prec (a), mpfr_get_prec, a, inexact));
-+ mpfr_get_prec (a), mpfr_log_prec, a, inexact));
-
- MPFR_SAVE_EXPO_MARK (expo);
-
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2011-11-28 12:22:52.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2012-02-24 12:44:49.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p4";
-+ return "3.1.0-p5";
- }
diff --git a/dev-libs/mpfr/files/3.1.0/patch06 b/dev-libs/mpfr/files/3.1.0/patch06
deleted file mode 100644
index 0f4bfad6718a..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch06
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2012-02-24 13:50:05.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2012-02-24 13:50:05.000000000 +0000
-@@ -0,0 +1 @@
-+logging-varfmt
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2012-02-24 12:44:49.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2012-02-24 13:50:05.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p5
-+3.1.0-p6
-diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h
---- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr-impl.h 2012-02-24 13:50:05.000000000 +0000
-@@ -1592,7 +1592,7 @@
- do \
- if ((MPFR_LOG_INTERNAL_F & mpfr_log_type) && \
- (mpfr_log_current <= mpfr_log_level)) \
-- LOG_PRINT ("%s.%d:%s[%#Pu]=%.*Rf\n", __func__, __LINE__, \
-+ LOG_PRINT ("%s.%d:%s[%#Pu]=%.*Rg\n", __func__, __LINE__, \
- #x, mpfr_get_prec (x), mpfr_log_prec, x); \
- while (0)
-
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2012-02-24 12:44:49.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2012-02-24 13:50:05.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p5"
-+#define MPFR_VERSION_STRING "3.1.0-p6"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2012-02-24 12:44:49.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2012-02-24 13:50:05.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p5";
-+ return "3.1.0-p6";
- }
diff --git a/dev-libs/mpfr/files/3.1.0/patch07 b/dev-libs/mpfr/files/3.1.0/patch07
deleted file mode 100644
index 08e7b57d53c4..000000000000
--- a/dev-libs/mpfr/files/3.1.0/patch07
+++ /dev/null
@@ -1,591 +0,0 @@
-diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
---- mpfr-3.1.0-a/PATCHES 2012-03-08 15:17:03.000000000 +0000
-+++ mpfr-3.1.0-b/PATCHES 2012-03-08 15:17:03.000000000 +0000
-@@ -0,0 +1 @@
-+large-prec
-diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
---- mpfr-3.1.0-a/VERSION 2012-02-24 13:50:05.000000000 +0000
-+++ mpfr-3.1.0-b/VERSION 2012-03-08 15:17:03.000000000 +0000
-@@ -1 +1 @@
--3.1.0-p6
-+3.1.0-p7
-diff -Naurd mpfr-3.1.0-a/src/add1.c mpfr-3.1.0-b/src/add1.c
---- mpfr-3.1.0-a/src/add1.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/add1.c 2012-03-08 15:17:03.000000000 +0000
-@@ -44,12 +44,12 @@
- bq = MPFR_PREC(b);
- cq = MPFR_PREC(c);
-
-- an = (aq-1)/GMP_NUMB_BITS+1; /* number of limbs of a */
-+ an = MPFR_PREC2LIMBS (aq); /* number of limbs of a */
- aq2 = (mpfr_prec_t) an * GMP_NUMB_BITS;
- sh = aq2 - aq; /* non-significant bits in low limb */
-
-- bn = (bq-1)/GMP_NUMB_BITS+1; /* number of limbs of b */
-- cn = (cq-1)/GMP_NUMB_BITS+1; /* number of limbs of c */
-+ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
-+ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
-
- ap = MPFR_MANT(a);
- bp = MPFR_MANT(b);
-@@ -124,7 +124,7 @@
- dif = aq2 - diff_exp;
- /* dif is the number of bits of c which overlap with a' */
-
-- difn = (dif-1)/GMP_NUMB_BITS + 1;
-+ difn = MPFR_PREC2LIMBS (dif);
- /* only the highest difn limbs from c have to be considered */
- if (MPFR_UNLIKELY(difn > cn))
- {
-diff -Naurd mpfr-3.1.0-a/src/add1sp.c mpfr-3.1.0-b/src/add1sp.c
---- mpfr-3.1.0-a/src/add1sp.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/add1sp.c 2012-03-08 15:17:03.000000000 +0000
-@@ -107,7 +107,7 @@
-
- /* Read prec and num of limbs */
- p = MPFR_PREC(b);
-- n = (p+GMP_NUMB_BITS-1)/GMP_NUMB_BITS;
-+ n = MPFR_PREC2LIMBS (p);
- MPFR_UNSIGNED_MINUS_MODULO(sh, p);
- bx = MPFR_GET_EXP(b);
- d = (mpfr_uexp_t) (bx - MPFR_GET_EXP(c));
-diff -Naurd mpfr-3.1.0-a/src/agm.c mpfr-3.1.0-b/src/agm.c
---- mpfr-3.1.0-a/src/agm.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/agm.c 2012-03-08 15:17:03.000000000 +0000
-@@ -91,7 +91,7 @@
- q = MPFR_PREC(r);
- p = q + MPFR_INT_CEIL_LOG2(q) + 15;
- MPFR_ASSERTD (p >= 7); /* see algorithms.tex */
-- s = (p - 1) / GMP_NUMB_BITS + 1;
-+ s = MPFR_PREC2LIMBS (p);
-
- /* b (op2) and a (op1) are the 2 operands but we want b >= a */
- compare = mpfr_cmp (op1, op2);
-@@ -285,7 +285,7 @@
-
- /* Next iteration */
- MPFR_ZIV_NEXT (loop, p);
-- s = (p - 1) / GMP_NUMB_BITS + 1;
-+ s = MPFR_PREC2LIMBS (p);
- }
- MPFR_ZIV_FREE (loop);
-
-diff -Naurd mpfr-3.1.0-a/src/eq.c mpfr-3.1.0-b/src/eq.c
---- mpfr-3.1.0-a/src/eq.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/eq.c 2012-03-08 15:17:03.000000000 +0000
-@@ -56,8 +56,8 @@
- if (uexp != vexp)
- return 0; /* no bit agree */
-
-- usize = (MPFR_PREC(u) - 1) / GMP_NUMB_BITS + 1;
-- vsize = (MPFR_PREC(v) - 1) / GMP_NUMB_BITS + 1;
-+ usize = MPFR_LIMB_SIZE (u);
-+ vsize = MPFR_LIMB_SIZE (v);
-
- if (vsize > usize) /* exchange u and v */
- {
-diff -Naurd mpfr-3.1.0-a/src/exp.c mpfr-3.1.0-b/src/exp.c
---- mpfr-3.1.0-a/src/exp.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/exp.c 2012-03-08 15:17:03.000000000 +0000
-@@ -133,7 +133,7 @@
- mp_size_t yn;
- int sh;
-
-- yn = 1 + (MPFR_PREC(y) - 1) / GMP_NUMB_BITS;
-+ yn = MPFR_LIMB_SIZE (y);
- sh = (mpfr_prec_t) yn * GMP_NUMB_BITS - MPFR_PREC(y);
- MPFR_MANT(y)[0] += MPFR_LIMB_ONE << sh;
- inexact = 1;
-diff -Naurd mpfr-3.1.0-a/src/get_d.c mpfr-3.1.0-b/src/get_d.c
---- mpfr-3.1.0-a/src/get_d.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/get_d.c 2012-03-08 15:17:03.000000000 +0000
-@@ -100,7 +100,7 @@
- nbits += (1021 + e);
- MPFR_ASSERTD (nbits >= 1);
- }
-- np = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
-+ np = MPFR_PREC2LIMBS (nbits);
- MPFR_ASSERTD ( np <= MPFR_LIMBS_PER_DOUBLE );
- carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative,
- nbits, rnd_mode);
-diff -Naurd mpfr-3.1.0-a/src/get_flt.c mpfr-3.1.0-b/src/get_flt.c
---- mpfr-3.1.0-a/src/get_flt.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/get_flt.c 2012-03-08 15:17:03.000000000 +0000
-@@ -92,7 +92,7 @@
- nbits += (125 + e);
- MPFR_ASSERTD (nbits >= 1);
- }
-- np = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
-+ np = MPFR_PREC2LIMBS (nbits);
- MPFR_ASSERTD(np <= MPFR_LIMBS_PER_FLT);
- carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative,
- nbits, rnd_mode);
-diff -Naurd mpfr-3.1.0-a/src/get_str.c mpfr-3.1.0-b/src/get_str.c
---- mpfr-3.1.0-a/src/get_str.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/get_str.c 2012-03-08 15:17:03.000000000 +0000
-@@ -2351,7 +2351,7 @@
-
- /* the first digit will contain only r bits */
- prec = (m - 1) * pow2 + r; /* total number of bits */
-- n = (prec - 1) / GMP_NUMB_BITS + 1;
-+ n = MPFR_PREC2LIMBS (prec);
-
- MPFR_TMP_MARK (marker);
- x1 = MPFR_TMP_LIMBS_ALLOC (n + 1);
-@@ -2417,12 +2417,12 @@
- exact = 1;
-
- /* number of limbs */
-- n = 1 + (prec - 1) / GMP_NUMB_BITS;
-+ n = MPFR_PREC2LIMBS (prec);
-
- /* a will contain the approximation of the mantissa */
- a = MPFR_TMP_LIMBS_ALLOC (n);
-
-- nx = 1 + (MPFR_PREC(x) - 1) / GMP_NUMB_BITS;
-+ nx = MPFR_LIMB_SIZE (x);
-
- if ((mpfr_exp_t) m == g) /* final exponent is 0, no multiplication or
- division to perform */
-diff -Naurd mpfr-3.1.0-a/src/init2.c mpfr-3.1.0-b/src/init2.c
---- mpfr-3.1.0-a/src/init2.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/init2.c 2012-03-08 15:17:03.000000000 +0000
-@@ -51,7 +51,7 @@
- which both have an odd mantissa */
- MPFR_ASSERTN(p >= MPFR_PREC_MIN && p <= MPFR_PREC_MAX);
-
-- xsize = (mp_size_t) ((p - 1) / GMP_NUMB_BITS) + 1;
-+ xsize = MPFR_PREC2LIMBS (p);
- tmp = (mpfr_limb_ptr) (*__gmp_allocate_func)(MPFR_MALLOC_SIZE(xsize));
-
- MPFR_PREC(x) = p; /* Set prec */
-diff -Naurd mpfr-3.1.0-a/src/lngamma.c mpfr-3.1.0-b/src/lngamma.c
---- mpfr-3.1.0-a/src/lngamma.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/lngamma.c 2012-03-08 15:17:03.000000000 +0000
-@@ -67,7 +67,7 @@
-
- /* Now, the unit bit is represented. */
-
-- prec = ((prec - 1) / GMP_NUMB_BITS + 1) * GMP_NUMB_BITS - expo;
-+ prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo;
- /* number of represented fractional bits (including the trailing 0's) */
-
- x0 = *(MPFR_MANT (x) + prec / GMP_NUMB_BITS);
-diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h
---- mpfr-3.1.0-a/src/mpfr-impl.h 2012-02-24 13:50:05.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr-impl.h 2012-03-09 12:06:26.000000000 +0000
-@@ -646,10 +646,24 @@
- **************** mpfr_t properties *******************
- ******************************************************/
-
-+/* In the following macro, p is usually a mpfr_prec_t, but this macro
-+ works with other integer types (without integer overflow). Checking
-+ that p >= 1 in debug mode is useful here because this macro can be
-+ used on a computed precision (in particular, this formula does not
-+ work for a degenerate case p = 0, and could give different results
-+ on different platforms). But let us not use an assertion checking
-+ in the MPFR_LAST_LIMB() and MPFR_LIMB_SIZE() macros below to avoid
-+ too much expansion for assertions (in practice, this should be a
-+ problem just when testing MPFR with the --enable-assert configure
-+ option and the -ansi -pedantic-errors gcc compiler flags). */
-+#define MPFR_PREC2LIMBS(p) \
-+ (MPFR_ASSERTD ((p) >= 1), ((p) - 1) / GMP_NUMB_BITS + 1)
-+
- #define MPFR_PREC(x) ((x)->_mpfr_prec)
- #define MPFR_EXP(x) ((x)->_mpfr_exp)
- #define MPFR_MANT(x) ((x)->_mpfr_d)
--#define MPFR_LIMB_SIZE(x) ((MPFR_PREC((x))-1)/GMP_NUMB_BITS+1)
-+#define MPFR_LAST_LIMB(x) ((MPFR_PREC (x) - 1) / GMP_NUMB_BITS)
-+#define MPFR_LIMB_SIZE(x) (MPFR_LAST_LIMB (x) + 1)
-
-
- /******************************************************
-@@ -749,7 +763,8 @@
- #define MPFR_IS_FP(x) (!MPFR_IS_NAN(x) && !MPFR_IS_INF(x))
- #define MPFR_IS_SINGULAR(x) (MPFR_EXP(x) <= MPFR_EXP_INF)
- #define MPFR_IS_PURE_FP(x) (!MPFR_IS_SINGULAR(x) && \
-- (MPFR_ASSERTD (MPFR_MANT(x)[MPFR_LIMB_SIZE(x)-1] & MPFR_LIMB_HIGHBIT), 1))
-+ (MPFR_ASSERTD ((MPFR_MANT(x)[MPFR_LAST_LIMB(x)] \
-+ & MPFR_LIMB_HIGHBIT) != 0), 1))
-
- #define MPFR_ARE_SINGULAR(x,y) \
- (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)) || MPFR_UNLIKELY(MPFR_IS_SINGULAR(y)))
-@@ -1061,7 +1076,7 @@
- /* Set a number to 1 (Fast) - It doesn't check if 1 is in the exponent range */
- #define MPFR_SET_ONE(x) \
- do { \
-- mp_size_t _size = MPFR_LIMB_SIZE(x) - 1; \
-+ mp_size_t _size = MPFR_LAST_LIMB(x); \
- MPFR_SET_POS(x); \
- MPFR_EXP(x) = 1; \
- MPN_ZERO ( MPFR_MANT(x), _size); \
-@@ -1213,8 +1228,8 @@
- _destp = MPFR_MANT (dest); \
- if (MPFR_UNLIKELY (_destprec >= _srcprec)) \
- { \
-- _srcs = (_srcprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \
-- _dests = (_destprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS - _srcs; \
-+ _srcs = MPFR_PREC2LIMBS (_srcprec); \
-+ _dests = MPFR_PREC2LIMBS (_destprec) - _srcs; \
- MPN_COPY (_destp + _dests, srcp, _srcs); \
- MPN_ZERO (_destp, _dests); \
- inexact = 0; \
-@@ -1227,8 +1242,8 @@
- mp_limb_t _rb, _sb, _ulp; \
- \
- /* Compute Position and shift */ \
-- _srcs = (_srcprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \
-- _dests = (_destprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \
-+ _srcs = MPFR_PREC2LIMBS (_srcprec); \
-+ _dests = MPFR_PREC2LIMBS (_destprec); \
- MPFR_UNSIGNED_MINUS_MODULO (_sh, _destprec); \
- _sp = (srcp) + _srcs - _dests; \
- \
-@@ -1372,7 +1387,7 @@
- if (MPFR_LIKELY (MPFR_PREC (dest) == MPFR_PREC (src))) \
- { \
- MPN_COPY (MPFR_MANT (dest), MPFR_MANT (src), \
-- (MPFR_PREC (src) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS); \
-+ MPFR_LIMB_SIZE (src)); \
- inexact = 0; \
- } \
- else \
-@@ -1682,7 +1697,7 @@
- MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \
- if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \
- mpfr_abort_prec_max (); \
-- _size = (mpfr_prec_t) (_prec + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; \
-+ _size = MPFR_PREC2LIMBS (_prec); \
- if (MPFR_UNLIKELY (_size * (num) > MPFR_GROUP_STATIC_SIZE)) \
- { \
- (g).alloc = (num) * _size * sizeof (mp_limb_t); \
-@@ -1733,7 +1748,7 @@
- MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \
- if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \
- mpfr_abort_prec_max (); \
-- _size = (mpfr_prec_t) (_prec + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; \
-+ _size = MPFR_PREC2LIMBS (_prec); \
- (g).alloc = (num) * _size * sizeof (mp_limb_t); \
- if (MPFR_LIKELY (_oalloc == 0)) \
- (g).mant = (mp_limb_t *) (*__gmp_allocate_func) ((g).alloc); \
-@@ -1886,7 +1901,7 @@
- MPFR_NORETURN_ATTR;
-
- __MPFR_DECLSPEC void mpfr_rand_raw _MPFR_PROTO((mpfr_limb_ptr, gmp_randstate_t,
-- unsigned long));
-+ mpfr_prec_t));
-
- __MPFR_DECLSPEC mpz_t* mpfr_bernoulli_internal _MPFR_PROTO((mpz_t*,
- unsigned long));
-diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
---- mpfr-3.1.0-a/src/mpfr.h 2012-02-24 13:50:05.000000000 +0000
-+++ mpfr-3.1.0-b/src/mpfr.h 2012-03-08 15:17:03.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 0
--#define MPFR_VERSION_STRING "3.1.0-p6"
-+#define MPFR_VERSION_STRING "3.1.0-p7"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.0-a/src/mul.c mpfr-3.1.0-b/src/mul.c
---- mpfr-3.1.0-a/src/mul.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/mul.c 2012-03-08 15:17:03.000000000 +0000
-@@ -93,15 +93,15 @@
-
- ax = MPFR_GET_EXP (b) + MPFR_GET_EXP (c);
-
-- bq = MPFR_PREC(b);
-- cq = MPFR_PREC(c);
-+ bq = MPFR_PREC (b);
-+ cq = MPFR_PREC (c);
-
-- MPFR_ASSERTD(bq+cq > bq); /* PREC_MAX is /2 so no integer overflow */
-+ MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX);
-
-- bn = (bq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of b */
-- cn = (cq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of c */
-+ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
-+ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
- k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */
-- tn = (bq + cq + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
-+ tn = MPFR_PREC2LIMBS (bq + cq);
- /* <= k, thus no int overflow */
- MPFR_ASSERTD(tn <= k);
-
-@@ -292,12 +292,12 @@
- bq = MPFR_PREC (b);
- cq = MPFR_PREC (c);
-
-- MPFR_ASSERTD (bq+cq > bq); /* PREC_MAX is /2 so no integer overflow */
-+ MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX);
-
-- bn = (bq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of b */
-- cn = (cq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of c */
-+ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */
-+ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */
- k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */
-- tn = (bq + cq + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
-+ tn = MPFR_PREC2LIMBS (bq + cq);
- MPFR_ASSERTD (tn <= k); /* tn <= k, thus no int overflow */
-
- /* Check for no size_t overflow*/
-diff -Naurd mpfr-3.1.0-a/src/pow.c mpfr-3.1.0-b/src/pow.c
---- mpfr-3.1.0-a/src/pow.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/pow.c 2012-03-08 15:17:03.000000000 +0000
-@@ -136,7 +136,7 @@
- (b) all the 'z' bits are zero
- */
-
-- prec = ((prec - 1) / GMP_NUMB_BITS + 1) * GMP_NUMB_BITS - expo;
-+ prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo;
- /* number of z+0 bits */
-
- yn = prec / GMP_NUMB_BITS;
-diff -Naurd mpfr-3.1.0-a/src/print_raw.c mpfr-3.1.0-b/src/print_raw.c
---- mpfr-3.1.0-a/src/print_raw.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/print_raw.c 2012-03-08 15:17:03.000000000 +0000
-@@ -84,7 +84,7 @@
- int i;
- mpfr_prec_t count = 0;
- char c;
-- mp_size_t n = (r - 1) / GMP_NUMB_BITS + 1;
-+ mp_size_t n = MPFR_PREC2LIMBS (r);
-
- printf("%s ", str);
- for(n-- ; n>=0 ; n--)
-@@ -109,7 +109,7 @@
- int i;
- mpfr_prec_t count = 0;
- char c;
-- mp_size_t n = (r - 1) / GMP_NUMB_BITS + 1;
-+ mp_size_t n = MPFR_PREC2LIMBS (r);
-
- for(n-- ; n>=0 ; n--)
- {
-diff -Naurd mpfr-3.1.0-a/src/round_prec.c mpfr-3.1.0-b/src/round_prec.c
---- mpfr-3.1.0-a/src/round_prec.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/round_prec.c 2012-03-08 15:17:03.000000000 +0000
-@@ -55,12 +55,12 @@
-
- MPFR_ASSERTN(prec >= MPFR_PREC_MIN && prec <= MPFR_PREC_MAX);
-
-- nw = 1 + (prec - 1) / GMP_NUMB_BITS; /* needed allocated limbs */
-+ nw = MPFR_PREC2LIMBS (prec); /* needed allocated limbs */
-
- /* check if x has enough allocated space for the significand */
- /* Get the number of limbs from the precision.
- (Compatible with all allocation methods) */
-- ow = (MPFR_PREC (x) + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS;
-+ ow = MPFR_LIMB_SIZE (x);
- if (nw > ow)
- {
- /* FIXME: Variable can't be created using custom allocation,
-diff -Naurd mpfr-3.1.0-a/src/round_raw_generic.c mpfr-3.1.0-b/src/round_raw_generic.c
---- mpfr-3.1.0-a/src/round_raw_generic.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/round_raw_generic.c 2012-03-08 15:17:03.000000000 +0000
-@@ -80,7 +80,7 @@
- (xprec <= yprec || MPFR_IS_LIKE_RNDZ (rnd_mode, neg)))
- return 0;
-
-- xsize = (xprec-1)/GMP_NUMB_BITS + 1;
-+ xsize = MPFR_PREC2LIMBS (xprec);
- nw = yprec / GMP_NUMB_BITS;
- rw = yprec & (GMP_NUMB_BITS - 1);
-
-diff -Naurd mpfr-3.1.0-a/src/set.c mpfr-3.1.0-b/src/set.c
---- mpfr-3.1.0-a/src/set.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/set.c 2012-03-08 15:17:03.000000000 +0000
-@@ -48,8 +48,7 @@
- /* Same precision and b is not singular:
- * just copy the mantissa, and set the exponent and the sign
- * The result is exact. */
-- MPN_COPY (MPFR_MANT (a), MPFR_MANT (b),
-- (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS);
-+ MPN_COPY (MPFR_MANT (a), MPFR_MANT (b), MPFR_LIMB_SIZE (b));
- MPFR_RET (0);
- }
- else
-diff -Naurd mpfr-3.1.0-a/src/set_f.c mpfr-3.1.0-b/src/set_f.c
---- mpfr-3.1.0-a/src/set_f.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/set_f.c 2012-03-08 15:17:03.000000000 +0000
-@@ -43,7 +43,7 @@
- if (SIZ(x) * MPFR_FROM_SIGN_TO_INT(MPFR_SIGN(y)) < 0)
- MPFR_CHANGE_SIGN (y);
-
-- sy = 1 + (MPFR_PREC(y) - 1) / GMP_NUMB_BITS;
-+ sy = MPFR_LIMB_SIZE (y);
- my = MPFR_MANT(y);
- mx = PTR(x);
-
-diff -Naurd mpfr-3.1.0-a/src/set_prec.c mpfr-3.1.0-b/src/set_prec.c
---- mpfr-3.1.0-a/src/set_prec.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/set_prec.c 2012-03-08 15:17:03.000000000 +0000
-@@ -32,7 +32,7 @@
- MPFR_ASSERTN (p >= MPFR_PREC_MIN && p <= MPFR_PREC_MAX);
-
- /* Calculate the new number of limbs */
-- xsize = (p - 1) / GMP_NUMB_BITS + 1;
-+ xsize = MPFR_PREC2LIMBS (p);
-
- /* Realloc only if the new size is greater than the old */
- xoldsize = MPFR_GET_ALLOC_SIZE (x);
-diff -Naurd mpfr-3.1.0-a/src/setmax.c mpfr-3.1.0-b/src/setmax.c
---- mpfr-3.1.0-a/src/setmax.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/setmax.c 2012-03-08 15:17:03.000000000 +0000
-@@ -32,7 +32,7 @@
- mp_limb_t *xp;
-
- MPFR_SET_EXP (x, e);
-- xn = 1 + (MPFR_PREC(x) - 1) / GMP_NUMB_BITS;
-+ xn = MPFR_LIMB_SIZE (x);
- sh = (mpfr_prec_t) xn * GMP_NUMB_BITS - MPFR_PREC(x);
- xp = MPFR_MANT(x);
- xp[0] = MP_LIMB_T_MAX << sh;
-diff -Naurd mpfr-3.1.0-a/src/sqr.c mpfr-3.1.0-b/src/sqr.c
---- mpfr-3.1.0-a/src/sqr.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/sqr.c 2012-03-08 15:17:03.000000000 +0000
-@@ -56,11 +56,11 @@
- ax = 2 * MPFR_GET_EXP (b);
- bq = MPFR_PREC(b);
-
-- MPFR_ASSERTD (2 * bq > bq); /* PREC_MAX is /2 so no integer overflow */
-+ MPFR_ASSERTN (2 * (mpfr_uprec_t) bq <= MPFR_PREC_MAX);
-
-- bn = MPFR_LIMB_SIZE(b); /* number of limbs of b */
-- tn = 1 + (2 * bq - 1) / GMP_NUMB_BITS; /* number of limbs of square,
-- 2*bn or 2*bn-1 */
-+ bn = MPFR_LIMB_SIZE (b); /* number of limbs of b */
-+ tn = MPFR_PREC2LIMBS (2 * bq); /* number of limbs of square,
-+ 2*bn or 2*bn-1 */
-
- if (MPFR_UNLIKELY(bn > MPFR_SQR_THRESHOLD))
- return mpfr_mul (a, b, b, rnd_mode);
-diff -Naurd mpfr-3.1.0-a/src/stack_interface.c mpfr-3.1.0-b/src/stack_interface.c
---- mpfr-3.1.0-a/src/stack_interface.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/stack_interface.c 2012-03-08 15:17:03.000000000 +0000
-@@ -26,7 +26,7 @@
- size_t
- mpfr_custom_get_size (mpfr_prec_t prec)
- {
-- return (prec + GMP_NUMB_BITS -1) / GMP_NUMB_BITS * BYTES_PER_MP_LIMB;
-+ return MPFR_PREC2LIMBS (prec) * BYTES_PER_MP_LIMB;
- }
-
- #undef mpfr_custom_init
-diff -Naurd mpfr-3.1.0-a/src/strtofr.c mpfr-3.1.0-b/src/strtofr.c
---- mpfr-3.1.0-a/src/strtofr.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/strtofr.c 2012-03-08 15:17:03.000000000 +0000
-@@ -467,7 +467,7 @@
- /* Set y to the value of the ~prec most significant bits of pstr->mant
- (as long as we guarantee correct rounding, we don't need to get
- exactly prec bits). */
-- ysize = (prec - 1) / GMP_NUMB_BITS + 1;
-+ ysize = MPFR_PREC2LIMBS (prec);
- /* prec bits corresponds to ysize limbs */
- ysize_bits = ysize * GMP_NUMB_BITS;
- /* and to ysize_bits >= prec > MPFR_PREC (x) bits */
-diff -Naurd mpfr-3.1.0-a/src/sub1sp.c mpfr-3.1.0-b/src/sub1sp.c
---- mpfr-3.1.0-a/src/sub1sp.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/sub1sp.c 2012-03-08 15:17:03.000000000 +0000
-@@ -155,8 +155,8 @@
- MPFR_ASSERTD(MPFR_IS_PURE_FP(c));
-
- /* Read prec and num of limbs */
-- p = MPFR_PREC(b);
-- n = (p-1)/GMP_NUMB_BITS+1;
-+ p = MPFR_PREC (b);
-+ n = MPFR_PREC2LIMBS (p);
-
- /* Fast cmp of |b| and |c|*/
- bx = MPFR_GET_EXP (b);
-diff -Naurd mpfr-3.1.0-a/src/urandomb.c mpfr-3.1.0-b/src/urandomb.c
---- mpfr-3.1.0-a/src/urandomb.c 2011-10-03 08:17:09.000000000 +0000
-+++ mpfr-3.1.0-b/src/urandomb.c 2012-03-08 15:17:03.000000000 +0000
-@@ -31,13 +31,20 @@
- a sufficient number of limbs */
- void
- mpfr_rand_raw (mpfr_limb_ptr mp, gmp_randstate_t rstate,
-- unsigned long int nbits)
-+ mpfr_prec_t nbits)
- {
- mpz_t z;
-
-+ MPFR_ASSERTN (nbits >= 1);
- /* To be sure to avoid the potential allocation of mpz_urandomb */
-- ALLOC(z) = SIZ(z) = ((nbits - 1) / GMP_NUMB_BITS) + 1;
-+ ALLOC(z) = SIZ(z) = MPFR_PREC2LIMBS (nbits);
- PTR(z) = mp;
-+#if __MPFR_GMP(5,0,0)
-+ /* Check for integer overflow (unless mp_bitcnt_t is signed,
-+ but according to the GMP manual, this shouldn't happen).
-+ Note: mp_bitcnt_t has been introduced in GMP 5.0.0. */
-+ MPFR_ASSERTN ((mp_bitcnt_t) -1 < 0 || nbits <= (mp_bitcnt_t) -1);
-+#endif
- mpz_urandomb (z, rstate, nbits);
- }
-
-diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
---- mpfr-3.1.0-a/src/version.c 2012-02-24 13:50:05.000000000 +0000
-+++ mpfr-3.1.0-b/src/version.c 2012-03-08 15:17:03.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.0-p6";
-+ return "3.1.0-p7";
- }
-diff -Naurd mpfr-3.1.0-a/tests/tinits.c mpfr-3.1.0-b/tests/tinits.c
---- mpfr-3.1.0-a/tests/tinits.c 2011-10-03 08:17:14.000000000 +0000
-+++ mpfr-3.1.0-b/tests/tinits.c 2012-03-08 15:17:03.000000000 +0000
-@@ -1,4 +1,4 @@
--/* Test file for mpfr_inits, mpfr_inits2 and mpfr_clears.
-+/* Test file for mpfr_init2, mpfr_inits, mpfr_inits2 and mpfr_clears.
-
- Copyright 2003, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
- Contributed by the Arenaire and Caramel projects, INRIA.
-@@ -20,18 +20,43 @@
- http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-+#include <stdlib.h>
-+
- #include "mpfr-test.h"
-
- int
- main (void)
- {
- mpfr_t a, b, c;
-+ long large_prec;
-
- tests_start_mpfr ();
-+
- mpfr_inits (a, b, c, (mpfr_ptr) 0);
- mpfr_clears (a, b, c, (mpfr_ptr) 0);
- mpfr_inits2 (200, a, b, c, (mpfr_ptr) 0);
- mpfr_clears (a, b, c, (mpfr_ptr) 0);
-+
-+ /* test for precision 2^31-1, see
-+ https://gforge.inria.fr/tracker/index.php?func=detail&aid=13918 */
-+ large_prec = 2147483647;
-+ if (getenv ("MPFR_CHECK_LARGEMEM") != NULL)
-+ {
-+ /* We assume that the precision won't be increased internally. */
-+ if (large_prec > MPFR_PREC_MAX)
-+ large_prec = MPFR_PREC_MAX;
-+ mpfr_inits2 (large_prec, a, b, (mpfr_ptr) 0);
-+ mpfr_set_ui (a, 17, MPFR_RNDN);
-+ mpfr_set (b, a, MPFR_RNDN);
-+ if (mpfr_get_ui (a, MPFR_RNDN) != 17)
-+ {
-+ printf ("Error in mpfr_init2 with precision 2^31-1\n");
-+ exit (1);
-+ }
-+ mpfr_clears (a, b, (mpfr_ptr) 0);
-+ }
-+
- tests_end_mpfr ();
-+
- return 0;
- }
diff --git a/dev-libs/mpfr/files/3.1.1/patch01 b/dev-libs/mpfr/files/3.1.1/patch01
deleted file mode 100644
index d73a3d7b4fd8..000000000000
--- a/dev-libs/mpfr/files/3.1.1/patch01
+++ /dev/null
@@ -1,235 +0,0 @@
-diff -Naurd mpfr-3.1.1-a/PATCHES mpfr-3.1.1-b/PATCHES
---- mpfr-3.1.1-a/PATCHES 2012-08-30 09:28:51.000000000 +0000
-+++ mpfr-3.1.1-b/PATCHES 2012-08-30 09:28:51.000000000 +0000
-@@ -0,0 +1 @@
-+get_decimal64
-diff -Naurd mpfr-3.1.1-a/VERSION mpfr-3.1.1-b/VERSION
---- mpfr-3.1.1-a/VERSION 2012-07-03 15:01:13.000000000 +0000
-+++ mpfr-3.1.1-b/VERSION 2012-08-30 09:28:51.000000000 +0000
-@@ -1 +1 @@
--3.1.1
-+3.1.1-p1
-diff -Naurd mpfr-3.1.1-a/src/get_d64.c mpfr-3.1.1-b/src/get_d64.c
---- mpfr-3.1.1-a/src/get_d64.c 2012-07-03 15:01:18.000000000 +0000
-+++ mpfr-3.1.1-b/src/get_d64.c 2012-08-30 09:28:51.000000000 +0000
-@@ -32,6 +32,10 @@
-
- #ifdef MPFR_WANT_DECIMAL_FLOATS
-
-+#ifndef DEC64_MAX
-+# define DEC64_MAX 9.999999999999999E384dd
-+#endif
-+
- #ifdef DPD_FORMAT
- static int T[1000] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32,
-@@ -142,26 +146,14 @@
- static _Decimal64
- get_decimal64_min (int negative)
- {
-- union ieee_double_extract x;
--
-- x.s.sig = (negative) ? 1 : 0;
-- x.s.exp = 0;
-- x.s.manh = 0;
-- x.s.manl = 1;
-- return x.d;
-+ return negative ? - 1E-398dd : 1E-398dd;
- }
-
- /* construct the decimal64 largest finite number with given sign */
- static _Decimal64
- get_decimal64_max (int negative)
- {
-- union ieee_double_extract x;
--
-- x.s.sig = (negative) ? 1 : 0;
-- x.s.exp = 1919;
-- x.s.manh = 1048575; /* 2^20-1 */
-- x.s.manl = ~0;
-- return x.d;
-+ return negative ? - DEC64_MAX : DEC64_MAX;
- }
-
- /* one-to-one conversion:
-@@ -334,7 +326,8 @@
- /* the largest decimal64 number is just below 10^(385) < 2^1279 */
- else if (MPFR_UNLIKELY (e > 1279)) /* then src >= 2^1279 */
- {
-- if (MPFR_RNDZ || (rnd_mode == MPFR_RNDU && negative != 0)
-+ if (rnd_mode == MPFR_RNDZ
-+ || (rnd_mode == MPFR_RNDU && negative != 0)
- || (rnd_mode == MPFR_RNDD && negative == 0))
- return get_decimal64_max (negative);
- else
-@@ -354,6 +347,15 @@
- which corresponds to s=[0.]1000...000 and e=-397 */
- if (e < -397)
- {
-+ if (rnd_mode == MPFR_RNDN && e == -398)
-+ {
-+ /* If 0.5E-398 < |src| < 1E-398 (smallest subnormal),
-+ src should round to +/- 1E-398 in MPFR_RNDN. */
-+ mpfr_get_str (s, &e, 10, 1, src, MPFR_RNDA);
-+ return e == -398 && s[negative] <= '5' ?
-+ get_decimal64_zero (negative) :
-+ get_decimal64_min (negative);
-+ }
- if (rnd_mode == MPFR_RNDZ || rnd_mode == MPFR_RNDN
- || (rnd_mode == MPFR_RNDD && negative == 0)
- || (rnd_mode == MPFR_RNDU && negative != 0))
-@@ -379,7 +381,8 @@
- which corresponds to s=[0.]9999...999 and e=385 */
- else if (e > 385)
- {
-- if (MPFR_RNDZ || (rnd_mode == MPFR_RNDU && negative != 0)
-+ if (rnd_mode == MPFR_RNDZ
-+ || (rnd_mode == MPFR_RNDU && negative != 0)
- || (rnd_mode == MPFR_RNDD && negative == 0))
- return get_decimal64_max (negative);
- else
-diff -Naurd mpfr-3.1.1-a/src/mpfr.h mpfr-3.1.1-b/src/mpfr.h
---- mpfr-3.1.1-a/src/mpfr.h 2012-07-03 15:01:19.000000000 +0000
-+++ mpfr-3.1.1-b/src/mpfr.h 2012-08-30 09:28:51.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.1.1"
-+#define MPFR_VERSION_STRING "3.1.1-p1"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.1-a/src/version.c mpfr-3.1.1-b/src/version.c
---- mpfr-3.1.1-a/src/version.c 2012-07-03 15:01:18.000000000 +0000
-+++ mpfr-3.1.1-b/src/version.c 2012-08-30 09:28:51.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.1";
-+ return "3.1.1-p1";
- }
-diff -Naurd mpfr-3.1.1-a/tests/tget_set_d64.c mpfr-3.1.1-b/tests/tget_set_d64.c
---- mpfr-3.1.1-a/tests/tget_set_d64.c 2012-07-03 15:01:24.000000000 +0000
-+++ mpfr-3.1.1-b/tests/tget_set_d64.c 2012-08-30 09:28:51.000000000 +0000
-@@ -25,6 +25,10 @@
- #include <stdlib.h> /* for exit */
- #include "mpfr-test.h"
-
-+#ifndef DEC64_MAX
-+# define DEC64_MAX 9.999999999999999E384dd
-+#endif
-+
- /* #define DEBUG */
-
- static void
-@@ -149,6 +153,15 @@
- mpfr_set_str (x, "9.999999999999999E384", 10, MPFR_RNDZ);
- mpfr_set (y, x, MPFR_RNDZ);
- d = mpfr_get_decimal64 (x, MPFR_RNDU);
-+ ASSERT_ALWAYS (d == DEC64_MAX);
-+ mpfr_set_ui (x, 0, MPFR_RNDZ);
-+ mpfr_set_decimal64 (x, d, MPFR_RNDZ);
-+ ASSERT_ALWAYS (mpfr_cmp (x, y) == 0);
-+
-+ mpfr_set_str (x, "-9.999999999999999E384", 10, MPFR_RNDZ);
-+ mpfr_set (y, x, MPFR_RNDZ);
-+ d = mpfr_get_decimal64 (x, MPFR_RNDA);
-+ ASSERT_ALWAYS (d == -DEC64_MAX);
- mpfr_set_ui (x, 0, MPFR_RNDZ);
- mpfr_set_decimal64 (x, d, MPFR_RNDZ);
- ASSERT_ALWAYS (mpfr_cmp (x, y) == 0);
-@@ -225,6 +238,83 @@
- mpfr_clear (x);
- }
-
-+static void
-+check_overflow (void)
-+{
-+ mpfr_t x;
-+ int err = 0, neg, rnd;
-+
-+ mpfr_init2 (x, 96);
-+ for (neg = 0; neg < 2; neg++)
-+ RND_LOOP (rnd)
-+ {
-+ _Decimal64 d, e;
-+ mpfr_rnd_t r = (mpfr_rnd_t) rnd;
-+ int sign = neg ? -1 : 1;
-+
-+ e = sign * (MPFR_IS_LIKE_RNDZ (r, neg) ? 1 : 2) * DEC64_MAX;
-+ /* This tests the binary exponent e > 1279 case of get_d64.c */
-+ mpfr_set_si_2exp (x, sign, 9999, MPFR_RNDN);
-+ d = mpfr_get_decimal64 (x, r);
-+ if (d != e)
-+ {
-+ printf ("Error 1 in check_overflow for %s, %s\n",
-+ neg ? "negative" : "positive",
-+ mpfr_print_rnd_mode (r));
-+ err = 1;
-+ }
-+ /* This tests the decimal exponent e > 385 case of get_d64.c */
-+ mpfr_set_si_2exp (x, sign * 31, 1274, MPFR_RNDN);
-+ d = mpfr_get_decimal64 (x, r);
-+ if (d != e)
-+ {
-+ printf ("Error 2 in check_overflow for %s, %s\n",
-+ neg ? "negative" : "positive",
-+ mpfr_print_rnd_mode (r));
-+ err = 1;
-+ }
-+ /* This tests the last else (-382 <= e <= 385) of get_d64.c */
-+ mpfr_set_decimal64 (x, e, MPFR_RNDA);
-+ d = mpfr_get_decimal64 (x, r);
-+ if (d != e)
-+ {
-+ printf ("Error 3 in check_overflow for %s, %s\n",
-+ neg ? "negative" : "positive",
-+ mpfr_print_rnd_mode (r));
-+ err = 1;
-+ }
-+ }
-+ mpfr_clear (x);
-+ if (err)
-+ exit (1);
-+}
-+
-+static void
-+check_tiny (void)
-+{
-+ mpfr_t x;
-+ _Decimal64 d;
-+
-+ /* If 0.5E-398 < |x| < 1E-398 (smallest subnormal), x should round
-+ to +/- 1E-398 in MPFR_RNDN. Note: the midpoint 0.5E-398 between
-+ 0 and 1E-398 is not a representable binary number, so that there
-+ are no tests for it. */
-+ mpfr_init2 (x, 128);
-+ mpfr_set_str (x, "1E-398", 10, MPFR_RNDZ);
-+ d = mpfr_get_decimal64 (x, MPFR_RNDN);
-+ MPFR_ASSERTN (d == 1.0E-398dd);
-+ mpfr_neg (x, x, MPFR_RNDN);
-+ d = mpfr_get_decimal64 (x, MPFR_RNDN);
-+ MPFR_ASSERTN (d == -1.0E-398dd);
-+ mpfr_set_str (x, "0.5E-398", 10, MPFR_RNDU);
-+ d = mpfr_get_decimal64 (x, MPFR_RNDN);
-+ MPFR_ASSERTN (d == 1.0E-398dd);
-+ mpfr_neg (x, x, MPFR_RNDN);
-+ d = mpfr_get_decimal64 (x, MPFR_RNDN);
-+ MPFR_ASSERTN (d == -1.0E-398dd);
-+ mpfr_clear (x);
-+}
-+
- int
- main (void)
- {
-@@ -241,6 +331,8 @@
- check_inf_nan ();
- check_random ();
- check_native ();
-+ check_overflow ();
-+ check_tiny ();
-
- tests_end_mpfr ();
- return 0;
diff --git a/dev-libs/mpfr/files/3.1.1/patch02 b/dev-libs/mpfr/files/3.1.1/patch02
deleted file mode 100644
index 76dbc4534d25..000000000000
--- a/dev-libs/mpfr/files/3.1.1/patch02
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -Naurd mpfr-3.1.1-a/PATCHES mpfr-3.1.1-b/PATCHES
---- mpfr-3.1.1-a/PATCHES 2012-08-30 09:35:12.000000000 +0000
-+++ mpfr-3.1.1-b/PATCHES 2012-08-30 09:35:12.000000000 +0000
-@@ -0,0 +1 @@
-+strtofr-ternary-value
-diff -Naurd mpfr-3.1.1-a/VERSION mpfr-3.1.1-b/VERSION
---- mpfr-3.1.1-a/VERSION 2012-08-30 09:28:51.000000000 +0000
-+++ mpfr-3.1.1-b/VERSION 2012-08-30 09:35:12.000000000 +0000
-@@ -1 +1 @@
--3.1.1-p1
-+3.1.1-p2
-diff -Naurd mpfr-3.1.1-a/src/mpfr.h mpfr-3.1.1-b/src/mpfr.h
---- mpfr-3.1.1-a/src/mpfr.h 2012-08-30 09:28:51.000000000 +0000
-+++ mpfr-3.1.1-b/src/mpfr.h 2012-08-30 09:35:12.000000000 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 1
--#define MPFR_VERSION_STRING "3.1.1-p1"
-+#define MPFR_VERSION_STRING "3.1.1-p2"
-
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.1-a/src/strtofr.c mpfr-3.1.1-b/src/strtofr.c
---- mpfr-3.1.1-a/src/strtofr.c 2012-07-03 15:01:16.000000000 +0000
-+++ mpfr-3.1.1-b/src/strtofr.c 2012-08-30 09:35:12.000000000 +0000
-@@ -667,6 +667,20 @@
- /* (z, exp_z) = base^(exp_base-pstr_size) */
- z = result + 2*ysize + 1;
- err = mpfr_mpn_exp (z, &exp_z, pstr->base, exp_z, ysize);
-+ /* Since we want y/z rounded toward zero, we must get an upper
-+ bound of z. If err >= 0, the error on z is bounded by 2^err. */
-+ if (err >= 0)
-+ {
-+ mp_limb_t cy;
-+ unsigned long h = err / GMP_NUMB_BITS;
-+ unsigned long l = err - h * GMP_NUMB_BITS;
-+
-+ if (h >= ysize) /* not enough precision in z */
-+ goto next_loop;
-+ cy = mpn_add_1 (z, z, ysize - h, MPFR_LIMB_ONE << l);
-+ if (cy != 0) /* the code below requires z on ysize limbs */
-+ goto next_loop;
-+ }
- exact = exact && (err == -1);
- if (err == -2)
- goto underflow; /* FIXME: Sure? */
-@@ -730,6 +744,7 @@
- MPFR_RNDN, rnd, MPFR_PREC(x)))
- break;
-
-+ next_loop:
- /* update the prec for next loop */
- MPFR_ZIV_NEXT (loop, prec);
- } /* loop */
-diff -Naurd mpfr-3.1.1-a/src/version.c mpfr-3.1.1-b/src/version.c
---- mpfr-3.1.1-a/src/version.c 2012-08-30 09:28:51.000000000 +0000
-+++ mpfr-3.1.1-b/src/version.c 2012-08-30 09:35:12.000000000 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
-- return "3.1.1-p1";
-+ return "3.1.1-p2";
- }
-diff -Naurd mpfr-3.1.1-a/tests/tstrtofr.c mpfr-3.1.1-b/tests/tstrtofr.c
---- mpfr-3.1.1-a/tests/tstrtofr.c 2012-07-03 15:01:24.000000000 +0000
-+++ mpfr-3.1.1-b/tests/tstrtofr.c 2012-08-30 09:35:12.000000000 +0000
-@@ -1105,6 +1105,92 @@
- mpfr_clear (y);
- }
-
-+/* From a bug reported by Joseph S. Myers
-+ https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00005.html */
-+static void
-+bug20120814 (void)
-+{
-+ mpfr_exp_t emin = -30, e;
-+ mpfr_t x, y;
-+ int r;
-+ char s[64], *p;
-+
-+ mpfr_init2 (x, 2);
-+ mpfr_set_ui_2exp (x, 3, emin - 2, MPFR_RNDN);
-+ mpfr_get_str (s + 1, &e, 10, 19, x, MPFR_RNDD);
-+ s[0] = s[1];
-+ s[1] = '.';
-+ for (p = s; *p != 0; p++) ;
-+ *p = 'e';
-+ sprintf (p + 1, "%d", (int) e - 1);
-+
-+ mpfr_init2 (y, 4);
-+ r = mpfr_strtofr (y, s, NULL, 0, MPFR_RNDN);
-+ if (r <= 0 || ! mpfr_equal_p (x, y))
-+ {
-+ printf ("Error in bug20120814\n");
-+ printf ("mpfr_strtofr failed on string \"%s\"\n", s);
-+ printf ("Expected inex > 0 and y = 0.1100E%d\n", (int) emin);
-+ printf ("Got inex = %-6d and y = ", r);
-+ mpfr_dump (y);
-+ exit (1);
-+ }
-+
-+ mpfr_clear (x);
-+ mpfr_clear (y);
-+}
-+
-+static void
-+bug20120829 (void)
-+{
-+ mpfr_t x1, x2, e;
-+ int inex1, inex2, i, r;
-+ char s[48] = "1e-1";
-+
-+ mpfr_init2 (e, 128);
-+ mpfr_inits2 (4, x1, x2, (mpfr_ptr) 0);
-+
-+ inex1 = mpfr_set_si (e, -1, MPFR_RNDN);
-+ MPFR_ASSERTN (inex1 == 0);
-+
-+ for (i = 1; i <= sizeof(s) - 5; i++)
-+ {
-+ s[3+i] = '0';
-+ s[4+i] = 0;
-+ inex1 = mpfr_mul_ui (e, e, 10, MPFR_RNDN);
-+ MPFR_ASSERTN (inex1 == 0);
-+ RND_LOOP(r)
-+ {
-+ mpfr_rnd_t rnd = (mpfr_rnd_t) r;
-+
-+ inex1 = mpfr_exp10 (x1, e, rnd);
-+ inex1 = SIGN (inex1);
-+ inex2 = mpfr_strtofr (x2, s, NULL, 0, rnd);
-+ inex2 = SIGN (inex2);
-+ /* On 32-bit machines, for i = 7, r8389, r8391 and r8394 do:
-+ strtofr.c:...: MPFR assertion failed: cy == 0
-+ r8396 is OK.
-+ On 64-bit machines, for i = 15,
-+ r8389 does: strtofr.c:678: MPFR assertion failed: err < (64 - 0)
-+ r8391 does: strtofr.c:680: MPFR assertion failed: h < ysize
-+ r8394 and r8396 are OK.
-+ */
-+ if (! mpfr_equal_p (x1, x2) || inex1 != inex2)
-+ {
-+ printf ("Error in bug20120829 for i = %d, rnd = %s\n",
-+ i, mpfr_print_rnd_mode (rnd));
-+ printf ("Expected inex = %d, x = ", inex1);
-+ mpfr_dump (x1);
-+ printf ("Got inex = %d, x = ", inex2);
-+ mpfr_dump (x2);
-+ exit (1);
-+ }
-+ }
-+ }
-+
-+ mpfr_clears (e, x1, x2, (mpfr_ptr) 0);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -1117,6 +1203,8 @@
- check_retval ();
- bug20081028 ();
- test20100310 ();
-+ bug20120814 ();
-+ bug20120829 ();
-
- tests_end_mpfr ();
- return 0;