742cf4e2b5
BUGS FIXED * When reading a C++ number (like mpz_class) in an istream reaches the end of the stream, the eofbit is now set. * The result sign of mpz_rootrem's remainder is now always correct. * The mpz_remove function now handles negative divisors. * Contains all fixes from release 5.0.5. SPEEDUPS * The n-factorial and n-over-k functions have been reimplemented for great speedups for small and large operands. * New subquadratic algorithm for the Kronecker/Jacobi/Legendre symbol. * Major speedup for ARM, in particular ARM Cortex-A9 and A15, thanks to broad assembly support. * Significant speedup or POWER6 and POWER7 thanks to improved assembly. * The performance under M$ Windows' 64-bit ABI has been greatly improved thanks to complete assembly support. * Minor speed improvements of many functions and for many platforms. FEATURES * Many new CPUs recognised. * New functions for multi-factorials, and primorial: mpz_2fac_ui, mpz_mfac_uiui and mpz_primorial_ui. * The mpz_powm_sec function now uses side-channel silent division for converting into Montgomery residues. * The fat binary mechanism is now more robust in its CPU recognition. MISC * Inclusion of assembly code is now controlled by the configure options --enable-assembly and --disable-assembly. The "none" CPU targets is gone. * In C++, the conversions mpq_class->mpz_class, mpf_class->mpz_class and mpf_class->mpq_class are now explicit. * Includes "mini-gmp", a small, portable, but less efficient, implementation of a subset of GMP's mpn and mpz interfaces. Used in GMP bootstrap, but it can also be bundled with applications as a fallback when the real GMP library is unavailable. * The ABIs under AIX are no longer called aix32 and aix64, but mode64 and 32. This is more consistent with other powerpc systems. * The coverage of the testsuite has been improved, using the lcov tool. See also http://gmplib.org/devel/lcov/. * It is now possible to compile GMP using a C++ compiler. * K&R C compilers are no longer supported. * The BSD MP compatibility functions have been removed.
21 lines
890 B
Text
21 lines
890 B
Text
$NetBSD: patch-ac,v 1.10 2013/01/31 20:30:26 adam Exp $
|
|
|
|
--- gmp-h.in.orig 2012-12-18 19:05:09.000000000 +0000
|
|
+++ gmp-h.in
|
|
@@ -359,6 +359,8 @@ typedef __mpq_struct *mpq_ptr;
|
|
GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
|
inline semantics, unless -fgnu89-inline is used. */
|
|
#ifdef __GNUC__
|
|
+#if defined(__APPLE_CC__) && __APPLE_CC__ > 5400 && __STDC_VERSION__ >= 199901L
|
|
+#else
|
|
#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
|
|
|| (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
|
|
#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
|
|
@@ -367,6 +369,7 @@ typedef __mpq_struct *mpq_ptr;
|
|
#endif
|
|
#define __GMP_INLINE_PROTOTYPES 1
|
|
#endif
|
|
+#endif
|
|
|
|
/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
|
|
strict ANSI mode. Inlining is done even when not optimizing (ie. -O0
|