Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1633565
Summary: | rust crashes on __float128 when building FF | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Dan Horák <dan> | ||||
Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 28 | CC: | airlied, aoliva, dan, davejohansen, dmalcolm, fweimer, hannsj_uhl, igor.raits, jakub, jistone, jwakely, law, mpolacek, msebor, nickc, rust-sig, sbergman, siddharth.kde, TicoTimo, tstellar | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | ppc64le | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2019-02-16 18:13:14 UTC | Type: | Bug | ||||
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 | ||||||
Attachments: |
|
Description
Dan Horák
2018-09-27 09:57:46 UTC
part of the log with the backtrace ... RawServoCounterStyleRuleVoid { }", "--raw-line", "pub struct RawServoCounterStyleRule(RawServoCounterStyleRuleVoid);", "--whitelist-function", "Servo_.*", "--whitelist-function", "Gecko_.*", "--", "-I", "/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include", "-I", "/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/nspr", "-include", "/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla-config.h", "-x", "c++", "-std=gnu++14", "-fno-sized-deallocation", "-DTRACING=1", "-DIMPL_LIBXUL", "-DMOZ_STYLO_BINDINGS=1", "-DMOZILLA_INTERNAL_API", "-DRUST_BINDGEN", "-DOS_POSIX=1", "-DOS_LINUX=1", "-I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/nspr", "-I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/nss", "-I/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/cairo"]', servo/components/style/build_gecko.rs:282:17 stack backtrace: 0: 0x7fffb089f133 - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 1: 0x7fffb0866e3b - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 2: 0x7fffb085f397 - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 3: 0x7fffb085f08b - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 4: 0x7fffb085fed7 - std::panicking::rust_panic_with_hook::hce5f786c962c355e 5: 0x7fffb085f8ff - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 6: 0x7fffb085f80f - std::panicking::begin_panic_fmt::he46c2d83239cce7a 7: 0x13bde38db - build_script_build::build_gecko::bindings::write_binding_file::h51a5ccd8dc393ab7 8: 0x13bde4f0b - build_script_build::build_gecko::bindings::generate_bindings::h41a5592eb7754268 9: 0x7fffb08b9897 - __rust_maybe_catch_panic 10: 0x13bddaddb - std::panicking::try::hab4cc17f9f205b50 11: 0x13bdc8417 - <F as alloc::boxed::FnBox<A>>::call_box::hd6fb1e7e00676a0b 12: 0x7fffb08aaf8b - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 13: 0x7fffb0860c97 - rust_metadata_std_359ae6df43a98cd98957ef461c9ec74c 14: 0x7fffb0a185d3 - start_thread 15: 0x7fffb06a65c7 - clone /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/type_traits:335:39: error: __float128 is not supported on this target /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/std_abs.h:102:7: error: __float128 is not supported on this target /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/std_abs.h:101:3: error: __float128 is not supported on this target ... Full Firefox build.log is available in our Jenkins. Created attachment 1487706 [details]
full build log
Does this succeed on F29 or Rawhide? I don't think it's any problem with the rust toolchain itself. The error here is from the build script for servo/components/style, which is trying to generate FFI bindings using the bindgen crate. This is panicking when it encounters the unsupported type in those headers. I believe bindgen uses libclang.so, so __float128 support is probably needed there. I can reproduce this with a simple hello-world and ppc64le clang++. I'm going to reassign to clang, but it may also be a libstdc++ issue. #include <iostream> using namespace std; int main(void) { cout << "Hello" << endl; return 0; } Using clang-6.0.1-1.fc28.ppc64le and libstdc++-8.1.1-5.fc28.ppc64le: $ clang++ hello.cc In file included from hello.cc:1: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/iostream:39: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/ostream:38: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/ios:39: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/exception:144: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/nested_exception.h:40: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/move.h:55: /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/type_traits:335:39: error: __float128 is not supported on this target struct __is_floating_point_helper<__float128> ^ In file included from hello.cc:1: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/iostream:39: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/ostream:38: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/ios:42: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/ios_base.h:41: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/locale_classes.h:40: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/string:52: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/basic_string.h:6391: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/ext/string_conversions.h:41: In file included from /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/cstdlib:77: /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/std_abs.h:102:7: error: __float128 is not supported on this target abs(__float128 __x) ^ /usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/bits/std_abs.h:101:3: error: __float128 is not supported on this target __float128 ^ 3 errors generated. I think the solution is to backport this upstream libstdc++ patch: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=263084 It has been even backported, but the updated gcc >= 8.2.1-2 hasn't made it to the updates (nor updates-testing) yet. |