Bug 2045186
Summary: | abseil-cpp: FTBFS in Fedora rawhide/f36 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Release Engineering <releng> | ||||||||||||
Component: | abseil-cpp | Assignee: | Rich Mattes <richmattes> | ||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||
Priority: | unspecified | ||||||||||||||
Version: | 36 | CC: | code, dan, jakub, jwakely, richmattes | ||||||||||||
Target Milestone: | --- | ||||||||||||||
Target Release: | --- | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Whiteboard: | |||||||||||||||
Fixed In Version: | abseil-cpp-20210324.2-4.fc36 abseil-cpp-20210324.2-4.fc37 | Doc Type: | If docs needed, set a value | ||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||
Clone Of: | Environment: | ||||||||||||||
Last Closed: | 2022-02-18 14:52:53 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, 1649936, 1992484, 2045102, 2053630, 2053636 | ||||||||||||||
Attachments: |
|
Description
Fedora Release Engineering
2022-01-25 16:04:55 UTC
Created attachment 1853611 [details]
build.log
file build.log too big, will only attach last 32768 bytes
Created attachment 1853612 [details]
root.log
file root.log too big, will only attach last 32768 bytes
Created attachment 1853613 [details]
state.log
Currently there is one test failure on architectures other than s390x. It looks like it could be a Google Test issue. Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=82195530 (In reply to Ben Beasley from comment #4) > Currently there is one test failure on architectures other than s390x. It > looks like it could be a Google Test issue. > > Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=82195530 Sorry, that last comment was with LTO disabled. Running another scratch build to see if there are still LTO problems, as in RHBZ#2042434: https://koji.fedoraproject.org/koji/taskinfo?taskID=82197683 *** Bug 2042434 has been marked as a duplicate of this bug. *** Looks like LTO is OK now, so there’s just the test failure to deal with. It looks like we now have a version of googletest that understands GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST. If I try removing this from %prep: > # Remove macro only defined in googletest git master > sed -i 's|GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST|//|' absl/container/internal/unordered_map_modifiers_test.h then I get a build that is successful on everything but ppc64le: https://koji.fedoraproject.org/koji/taskinfo?taskID=82204878 The following tests FAILED: 81 - absl_random_beta_distribution_test (Failed) 87 - absl_random_exponential_distribution_test (Failed) 88 - absl_random_gaussian_distribution_test (Failed) 90 - absl_random_uniform_real_distribution_test (Subprocess aborted) 111 - absl_random_internal_iostream_state_saver_test (Failed) It looks like most of the failures are related to __ieee128 types: [ FAILED ] ExponentialDistributionTypedTest/2.SerializeTest, where TypeParam = __ieee128 [ FAILED ] GaussianDistributionInterfaceTest/2.SerializeTest, where TypeParam = __ieee128 (282 ms) [ FAILED ] GaussianDistributionInterfaceTest/2.SerializeTest, where TypeParam = __ieee128 [ FAILED ] IOStreamStateSaver.RoundTripLongDoubles [ FAILED ] BetaDistributionInterfaceTest/2.SerializeTest, where TypeParam = __ieee128 The subprocess aborted was also related to long double: Expected equality of these values: before Which is: 6.953283485615657412940250901535356313e-310 6.953283485615657412940250901535356313e-310 after Which is: 6.953283485615657412940250901535356313e-310 6.953283485615657412940250901535356313e-310 absl_random_uniform_real_distribution_test: /builddir/build/BUILD/abseil-cpp-20210324.2/absl/random/uniform_real_distribution.h:75: absl::lts_20210324::uniform_real_distribution<RealType>::param_type::param_type(absl::lts_20210324::uniform_real_distribution<RealType>::result_type, absl::lts_20210324::uniform_real_distribution<RealType>::result_type) [with RealType = long double; absl::lts_20210324::uniform_real_distribution<RealType>::result_type = long double]: Assertion `lo <= hi' failed. This might be related to the ppc64 long double changes, I'm blocking the ppc tracker Yes, it will be related. Does abseil depend on some external libs? Perhaps it's just a build order issue ... After looking at the code then at least the beta distribution contains some expectation about the behaviour of the "old" IBM long double type for PPC ... So there is something wrong somewhere :-) I have reduced the absl_random_beta_distribution_test source substantially, so it should be easier to debug. Created attachment 1858360 [details]
reduced test
Do you have preprocessed version of the reduced test? Looks to me there is something wrong with the stringstream reader/writer, I am slowly working on it. IMO it's not clear it's GCC's fault, could be libstdc++ ... Created attachment 1859579 [details]
preprocessed test case source
and the command line: /usr/bin/g++ -I/home/sharkcz/abseil-cpp/abseil-cpp-20210324.2 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection -Wall -Wextra -Wcast-qual -Wconversion-null -Wformat-security -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wundef -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -DNOMINMAX -Wno-conversion-null -Wno-deprecated-declarations -Wno-missing-declarations -Wno-sign-compare -Wno-unused-function -Wno-unused-parameter -Wno-unused-private-field -std=gnu++17 -MD -MT absl/random/CMakeFiles/absl_random_beta_distribution_test.dir/beta_distribution_test.cc.o -MF CMakeFiles/absl_random_beta_distribution_test.dir/beta_distribution_test.cc.o.d -o CMakeFiles/absl_random_beta_distribution_test.dir/beta_distribution_test.cc.o -c /home/sharkcz/abseil-cpp/abseil-cpp-20210324.2/absl/random/beta_distribution_test.cc I can reproduce it with just: #include <sstream> int main () { std::stringstream ss; long double a = 9.99999999999999945153271454209571652e-21L; long double b; ss << a; ss >> b; __builtin_printf ("%Lg %Lg\n", a, b); return 0; } which with -mabi=ibmlongdouble prints 1e-20 1e-20 but with -mabi=ieeelongdouble prints 1e-20 6.95326e-310 So looks like libstdc++ issue. This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle. Changing version to 36. Fixed in upstream GCC now. Thanks! I opened a PR with the Google Test fix. Hopefully once GCC is updated in Rawhide it will be possible merge and build it without further changes. https://src.fedoraproject.org/rpms/abseil-cpp/pull-request/2 Fix is present in gcc-12.0.1-0.8, which is currently building in koji: https://src.fedoraproject.org/rpms/gcc/c/9743a6a9b014b9a1127626dfae25753feab77ae4?branch=rawhide https://koji.fedoraproject.org/koji/buildinfo?buildID=1918054 https://koji.fedoraproject.org/koji/buildinfo?buildID=1918053 FEDORA-2022-6c93a8a110 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-6c93a8a110 FEDORA-2022-6e05296377 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-6e05296377 FEDORA-2022-6c93a8a110 has been pushed to the Fedora 36 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2022-6e05296377 has been pushed to the Fedora 37 stable repository. If problem still persists, please make note of it in this bug report. |