https://bugzilla.redhat.com/show_bug.cgi?id=2046802
Jakub Jelinek <jakub(a)redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dhorak(a)redhat.com
--- Comment #6 from Jakub Jelinek <jakub(a)redhat.com> ---
From what I can see, perl likes to do everything on its own, so the printf that
the test uses is actually PerlIO_stdoutf.
Looking at config.h, the long double detection looks reasonable
#define HAS_LONG_DOUBLE /**/
#ifdef HAS_LONG_DOUBLE
#define LONG_DOUBLESIZE 16 /**/
#define LONG_DOUBLEKIND 1 /**/
#define LONG_DOUBLE_IS_DOUBLE 0
#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 1
...
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE 5
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE 6
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE 7
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE 8
...
#define LONG_DOUBLE_STYLE_IEEE
#undef LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
#undef LONG_DOUBLE_STYLE_IEEE_EXTENDED
#define LONG_DOUBLE_STYLE_IEEE_STD
#undef LONG_DOUBLE_STYLE_VAX
#endif
but the question is what it does with it. I'm not familiar with the perl
codebase and it is unfortunately
quite cryptic.
Is there an easy way to run a single test as opposed to all of them?
Actually:
#ifndef USE_LONG_DOUBLE
/*#define USE_LONG_DOUBLE / **/
#endif
looks kind of unexpected.
I bet that is also the reason why
#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
and not
#define Gconvert(x,n,t,b) sprintf((b),"%.*Lg",(n),(x))
I'd suggest to compare emitted config.h between s390x and ppc64le, s390x also
(like rawhide ppc64le) has IEEE quad long double (though, it has big-endian one
while ppc64le little endian).
And also compare it with f35-ish ppc64le (which had IBM double double instead
of IEEE quad long double).
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2046802