Bug 2046802
Summary: | perl: FTBFS in Fedora rawhide/f36 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Release Engineering <releng> | ||||||||
Component: | perl | Assignee: | Jitka Plesnikova <jplesnik> | ||||||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | rawhide | CC: | caillon+fedoraproject, dan, jakub, jplesnik, mspacek, perl-devel, ppisar, rhughes, sandmann, spotrh, tuliom | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | perl-5.34.0-485.fc36 | Doc Type: | If docs needed, set a value | ||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2022-02-07 15:42:16 UTC | Type: | --- | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Bug Depends On: | |||||||||||
Bug Blocks: | 1071880, 1992484 | ||||||||||
Attachments: |
|
Description
Fedora Release Engineering
2022-01-27 09:29:54 UTC
Created attachment 1856032 [details]
build.log
file build.log too big, will only attach last 32768 bytes
Created attachment 1856033 [details]
root.log
file root.log too big, will only attach last 32768 bytes
Created attachment 1856034 [details]
state.log
The build failed only on ppc64le. I am working on it now. The failure is related to failing test XS-APItest/t/printf.t which fails only on ppc64le. # Failed test 'print_long_double' # at t/printf.t line 44. # got: '0.000' # expected: '7.000' # Failed test 'print_long_doubleL' # at t/printf.t line 45. # got: '0.000' # expected: '7.000' # Looks like you failed 2 tests of 13. ../ext/XS-APItest/t/printf.t ......................................... Dubious, test returned 2 (wstat 512, 0x200) Failed 2/13 subtests 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). I temporarily turned off running those two test cases for ppc64le to be able to build perl. perl-5.34.0-484.fc36 has been successfully built. I will continue to look for the cause of the error. If you need access to a rawhide/ppc64le machine, please let me know. I can't reproduce this issue with gcc-12.0.1-0.6.fc36. I tested with commit a471b953f462f, which doesn't disable the 2 test cases. I suspect this issue has been fixed by bug 2050569. Thanks for the notice, Tulio. I removed the previous changes and successfully rebuilt perl. |