libgmp: Update from version 5.0.2 to 5.0.5
authorJohn Marino <draco@marino.st>
Sat, 12 May 2012 08:18:42 +0000 (10:18 +0200)
committerJohn Marino <draco@marino.st>
Sat, 12 May 2012 10:58:22 +0000 (12:58 +0200)
===============================
 CHANGES SINCE PREVIOUS UPDATE
===============================
Changes between GMP version 5.0.2 and 5.0.3
[BUGS FIXED]
* A few minor bugs related to portability fixed.
* A slight timing leak of the powm_sec functions have been sealed.
  (This leak could possibly be used to extract the most significant
  few bits of the exponent.  "Few" here means at most 10.)
* The mpz_nextprime function now runs a safer number of pseudo-random
  prime tests.
* A bug in division code possibly causing incorrect computation was
  fixed.
[SPEEDUPS]
* None, except indirectly through recognition of new CPUs, and through
  better tuning parameters.
[FEATURES]
* New CPUs recognised.
* IBM S/390 are now supported in both 31/32-bit and 64-bit mode.  (We
  have not been able to fully test this on any multilib machine, since
  IBM expired our guest account a few days before our release.)

Changes between GMP version 5.0.3 and 5.0.4
[BUGS FIXED]
* Thresholds in mpn_powm_sec for both fat and non-fat builds are now
  used safely, plugging a one-word buffer overrun introduced in the
  5.0.3 release (for non-fat) and a multi-word buffer overrun that
  existed since 5.0 (for fat).  (We have not been able to provoke malign
  stack smashing in any of the ~100 configurations explored by the GMP
  nightly builds, but the bug should be assumed to be exploitable.)
* Two bugs in multiplication code causing incorrect computation with
  extremely low probability have been fixed.
* A bug in the test suite causing buffer overruns during "make check",
  sometimes leading to subsequent malloc crashes, has been fixed.
* Two bugs in the gcd code have been fixed.  They could lead to incorrect
  results, but for uniformly distributed random operands, the likelihood
  for that is infinitesimally small.  (There was also a third bug, but
  that was an incorrect ASSERT, which furthermore was not enabled by
  default.)
* A bug affecting 32-bit PowerPC division has been fixed.  The bug caused
  miscomputation for certain divisors in the range 2^32 ... 2^64-1
  (about 1 in 2^30 of these).
[SPEEDUPS]
* None, except indirectly through recognition of new CPUs, and through
  better tuning parameters.
[FEATURES]
* Some more tests added to the self-check suite.
* The AMD "Bulldozer" CPU is now recognised.

Changes between GMP version 5.0.4 and 5.0.5
[BUGS FIXED]
* A bug causing AMD 11h processors to be treated like AMD 10h has been
  fixed.  The 11h processors do not correctly handle all 10h (aka K10)
  instructions, and GMP's use of these instructions results in major
  miscomputations (not as one would have hoped CPU traps of some
  'illegal instruction' sort).
* A bug affecting recent Intel Sandy Bridge CPUs resulting in
  configuration failures has been fixed,
[FEATURES]
* A couple of tests added to the self-check suite.

gnu/usr.bin/cc44/gmp/Makefile
gnu/usr.bin/cc44/gmp/Makefile.i386
gnu/usr.bin/cc44/gmp/Makefile.x86_64
gnu/usr.bin/cc44/gmp/config.h
gnu/usr.bin/cc44/gmp/gmp.h

index 6aef465..ac5c7c9 100644 (file)
@@ -8,9 +8,8 @@ CONTRIBDIR=     ${.CURDIR}/../../../../contrib/gmp
 
 CFLAGS+=       -D__GMP_WITHIN_GMP -I${CONTRIBDIR} -I${.OBJDIR} -I${.CURDIR}
 CFLAGS+=       -I${CONTRIBDIR}/mpn/generic
-CFLAGS+=       -D__LONG_INT_BITS=${LONG_INT_BITS}
+CFLAGS+=       -D__LONG_INT_BYTES=${LONG_INT_BYTES}
 CFLAGS+=       -D__INT_BITS=${INT_BITS}
-CFLAGS+=       -D__SHORT_BITS=${SHORT_BITS}
 CFLAGS+=       -DHAVE_HOST_CPU_FAMILY_${CPU_FAMILY}=1
 
 
@@ -85,10 +84,10 @@ MPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo                     \
   mpz/urandomm$U.lo mpz/xor$U.lo
 
 MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo                               \
-  mpq/canonicalize$U.lo mpq/clear$U.lo                                 \
+  mpq/canonicalize$U.lo mpq/clear$U.lo mpq/clears$U.lo                 \
   mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo            \
   mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo    \
-  mpq/init$U.lo mpq/inp_str$U.lo mpq/inv$U.lo                          \
+  mpq/init$U.lo mpq/inits$U.lo mpq/inp_str$U.lo mpq/inv$U.lo           \
   mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo          \
   mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo                       \
   mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo                     \
index 10fd92a..a1e4290 100644 (file)
@@ -1,4 +1,4 @@
+LONG_INT_BYTES= 4
 LONG_INT_BITS= 32
 INT_BITS=      32
-SHORT_BITS=    16
 CPU_FAMILY=    x86
index 2c34ea9..d48d0ca 100644 (file)
@@ -1,4 +1,4 @@
+LONG_INT_BYTES= 8
 LONG_INT_BITS= 64
 INT_BITS=      32
-SHORT_BITS=    16
 CPU_FAMILY=    x86_64
