From e1b3d592f43a99f4ed7c91971deda6ce8414dd69 Mon Sep 17 00:00:00 2001 From: Parabola Date: Mon, 17 Oct 2011 14:16:38 +0000 Subject: Mon Oct 17 14:16:38 UTC 2011 --- core/mpfr/mpfr-3.0.1.p4.patch | 367 ------------------------------------------ 1 file changed, 367 deletions(-) delete mode 100644 core/mpfr/mpfr-3.0.1.p4.patch (limited to 'core/mpfr') diff --git a/core/mpfr/mpfr-3.0.1.p4.patch b/core/mpfr/mpfr-3.0.1.p4.patch deleted file mode 100644 index 9604635a2..000000000 --- a/core/mpfr/mpfr-3.0.1.p4.patch +++ /dev/null @@ -1,367 +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 -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 -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 -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"; - } -- cgit v1.2.3-54-g00ecf