Hi all,

I'm sending this mail because I'm a bit confused about the
-mlong-double-128 option on (for example) ppc64-linux, and its impact
on gfortran/libgfortran.
When I simply bootstrap a compiler with "configure
--with-cpu=default32", I get a gfortran that does only have kind=4 and
kind=8 reals (corresponding to C types float and double) by default.
When I use this gfortran with the -mlong-double-128 option, the
real(kind=16) floating point type is accepted at compile-time, but the
I/O library in libgfortran doesn't know how to deal with it (since,
when libgfortran was compiled, it did not detect that real(kind=16)
was available), and the code fails at runtime.

What should we do about that? I see a few options:
  1. refuse -mlong-double-128 for Fortran code; easiest, but not
exactly satisfying
  2. build multiple instances of the library, as is currently done for
the -m32/-m64 options
  3. build only one instance of the library, but build it with
-mlong-double-128 enabled, since as far as libgfortran is concerned,
it only adds a new floating-point type.

I may be confused about how all this is supposed to be handled, so any
pointer to further reading is welcome, as well as opinion on the
problem and options above.

Thanks,
FX

Reply via email to