The andouillette sauce moutarde release, patch level 2.
MPFR 2.4.2 requires GMP 4.1.0 or higher (GMP 4.2.3 or higher is recommended).
Warning! GCC 4.4.0 miscompiles
MPFR 2.4.2. This is detected by
make check
(failures in tget_z
and tpow_all). Please use a different compiler;
note that only GCC 4.4.0 is affected; the
bug has been fixed in GCC 4.4.1.
Warning! On Solaris, MPFR 2.4.2 can be
miscompiled with GCC. This is in fact a
bug in the Solaris memset function, which has been fixed
by Sun in October 2009. For more information about this bug, see this
bug report
and this
thread.
See also information
about the fix.
The MPFR 2.4.2 source can be downloaded in the following archive formats:
MPFR is also available via third-party packages and ports.
The bugs listed below have been fixed (latest update: 2010-01-11). The patches are distributed under the same license as this version of MPFR, that is, the GNU Lesser General Public License (GNU Lesser GPL), version 2.1 or later. Note that patches from the trunk (not listed on this page) are under the GNU Lesser GPL version 3 or later, thus may be backported only by the authors or the FSF without a license upgrade.
The following instructions are for Linux and may be similar for other operating systems. You can apply the patches in several ways:
patch -N -Z -p1 < path_to_patches_filefrom the source directory. The -N option allows the patch command to ignore patches already applied. The -Z option sets the modification time of the patched files from time stamps given in the patch file, thus avoiding the need of some development utilities (such as autoconf); this may generate a
Not setting timewarning for the PATCHES file, but you can safely ignore it. Under Microsoft Windows, in addition to the above options, you may need the --binary option (this depends whether the end-of-lines have been converted when you downloaded the patch file). Also note that the --dry-run option does not work with this cumulative patch.
svn co svn://scm.gforge.inria.fr/svn/mpfr/branches/2.4 mpfr-2.4In this case, as said on the Gforge page, you should read the README.dev file for details on how to build MPFR. Also note that the branch may contain additional minor fixes.
With the first two ways, the PATCHES file is modified,
so that one can know what patches have been applied, using the new
mpfr_get_patches function. Moreover a suffix is added to
the version string, but note that for practical reasons, not all the
files where the version appears are patched; thus one can also track
applied patches with the MPFR_VERSION_STRING macro (header)
and the mpfr_get_version function (library). However, if
some patches are not applied or if patches are applied in a different
order, then the patch command will fail to update some chunks, so that
the suffix is not always reliable for patches.
Note: These patches are in unified diff format and some vendors' patch commands cannot deal with them; in this case, please use GNU patch (it may already be installed on your system, e.g. as /usr/local/bin/patch or gpatch).
Fixed bugs:
mpfr_sin_cos function is called on
the minimum positive number or its opposite allowed by the current
MPFR implementation (in the largest exponent range)
and the rounding mode is toward zero or equivalent, then an underflow
occurs but the underflow flag is not set. This bug in fixed by the
sin_cos_underflow patch (which also
provides additional tests of mpfr_sin_cos to trigger this
bug).Other bugs: please see the tracker and the BUGS file.
Note: due to a bug in libtool 2.2.6, used to generate the scripts in the MPFR 2.4.2 tarball, useless checks for C++ and Fortran compilers are done. The only consequence should be that the configure step can be a bit longer. A freeze or failure because of such checks would be due to a broken installation of C++ and Fortran compilers. These checks have now completely been removed in the 2.4 branch (and the trunk).
intmax_t and uintmax_t types.mpfr_get_z_exp,
mpfr_strtofr, mpfr_get_str and
formatted output functions.tcmp_ld test to really test the
long double.mpfr_init_cache (unused and undocumented
function).__GMP_CC / __GMP_CFLAGS).make check(failures in tget_z and tpow_all).
MPFR 2.4.2 has been successfully compiled and checked on the following platforms: