Hi,

On Mon, Oct 19, 2020 at 11:11:40AM +0200, Richard B. Kreckel wrote:
> Okay, all that has just been fixed upstream now.

I contend that the cross build still loops for ppc64el. It kinda feels
like a different issue though. Should we close this one and open a new
one or retitle?

The issue is with the detection of the long double epsilon on powerpc
architectures. m4/floatparam.m4' macro CL_FLOATPARAM_CROSS attempts to
deduce the minimal value that can be added to 1 using compile time
bisection. That works, because gcc does constant folding of floating
point numbers, except when it does not not powerpc architectures. There
is a long standing gcc bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19779.

Would there be any chance to use gcc constants such as LDBL_EPSILON for
this case (even opportunistically)?

In any case, the current implementation is very bad, because the while
loop never finishes as every compilation attempt fails on the supposedly
non-constant expression. At minimum, there should be a bound on the
number of iterations.

Helmut

Reply via email to