On Wed, 27 Apr 2016, Bernd Edlinger wrote: > On 26.04.2016 22:14, Joseph Myers wrote: > > On Tue, 26 Apr 2016, Bernd Edlinger wrote: > > > >> Hi, > >> > >> as we all know, it's high time now to adjust the minimum supported > >> gmp/mpfr/mpc versions for gcc-7. > > > > I think updating the minimum versions (when using previously built > > libraries, not in-tree) is only appropriate when it allows some cleanup in > > GCC, such as removing conditionals on whether a more recently added > > function is available, adding functionality that depends on a newer > > interface, or using newer interfaces instead of older ones that are now > > deprecated. > > > > For example, you could justify a move to requiring MPFR 3.0.0 or later > > with cleanups to use MPFR_RND* instead of the older GMP_RND*, and > > similarly mpfr_rnd_t instead of the older mp_rnd_t and likewise mpfr_exp_t > > and mpfr_prec_t in fortran/. You could justify a move to requiring MPC > > 1.0.0 (or 1.0.2) by optimizing clog10 using mpc_log10. I don't know what > > if any newer GMP interfaces would be beneficial in GCC. And as always in > > such cases, it's a good idea to look at e.g. how widespread the newer > > versions are in GNU/Linux distributions, which indicates how many people > > might be affected by an increase in the version requirement. > > > > Yes I see. > > I would justify it this way: gmp-6.0.0 is the first version that does > not invoke undefined behavior in gmp.h, once we update to gmp-6.0.0 > we could emit at least a warning in cstddef for this invalid code. > > Once we have gmp-6.0.0, the earliest mpfr version that compiles at all > is mpfr-3.1.1 and the earliest mpc version that compiles at all is > mpc-0.9. This would be the supported installed versions. > > In-tree gmp-6.0.0 does _not_ work for ARM. But gmp-6.1.0 does (with a > little quirk). All supported mpfr and mpc versions are working in-tree > too, even for the ARM target. > > When we have at least mpfr-3.1.1, it is straight forward to remove the > pre-3.1.0 compatibility code from gcc/fortran/simplify.c for instance. > > So I would propose this updated patch for gcc-7.
As said elsewhere the main reason for all of this is to make the in-tree builds work better for newer archs that are not happy with the versions provided by download_prerequesites. This should come with a documentation adjustment that the only tested in-tree versions are those downloaded by dowload_prerequesites. Please address updating the minimum supported _installed_ version separately (in fact I do maintain a patch to disable stuff to be able to go back to even older mpfr versions ... :/). SLES 11 ships with mpfr 2.3.2, mpc 0.8 and gmp 4.2.3 while SLES 12 and openSUSE Leap have gmp 5.1.3, mpfr 3.1.2 and mpc 1.0.2. Thanks, Richard.