[power-ieee128] libgfortran: -mabi=ieeelongdouble I/O

Thomas Koenig tkoenig@netcologne.de
Mon Jan 3 17:03:41 GMT 2022


On 03.01.22 17:26, Jakub Jelinek wrote:

> so we could similarly have something like:
> #if !(defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16)
>      _gfortran_transfer_complex128;
>      _gfortran_transfer_complex128_write;
> #endif
> ...
> #if !(defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16)
>      _gfortran_transfer_real128;
>      _gfortran_transfer_real128_write;
> #endif
> ...
> #if defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG_DOUBLE__ == 16
>    _gfortran_transfer_complex128;
>    _gfortran_transfer_complex128_write;
>    _gfortran_transfer_real128;
>    _gfortran_transfer_real128_write;
> #endif

That would also work for me.

> or make that dependent on HAVE_GFC_REAL_17 or whatever else (with suitable
> includes that only define macros and not actual C code).

With my most recent commit, HAVE_GFC_REAL_17 can now be found in
kinds.inc if all of the macros above are defined, that should
be suitable.

I found that __powerpc64__ is not defined when compiling *.F90 files
(which is why I added them by hand). Not sure how the preprocessor is
invoked on gfortran.map, but if things don't work, this could be
related :-)

So, it's OK either way with me.  What do others think?

Best regards

	Thomas


More information about the Gcc-patches mailing list