The fondue savoyarde release, patch level 1.
MPFR 4.2.1 requires GMP 5.0 or higher.
Note: the bug-fix release MPFR 4.2.2 is available. Please upgrade!
The MPFR 4.2.1 source can be downloaded in the following archive formats:
Each tarball is signed by Vincent Lefèvre. This can be verified using the DSA key ID 5831D11A0D4DB02A; this key can be retrieved with:
gpg --recv-keys 5831D11A0D4DB02A
or by downloading it from https://www.vinc17.net/pgp.html. The key fingerprint is:
A534 BE3F 83E2 41D9 1828 0AEB 5831 D11A 0D4D B02A
The signatures can be verified with:
gpg --verify file.asc
You should check that the key fingerprint matches.
MPFR is also available via third-party packages and ports.
The bugs listed below have been fixed (latest update: 2025-03-07). 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 3 or later.
The following instructions are for Linux and may be similar for other operating systems. You can apply the patches in several ways:
patch -N -p1 < path_to_patches_file touch aclocal.m4 touch Makefile.in touch configurefrom the source directory, in this order. The -N option allows the patch command to ignore patches already applied. Because make's rebuild decisions are based on timestamps, and in particular because the acinclude.m4 file is patched, the timestamps of aclocal.m4, Makefile.in and configure need to be updated with the above commands to avoid the need of the autotools. Alternatively, the --disable-maintainer-mode configure option could be used later. Under Microsoft Windows, in addition to the above patch 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 if the cumulative patch has some file listed several times.
With the first two ways, the PATCHES file is modified, so that one can know what patches have been applied, using the 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, with patches:
_Float128
is not supported by the compiler, but that __float128
is supported, then _Float128
is defined as __float128
(with a macro). However, the C library may introduce some support on its side (this is what glibc 2.41 does), conflicting with the MPFR code. Since _Float128
is a reserved identifier, a different solution is needed. What has been chosen is to use a mpfr_float128
macro defined as _Float128
by default, and the prototypes now use mpfr_float128
instead of _Float128
; thanks to the default definition, this changes neither the ABI nor the API. See the updated MPFR manual for additional details and instructions for the end user. This is fixed by the float128 patch.See the BUGS file. The Reporting Bugs section of the MPFR manual gives details on how to report new bugs.
Other bugs fixed in the 4.2 branch:
MPFR 4.2.1 has been successfully compiled and checked on the following platforms: