Hi!
Apparently something we (at least I) have totally missed, we clearly have a
problem with the IEEE modules for the dual -mabi={ibm,ieee}longdouble.
We have:
__ieee_arithmetic_MOD_ieee_class_16;
__ieee_arithmetic_MOD_ieee_support_datatype_16;
__ieee_arithmetic_MOD_ieee_support_denormal_16;
__ieee_arithmetic_MOD_ieee_support_divide_16;
__ieee_arithmetic_MOD_ieee_support_inf_16;
__ieee_arithmetic_MOD_ieee_support_io_16;
__ieee_arithmetic_MOD_ieee_support_nan_16;
__ieee_arithmetic_MOD_ieee_support_rounding_16;
__ieee_arithmetic_MOD_ieee_support_sqrt_16;
__ieee_arithmetic_MOD_ieee_support_standard_16;
__ieee_arithmetic_MOD_ieee_support_underflow_control_16;
__ieee_arithmetic_MOD_ieee_value_16;
__ieee_exceptions_MOD_ieee_support_flag_16;
__ieee_arithmetic_MOD_ieee_support_subnormal_16;
exported from the library, but no corresponding _17 entrypoints.
1) is there any way how to define them in a different source file
so that they can be compiled with -mabi=ieeelongdouble?
2) I'm afraid interfaces like:
interface IEEE_IS_NEGATIVE
procedure &
#ifdef HAVE_GFC_REAL_16
_gfortran_ieee_is_negative_16, &
#endif
#ifdef HAVE_GFC_REAL_10
_gfortran_ieee_is_negative_10, &
#endif
_gfortran_ieee_is_negative_8, _gfortran_ieee_is_negative_4
end interface
public :: IEEE_IS_NEGATIVE
just aren't going to work for the real(kind=16) case
when it has abi_kind 17, the FE will still resolve it to the
_16 case or error out that we have two real(kind=16) entries.
Can everything these modules do be resolved at compile time inline
such that for the abi_kind 17 nothing is really called, or
any other thoughts on this?
Jakub