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 - rust crashes on __float128 when building FF
Summary: rust crashes on __float128 when building FF
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: 28
Hardware: ppc64le
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PPCTracker
TreeView+ depends on / blocked
 
Reported: 2018-09-27 09:57 UTC by Dan Horák
Modified: 2019-02-16 18:13 UTC (History)
20 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-02-16 18:13:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
full build log (4.38 MB, text/plain)
2018-09-27 10:15 UTC, Dan Horák
no flags Details


Links
System ID Private Priority Status Summary Last Updated
IBM Linux Technology Center 171833 0 None None None 2019-05-13 15:32:11 UTC
Red Hat Bugzilla 1610492 1 None None None 2022-05-16 11:32:56 UTC
Red Hat Bugzilla 1612601 0 unspecified CLOSED [abrt] firefox: mozilla::ipc::MessageChannel::OnChannelErrorFromLink()(): firefox killed by SIGSEGV 2022-05-16 11:32:56 UTC

Internal Links: 1610492 1612601

Description Dan Horák 2018-09-27 09:57:46 UTC
rust crashes when build upstream Firefox sources on some ___float128 stuff

...
   Compiling audioipc-client v0.4.0 (file:///home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/media/audioipc/client)
   Compiling audioipc-server v0.2.3 (file:///home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/media/audioipc/server)
   Compiling style_traits v0.0.1 (file:///home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/servo/components/style_traits)
   Compiling style v0.0.1 (file:///home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/servo/components/style)
error: failed to run custom build command for `style v0.0.1 (file:///home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/servo/components/style)`
process didn't exit successfully: `/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/toolkit/library/release/build/style-b929d392377ab1f6/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs
cargo:out_dir=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/toolkit/library/powerpc64le-unknown-linux-gnu/release/build/style-b6deb3992531ce3d/out
cargo:rerun-if-changed=properties/Mako-0.9.1.zip
cargo:rerun-if-changed=properties/build.py
cargo:rerun-if-changed=properties/cascade.rs
cargo:rerun-if-changed=properties/computed_value_flags.rs
cargo:rerun-if-changed=properties/data.py
cargo:rerun-if-changed=properties/declaration_block.rs
cargo:rerun-if-changed=properties/gecko.mako.rs
cargo:rerun-if-changed=properties/helpers.mako.rs
cargo:rerun-if-changed=properties/helpers/animated_properties.mako.rs
cargo:rerun-if-changed=properties/longhands/background.mako.rs
cargo:rerun-if-changed=properties/longhands/border.mako.rs
cargo:rerun-if-changed=properties/longhands/box.mako.rs
cargo:rerun-if-changed=properties/longhands/color.mako.rs
cargo:rerun-if-changed=properties/longhands/column.mako.rs
cargo:rerun-if-changed=properties/longhands/counters.mako.rs
cargo:rerun-if-changed=properties/longhands/effects.mako.rs
cargo:rerun-if-changed=properties/longhands/font.mako.rs
cargo:rerun-if-changed=properties/longhands/inherited_box.mako.rs
cargo:rerun-if-changed=properties/longhands/inherited_svg.mako.rs
cargo:rerun-if-changed=properties/longhands/inherited_table.mako.rs
cargo:rerun-if-changed=properties/longhands/inherited_text.mako.rs
cargo:rerun-if-changed=properties/longhands/inherited_ui.mako.rs
cargo:rerun-if-changed=properties/longhands/list.mako.rs
cargo:rerun-if-changed=properties/longhands/margin.mako.rs
cargo:rerun-if-changed=properties/longhands/outline.mako.rs
cargo:rerun-if-changed=properties/longhands/padding.mako.rs
cargo:rerun-if-changed=properties/longhands/position.mako.rs
cargo:rerun-if-changed=properties/longhands/svg.mako.rs
cargo:rerun-if-changed=properties/longhands/table.mako.rs
cargo:rerun-if-changed=properties/longhands/text.mako.rs
cargo:rerun-if-changed=properties/longhands/ui.mako.rs
cargo:rerun-if-changed=properties/longhands/xul.mako.rs
cargo:rerun-if-changed=properties/properties.html.mako
cargo:rerun-if-changed=properties/properties.mako.rs
cargo:rerun-if-changed=properties/shorthands/background.mako.rs
cargo:rerun-if-changed=properties/shorthands/border.mako.rs
cargo:rerun-if-changed=properties/shorthands/box.mako.rs
cargo:rerun-if-changed=properties/shorthands/column.mako.rs
cargo:rerun-if-changed=properties/shorthands/font.mako.rs
cargo:rerun-if-changed=properties/shorthands/inherited_svg.mako.rs
cargo:rerun-if-changed=properties/shorthands/inherited_text.mako.rs
cargo:rerun-if-changed=properties/shorthands/list.mako.rs
cargo:rerun-if-changed=properties/shorthands/margin.mako.rs
cargo:rerun-if-changed=properties/shorthands/outline.mako.rs
cargo:rerun-if-changed=properties/shorthands/padding.mako.rs
cargo:rerun-if-changed=properties/shorthands/position.mako.rs
cargo:rerun-if-changed=properties/shorthands/svg.mako.rs
cargo:rerun-if-changed=properties/shorthands/text.mako.rs
cargo:rerun-if-changed=build_gecko.rs
cargo:rerun-if-changed=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/servo/components/style/gecko/regen_atoms.py
cargo:rerun-if-changed=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/layout/style/ServoBindings.toml
cargo:rerun-if-changed=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/layout/style/bindgen.toml
cargo:rerun-if-changed=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/nsGkAtomList.h
cargo:rerun-if-changed=/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/servo/components/style/gecko/pseudo_element_definition.mako.rs
--- stderr
/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
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:135:1: warning: replacement function 'operator new' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:142:21: warning: replacement function 'operator new' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:148:21: warning: replacement function 'operator new[]' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:154:21: warning: replacement function 'operator new[]' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:160:21: warning: replacement function 'operator delete' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:166:21: warning: replacement function 'operator delete' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:172:21: warning: replacement function 'operator delete[]' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:178:21: warning: replacement function 'operator delete[]' cannot be declared 'inline' [-Winline-new-delete]
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/js/Proxy.h:214:16: warning: offset of on non-standard-layout type 'js::BaseProxyHandler' [-Winvalid-offsetof]
/usr/bin/../lib/gcc/ppc64le-redhat-linux/8/../../../../include/c++/8/type_traits:335:39: error: __float128 is not supported on this target, err: true
/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, err: true
/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, err: true
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:135:1: warning: replacement function 'operator new' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:142:21: warning: replacement function 'operator new' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:148:21: warning: replacement function 'operator new[]' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:154:21: warning: replacement function 'operator new[]' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:160:21: warning: replacement function 'operator delete' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:166:21: warning: replacement function 'operator delete' cannot be declared 'inline' [-Winline-new-delete], err: false
/home/jenkins/workspace/Firefox-default/label/ppc64le/firefox/obj-powerpc64le-unknown-linux-gnu/dist/include/mozilla/mozalloc.h:172:21: warning: replacement function 'operator delete[]' cannot be declared 'inline' [-Winline-new-delete], err: false
...


Version-Release number of selected component (if applicable):
rust-1.29.0-1.fc28.ppc64le
llvm-6.0.1-1.fc28.ppc64le

Comment 1 Dan Horák 2018-09-27 10:01:12 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.

Comment 2 Dan Horák 2018-09-27 10:15:47 UTC
Created attachment 1487706 [details]
full build log

Comment 3 Josh Stone 2018-09-27 19:13:58 UTC
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.

Comment 4 Josh Stone 2018-09-27 20:03:17 UTC
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.

Comment 5 Tom Stellard 2018-09-27 21:48:57 UTC
I think the solution is to backport this upstream libstdc++ patch: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=263084

Comment 6 Dan Horák 2018-09-28 07:51:43 UTC
It has been even backported, but the updated gcc >= 8.2.1-2 hasn't made it to the updates (nor updates-testing) yet.


Note You need to log in before you can comment on or make changes to this bug.