index 221a6df..8c572e6 100644 (file)
@@ -4,7 +4,7 @@
 /*
 
 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -162,6 +162,14 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
 /* #undef HAVE_HOST_CPU_pentiumpro */
 /* #undef HAVE_HOST_CPU_pentium2 */
 /* #undef HAVE_HOST_CPU_pentium3 */
+/* #undef HAVE_HOST_CPU_s390_z900 */
+/* #undef HAVE_HOST_CPU_s390_z990 */
+/* #undef HAVE_HOST_CPU_s390_z9 */
+/* #undef HAVE_HOST_CPU_s390_z10 */
+/* #undef HAVE_HOST_CPU_s390_z196 */
+
+/* Define to 1 iff we have a s390 with 64-bit registers.  */
+/* #undef HAVE_HOST_CPU_s390_zarch */
 
 /* Define to 1 if the system has the type `intmax_t'. */
 #define HAVE_INTMAX_T 1
@@ -461,13 +469,13 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
 #define PACKAGE "gmp"
 
 /* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org"
+#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see http://gmplib.org/manual/Reporting-Bugs.html"
 
 /* Define to the full name of this package. */
 #define PACKAGE_NAME "GNU MP"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU MP 5.0.2"
+#define PACKAGE_STRING "GNU MP 5.0.5"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gmp"
@@ -476,7 +484,7 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
 #define PACKAGE_URL "http://www.gnu.org/software/gmp/"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "5.0.2"
+#define PACKAGE_VERSION "5.0.5"
 
 /* Define to 1 if the C compiler supports function prototypes. */
 #define PROTOTYPES 1
@@ -484,20 +492,20 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
 /* Define as the return type of signal handlers (`int' or `void'). */
 #define RETSIGTYPE void
 
-/* The size of `mp_limb_t', as computed by sizeof. */
-#define SIZEOF_MP_LIMB_T (__LONG_INT_BITS / 8)
+/* The size of `mp_limb_t', as computed by sizeof. */
+#define SIZEOF_MP_LIMB_T __LONG_INT_BYTES
 
-/* The size of `unsigned', as computed by sizeof. */
-#define SIZEOF_UNSIGNED (__INT_BITS / 8)
+/* The size of `unsigned', as computed by sizeof. */
+#define SIZEOF_UNSIGNED 4
 
-/* The size of `unsigned long', as computed by sizeof. */
-#define SIZEOF_UNSIGNED_LONG (__LONG_INT_BITS / 8)
+/* The size of `unsigned long', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_LONG __LONG_INT_BYTES
 
-/* The size of `unsigned short', as computed by sizeof. */
-#define SIZEOF_UNSIGNED_SHORT (__SHORT_BITS / 8)
+/* The size of `unsigned short', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_SHORT 2
 
 /* The size of `void *', as computed by sizeof. */
-#define SIZEOF_VOID_P (__LONG_INT_BITS / 8)
+#define SIZEOF_VOID_P __LONG_INT_BYTES
 
 /* Define to 1 if sscanf requires writable inputs */
 /* #undef SSCANF_WRITABLE_INPUT */
@@ -512,7 +520,7 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
 #define TUNE_SQR_TOOM2_MAX 80
 
 /* Version number of package */
-#define VERSION "5.0.2"
+#define VERSION "5.0.5"
 
 /* Define to 1 to enable ASSERT checking, per --enable-assert */
 /* #undef WANT_ASSERT */
index 188703c..431b7c3 100644 (file)
@@ -1,7 +1,8 @@
 /* Definitions for GNU multiple precision functions.   -*- mode: c -*-
 
 Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation,
+Inc.
 
 This file is part of the GNU MP Library.
 
@@ -28,6 +29,7 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
 
 /* Instantiated by configure. */
 #if ! defined (__GMP_WITHIN_CONFIGURE)
+/* Can't use Makefile.xxx definitions because mpfr uses this header too */
 #if defined(__i386__)
 #define __GMP_BITS_PER_MP_LIMB             32
 #elif defined(__x86_64__)
@@ -130,9 +132,6 @@ along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
    indicates when building libgmpxx, and in that case libgmpxx functions are
    exports, but libgmp functions which might get called are imports.
 
-   libmp.la uses __GMP_DECLSPEC, just as if it were libgmp.la.  libgmp and
-   libmp don't call each other, so there's no conflict or confusion.
-
    Libtool DLL_EXPORT define is not used.
 
    There's no attempt to support GMP built both static and DLL.  Doing so
@@ -333,7 +332,8 @@ typedef __mpq_struct *mpq_ptr;
   || defined (__STDIO__)              /* Apple MPW MrC */       \
   || defined (_MSL_STDIO_H)           /* Metrowerks */          \
   || defined (_STDIO_H_INCLUDED)      /* QNX4 */               \
-  || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */
+  || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */            \
+  || defined (__STDIO_LOADED)         /* VMS */
 #define _GMP_H_HAVE_FILE 1
 #endif
 
@@ -2275,13 +2275,13 @@ enum
 
 /* Define CC and CFLAGS which were used to build this version of GMP */
 #define __GMP_CC "gcc -std=gnu99"
-#define __GMP_CFLAGS "-O2 -pedantic -m64 -mtune=k8 -march=k8"
+#define __GMP_CFLAGS "-O2 -pedantic"
 
 /* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
 #define __GNU_MP_VERSION 5
 #define __GNU_MP_VERSION_MINOR 0
-#define __GNU_MP_VERSION_PATCHLEVEL 2
-#define __GMP_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL)
+#define __GNU_MP_VERSION_PATCHLEVEL 5
+#define __GNU_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL)
 
 #define __GMP_H__
 #endif /* __GMP_H__ */