On 04.10.21 16:14, Jakub Jelinek via Fortran wrote:
Based on some IRC discussion, yet another option would be bump libgfortran SONAME (on all arches), make real(kind=16) on powerpc64le-linux mean always IEEE quad (starting with GCC 12) and if wanted add support for real(kind=15) meaning double double.
Bumping the SONAME for everybody even on architectures which are not affected (like x86 or ARM) does not really feel right. We will probably have to do it sooner or later, at least to get PDTs right (and for array descriptor reform), but we will then have to do another SONAME change when we do that (it is certainly not ready now). There is also the issue of binary data. If some user has written out data in double double and wants to read it in as IEEE quad, the results are going to be garbage. Another option for CONVERT might be the solution to that, or, as you wrote, having a REAL(KIND=15). It should be inaccessible via SELECTED_REAL_KIND, though. Hmm...