GNU MPFR version 4.2.1 (released on 22 August 2023)

[download] [documentation] [bugs] [changes] [platforms]

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!

Download

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.

Documentation

Bugs

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:

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:

  1. The configure script fails with Clang and the GNU C Library (glibc) 2.41 due to code related to binary128 support (a.k.a. float128). Other platforms and build tools may be affected. The cause is the following. If the configure script detects that _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.
    Corresponding changesets in the 4.2 branch: 510f0971d, 023f69526

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:

Changes from version 4.2.0 to version 4.2.1

Platforms Known to Support MPFR

MPFR 4.2.1 has been successfully compiled and checked on the following platforms:

Back to the MPFR page.