diff -Naurd mpfr-2.4.2-a/PATCHES mpfr-2.4.2-b/PATCHES
--- mpfr-2.4.2-a/PATCHES	2009-12-18 12:03:30.000000000 +0000
+++ mpfr-2.4.2-b/PATCHES	2009-12-18 12:05:19.000000000 +0000
@@ -0,0 +1 @@
+longlong.h
diff -Naurd mpfr-2.4.2-a/VERSION mpfr-2.4.2-b/VERSION
--- mpfr-2.4.2-a/VERSION	2009-12-07 13:37:12.000000000 +0000
+++ mpfr-2.4.2-b/VERSION	2009-12-18 12:05:09.000000000 +0000
@@ -1 +1 @@
-2.4.2-p1
+2.4.2-p2
diff -Naurd mpfr-2.4.2-a/mpfr-longlong.h mpfr-2.4.2-b/mpfr-longlong.h
--- mpfr-2.4.2-a/mpfr-longlong.h	2009-11-30 02:43:08.000000000 +0000
+++ mpfr-2.4.2-b/mpfr-longlong.h	2009-12-18 12:04:29.000000000 +0000
@@ -1011,7 +1011,15 @@
 #endif /* __m88000__ */
 
 #if defined (__mips) && W_TYPE_SIZE == 32
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
+#define umul_ppmm(w1, w0, u, v) \
+  do {									\
+    UDItype _r;							\
+    _r = (UDItype) u * v;						\
+    (w1) = _r >> 32;							\
+    (w0) = (USItype) _r;						\
+  } while (0)
+#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
 #else
@@ -1024,7 +1032,16 @@
 #endif /* __mips */
 
 #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
+typedef unsigned int UTItype __attribute__ ((mode (TI)));
+#define umul_ppmm(w1, w0, u, v) \
+  do {									\
+    UTItype _r;							\
+    _r = (UTItype) u * v;						\
+    (w1) = _r >> 64;							\
+    (w0) = (UDItype) _r;						\
+  } while (0)
+#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
 #else
diff -Naurd mpfr-2.4.2-a/mpfr.h mpfr-2.4.2-b/mpfr.h
--- mpfr-2.4.2-a/mpfr.h	2009-12-07 13:37:12.000000000 +0000
+++ mpfr-2.4.2-b/mpfr.h	2009-12-18 12:05:09.000000000 +0000
@@ -27,7 +27,7 @@
 #define MPFR_VERSION_MAJOR 2
 #define MPFR_VERSION_MINOR 4
 #define MPFR_VERSION_PATCHLEVEL 2
-#define MPFR_VERSION_STRING "2.4.2-p1"
+#define MPFR_VERSION_STRING "2.4.2-p2"
 
 /* Macros dealing with MPFR VERSION */
 #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
diff -Naurd mpfr-2.4.2-a/version.c mpfr-2.4.2-b/version.c
--- mpfr-2.4.2-a/version.c	2009-12-07 13:37:12.000000000 +0000
+++ mpfr-2.4.2-b/version.c	2009-12-18 12:05:09.000000000 +0000
@@ -25,5 +25,5 @@
 const char *
 mpfr_get_version (void)
 {
-  return "2.4.2-p1";
+  return "2.4.2-p2";
 }
