Skip to content

ICE when trying to cross compile with xargo #47040

Description

@rnestler

I got an internal compiler error when trying to cross compile a project with the latest nightly using xargo.

 % rustc --version                                                         :(
rustc 1.24.0-nightly (1abeb436d 2017-12-27)
% RUST_BACKTRACE=1 xargo build                                            :(
   Compiling water-sensor-firmware v0.1.9 (file:///home/rnestler/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs)
error: internal compiler error: /checkout/src/librustc_metadata/cstore_impl.rs:131: get_optimized_mir: missing MIR for `DefId(7/0:8 ~ cortex_m_rt[efa4]::lang_items[0]::start[0])`

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.24.0-nightly (1abeb436d 2017-12-27) running on x86_64-unknown-linux-gnu

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'Box<Any>', /checkout/src/librustc_errors/lib.rs:504:9
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at /checkout/src/libstd/sys_common/backtrace.rs:68
             at /checkout/src/libstd/sys_common/backtrace.rs:57
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/panicking.rs:381
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:391
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:577
   5: std::panicking::begin_panic
   6: rustc_errors::Handler::bug
   7: <std::thread::local::LocalKey<T>>::with
   8: rustc::ty::context::tls::with_opt
   9: rustc::session::opt_span_bug_fmt
  10: rustc::session::bug_fmt
  11: rustc_metadata::cstore_impl::provide_extern::optimized_mir
  12: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::compute_result
  13: rustc::dep_graph::graph::DepGraph::with_task_impl
  14: rustc_errors::Handler::track_diagnostics
  15: rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check
  16: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::force
  17: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::try_get
  18: rustc::ty::maps::TyCtxtAt::optimized_mir
  19: rustc::ty::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::instance_mir
  20: rustc_mir::monomorphize::collector::collect_items_rec
  21: rustc_mir::monomorphize::collector::collect_crate_mono_items
  22: rustc::util::common::time
  23: rustc_trans::base::collect_and_partition_translation_items
  24: rustc::dep_graph::graph::DepGraph::with_task_impl
  25: rustc_errors::Handler::track_diagnostics
  26: rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check
  27: rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::force
  28: rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::try_get
  29: rustc::ty::maps::TyCtxtAt::collect_and_partition_translation_items
  30: rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::collect_and_partition_translation_items
  31: rustc_trans::base::trans_crate
  32: <rustc_trans::LlvmTransCrate as rustc_trans_utils::trans_crate::TransCrate>::trans_crate
  33: rustc_driver::driver::phase_4_translate_to_llvm
  34: rustc_driver::driver::compile_input::{{closure}}
  35: <std::thread::local::LocalKey<T>>::with
  36: <std::thread::local::LocalKey<T>>::with
  37: rustc::ty::context::TyCtxt::create_and_enter
  38: rustc_driver::driver::compile_input
  39: rustc_driver::run_compiler

Activity

  1. dcarosone commented on Dec 29, 2017

    @dcarosone
    Contributor

    Same here. First time trying to follow @japaric's cortex-m-quickstart instructions, using blue pill board support crate.

    Only difference I can spot in the error or trace is the [ca5c] which I assume isn't significant

    error: internal compiler error: /checkout/src/librustc_metadata/cstore_impl.rs:131: get_optimized_mir: missing MIR for `DefId(7/0:8 ~ cortex_m_rt[ca5c]::lang_items[0]::start[0])`
    
  2. clebi commented on Dec 29, 2017

    @clebi

    Same here, trying to build for arm target using xargo.

    error: internal compiler error: /checkout/src/librustc_metadata/cstore_impl.rs:131: get_optimized_mir: missing MIR for `DefId(13/0:8 ~ cortex_m_rt[3291]::lang_items[0]::start[0])`
    
    note: the compiler unexpectedly panicked. this is a bug.
    
    note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
    
    note: rustc 1.24.0-nightly (77e189cd7 2017-12-28) running on x86_64-unknown-linux-gnu
    
    note: run with `RUST_BACKTRACE=1` for a backtrace
    
    thread 'rustc' panicked at 'Box<Any>', /checkout/src/librustc_errors/lib.rs:504:9
    stack backtrace:
       0:     0x7f2bb89b495b - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h58dc6be9d3517912
                                   at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
       1:     0x7f2bb89c354e - std::sys_common::backtrace::print::h29d8edc66d88ad72
                                   at /checkout/src/libstd/sys_common/backtrace.rs:68
                                   at /checkout/src/libstd/sys_common/backtrace.rs:57
       2:     0x7f2bb89a03e0 - std::panicking::default_hook::{{closure}}::hfc8c846278172641
                                   at /checkout/src/libstd/panicking.rs:381
       3:     0x7f2bb899fea3 - std::panicking::default_hook::hba0a5113d76f0fa6
                                   at /checkout/src/libstd/panicking.rs:391
       4:     0x7f2bb89a082b - std::panicking::rust_panic_with_hook::h8690e2643e90ef26
                                   at /checkout/src/libstd/panicking.rs:577
       5:     0x7f2bb329af67 - std::panicking::begin_panic::h31285b5ad3eb8eaf
       6:     0x7f2bb32b5902 - rustc_errors::Handler::bug::hb4ef7d63515eff21
       7:     0x7f2bb485499f - <std::thread::local::LocalKey<T>>::with::h635a9a1ceefb00fe
       8:     0x7f2bb4c04c1e - rustc::ty::context::tls::with_opt::h62c3add116bd9642
       9:     0x7f2bb4781107 - rustc::session::opt_span_bug_fmt::h594c3e3c121b3419
      10:     0x7f2bb4781016 - rustc::session::bug_fmt::h0d1440e338bbde3b
      11:     0x7f2bb5ee5392 - rustc_metadata::cstore_impl::provide_extern::optimized_mir::h25d1820ce5ffc061
      12:     0x7f2bb4a975e8 - rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::compute_result::hb17cf840f9f4cc25
      13:     0x7f2bb4a29069 - rustc::dep_graph::graph::DepGraph::with_task_impl::h94d90dae298db672
      14:     0x7f2bb471eb44 - rustc_errors::Handler::track_diagnostics::h661d6986824d5c9d
      15:     0x7f2bb46348c0 - rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check::hd2551a3bd0af1a7b
      16:     0x7f2bb4a9767e - rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::force::hb6daafdcc2e05d69
      17:     0x7f2bb4a97c56 - rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::try_get::hc746a2e57645cf36
      18:     0x7f2bb48e255a - rustc::ty::maps::TyCtxtAt::optimized_mir::h9710497377fc8934
      19:     0x7f2bb4654b2d - rustc::ty::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::instance_mir::ha6385a0aa2455c50
      20:     0x7f2bb6824300 - rustc_mir::monomorphize::collector::collect_items_rec::h67f6fdaf9ed9cb2b
      21:     0x7f2bb6823592 - rustc_mir::monomorphize::collector::collect_crate_mono_items::hf943e91c30a94df9
      22:     0x7f2bb72f097f - rustc::util::common::time::h379648ffbdb5d77f
      23:     0x7f2bb721aa90 - rustc_trans::base::collect_and_partition_translation_items::h1e7385a3d1cc61e4
      24:     0x7f2bb4a1667b - rustc::dep_graph::graph::DepGraph::with_task_impl::h557daa864f7c9d1c
      25:     0x7f2bb471cdd8 - rustc_errors::Handler::track_diagnostics::h5ce7f89b36296f3d
      26:     0x7f2bb4614f80 - rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check::h6a96c5b1186725a2
      27:     0x7f2bb4b1552f - rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::force::h7f7499cd178b6b3d
      28:     0x7f2bb4b15ba9 - rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::try_get::h8a6715c7eb0728b5
      29:     0x7f2bb48e7e47 - rustc::ty::maps::TyCtxtAt::collect_and_partition_translation_items::h8066b288e16cb5d6
      30:     0x7f2bb465aabe - rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::collect_and_partition_translation_items::h096e492b267cbab4
      31:     0x7f2bb7218a1e - rustc_trans::base::trans_crate::h7d473add94b2acd7
      32:     0x7f2bb72ac056 - <rustc_trans::LlvmTransCrate as rustc_trans_utils::trans_crate::TransCrate>::trans_crate::h9fc545c25180f5cb
      33:     0x7f2bb8da002d - rustc_driver::driver::phase_4_translate_to_llvm::h614a8de0fa0ddf86
      34:     0x7f2bb8de5bd6 - rustc_driver::driver::compile_input::{{closure}}::hc5b2c7178e0ac454
      35:     0x7f2bb8ddffaa - <std::thread::local::LocalKey<T>>::with::hbc92eac846a79418
      36:     0x7f2bb8ddf026 - <std::thread::local::LocalKey<T>>::with::haec87e0ca22b1895
      37:     0x7f2bb8e37b37 - rustc::ty::context::TyCtxt::create_and_enter::hd132f21621a44eea
      38:     0x7f2bb8d9566a - rustc_driver::driver::compile_input::h0e2327ce8f4bed35
      39:     0x7f2bb8e0a6d0 - rustc_driver::run_compiler::h2be3ed19babed634
      40:     0x7f2bb8d4fda1 - std::sys_common::backtrace::__rust_begin_short_backtrace::h07cdf0f93e07309f
      41:     0x7f2bb89ebbde - __rust_maybe_catch_panic
                                   at /checkout/src/libpanic_unwind/lib.rs:101
      42:     0x7f2bb8d27792 - <F as alloc::boxed::FnBox<A>>::call_box::hccc20201a46480bd
      43:     0x7f2bb89c5e17 - std::sys_common::thread::start_thread::hce669877621f6bd9
                                   at /checkout/src/liballoc/boxed.rs:827
                                   at /checkout/src/libstd/sys_common/thread.rs:24
      44:     0x7f2bb89ca228 - std::sys::unix::thread::Thread::new::thread_start::h4be0de3ec68d7d44
                                   at /checkout/src/libstd/sys/unix/thread.rs:90
      45:     0x7f2bb29e8618 - start_thread
      46:     0x7f2bb868a8be - __GI___clone
      47:                0x0 - <unknown>
    
  3. japaric commented on Dec 29, 2017

    @japaric
    Contributor

    I think this is breakage caused by the new Termination trait stuff (cf. #46479) and has nothing to do with Xargo.

    Minimal repro:

    // foo/src/lib.rs
    #![feature(lang_items)]
    #![no_std]
    
    #[lang = "eh_personality"]
    fn eh_personality() {}
    
    #[lang = "panic_fmt"]
    fn panic_fmt() {}
    
    #[lang = "start"]
    extern "C" fn start(main: fn(), _argc: isize, _argv: *const *const u8) -> isize {
        main();
    
        0
    }
    // bar/src/main.rs
    #![no_std]
    
    extern crate foo;
    
    fn main() {}
    $ cd bar
    
    $ tail Cargo.toml
    [dependencies]
    foo = { path = "../foo" }
    
    $ cargo build
       Compiling bar v0.1.0 (file:///home/japaric/tmp/bar)
    error: internal compiler error: /checkout/src/librustc_metadata/cstore_impl.rs:131: get_optimized_mir: missing MIR for `DefId(2/0:5 ~ foo[128e]::start[0])`
    
    note: the compiler unexpectedly panicked. this is a bug.
    
    note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
    
    note: rustc 1.24.0-nightly (77e189cd7 2017-12-28) running on x86_64-unknown-linux-gnu
    
    thread 'rustc' panicked at 'Box<Any>', /checkout/src/librustc_errors/lib.rs:504:9
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    error: Could not compile `bar`.
    
    To learn more, run the command again with --verbose.

    The error here is that the signature of the start function has to change to include the Termination trait but the compiler is ICE-ing instead of showing a meaningful error. In general error messages related to lang items are not in good shape, due to them being unstable, and improving them is not a priority atm afaik.

  4. japaric commented on Dec 29, 2017

    @japaric
    Contributor

    Off-topic for the actual rustc issue but related to the sympton reported by the OP: The people that have been experiencing the ICE with the cortex-m-quickstart Cargo template and/or with the cortex-m-rt dependency should switch to version v0.3.8 of cortex-m-rt. The ICE should be gone when using that version. Calling cargo update or rm Cargo.lock should do the trick.

  5. rnestler commented on Dec 29, 2017

    @rnestler
    ContributorAuthor

    Hmm with the latest nightly and updated cortex-m-rt crate I get a segmentation fault from rustc! (In the LLVM parts, so I guess it's not Rusts fault 😉)

    Starting program: /home/roughl/.cargo/bin/rustc --crate-name water_sensor_firmware src/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto -C debuginfo=2 -C metadata=f52654b5cf7ba5eb -C extra-filename=-f52654b5cf7ba5eb --out-dir /home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps --target thumbv6m-none-eabi -L dependency=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps -L dependency=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/release/deps --extern cortex_m_semihosting=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps/libcortex_m_semihosting-d4bd87d810ba6491.rlib --extern lpc11uxx=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps/liblpc11uxx-12094799941f5318.rlib --extern cortex_m_rt=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps/libcortex_m_rt-60430ea2cdd7c81a.rlib --extern cortex_m=/home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/deps/libcortex_m-8bf6d3b61cf96d39.rlib -C link-arg=-Tlink.x -C linker=arm-none-eabi-ld -Z linker-flavor=ld --sysroot /home/roughl/.xargo -L /home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/build/water-sensor-firmware-5dc893357f99df90/out -L /home/roughl/proggen/projects/coredump/water-sensor/water-sensor-firmware-rs/target/thumbv6m-none-eabi/release/build/cortex-m-rt-d65db69c9e56ca7e/out
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    process 26084 is executing new program: /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    [New Thread 0x7fffecfff700 (LWP 26088)]
    warning: unused `#[macro_use]` import
     --> src/main.rs:5:1
      |
    5 | #[macro_use]
      | ^^^^^^^^^^^^
      |
      = note: #[warn(unused_imports)] on by default
    
    warning: unused import: `cortex_m_semihosting::hio`
      --> src/main.rs:14:5
       |
    14 | use cortex_m_semihosting::hio;
       |     ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    [New Thread 0x7fffe83ff700 (LWP 26089)]
    [New Thread 0x7fffe7dff700 (LWP 26090)]
    [New Thread 0x7fffe77ff700 (LWP 26091)]
    [Thread 0x7fffe77ff700 (LWP 26091) exited]
    [New Thread 0x7fffe77ff700 (LWP 26092)]
    [New Thread 0x7fffe6fff700 (LWP 26093)]
    [New Thread 0x7fffe69ff700 (LWP 26094)]
    [New Thread 0x7fffe63ff700 (LWP 26095)]
    [New Thread 0x7fffe5dff700 (LWP 26096)]
    [Thread 0x7fffe63ff700 (LWP 26095) exited]
    [Thread 0x7fffe5dff700 (LWP 26096) exited]
    [Thread 0x7fffe69ff700 (LWP 26094) exited]
    [Thread 0x7fffe6fff700 (LWP 26093) exited]
    [Thread 0x7fffe77ff700 (LWP 26092) exited]
    [New Thread 0x7fffe77ff700 (LWP 26097)]
    [New Thread 0x7fffe6fff700 (LWP 26098)]
    [New Thread 0x7fffe5dff700 (LWP 26099)]
    [New Thread 0x7fffe69ff700 (LWP 26100)]
    [New Thread 0x7fffe63ff700 (LWP 26101)]
    [New Thread 0x7fffe53ff700 (LWP 26102)]
    [New Thread 0x7fffe51fe700 (LWP 26103)]
    [New Thread 0x7fffe4bff700 (LWP 26104)]
    [New Thread 0x7fffe43ff700 (LWP 26105)]
    [New Thread 0x7fffe35ff700 (LWP 26106)]
    [New Thread 0x7fffe27ff700 (LWP 26107)]
    [New Thread 0x7fffe1fff700 (LWP 26108)]
    [Thread 0x7fffe63ff700 (LWP 26101) exited]
    [New Thread 0x7fffe63ff700 (LWP 26109)]
    [Thread 0x7fffe51fe700 (LWP 26103) exited]
    [New Thread 0x7fffe51fe700 (LWP 26110)]
    [New Thread 0x7fffe17ff700 (LWP 26111)]
    [Thread 0x7fffe5dff700 (LWP 26099) exited]
    [New Thread 0x7fffe5dff700 (LWP 26112)]
    [New Thread 0x7fffe0fff700 (LWP 26113)]
    [New Thread 0x7fffe09ff700 (LWP 26114)]
    [Thread 0x7fffe4bff700 (LWP 26104) exited]
    [New Thread 0x7fffe4bff700 (LWP 26115)]
    [Thread 0x7fffe77ff700 (LWP 26097) exited]
    [New Thread 0x7fffe77ff700 (LWP 26116)]
    [Thread 0x7fffe43ff700 (LWP 26105) exited]
    [Thread 0x7fffe69ff700 (LWP 26100) exited]
    [Thread 0x7fffe6fff700 (LWP 26098) exited]
    [New Thread 0x7fffe6fff700 (LWP 26117)]
    [Thread 0x7fffe53ff700 (LWP 26102) exited]
    [New Thread 0x7fffe53ff700 (LWP 26118)]
    [Thread 0x7fffe35ff700 (LWP 26106) exited]
    [New Thread 0x7fffe35ff700 (LWP 26119)]
    [New Thread 0x7fffe69ff700 (LWP 26120)]
    [New Thread 0x7fffe43ff700 (LWP 26121)]
    [Thread 0x7fffe0fff700 (LWP 26113) exited]
    [New Thread 0x7fffdfdff700 (LWP 26122)]
    [Thread 0x7fffe27ff700 (LWP 26107) exited]
    [New Thread 0x7fffe27ff700 (LWP 26123)]
    [Thread 0x7fffe69ff700 (LWP 26120) exited]
    [Thread 0x7fffe5dff700 (LWP 26112) exited]
    [Thread 0x7fffe17ff700 (LWP 26111) exited]
    [Thread 0x7fffe51fe700 (LWP 26110) exited]
    [New Thread 0x7fffe69ff700 (LWP 26124)]
    [Thread 0x7fffe53ff700 (LWP 26118) exited]
    [New Thread 0x7fffe53ff700 (LWP 26125)]
    [Thread 0x7fffe6fff700 (LWP 26117) exited]
    [New Thread 0x7fffe6fff700 (LWP 26126)]
    [Thread 0x7fffe63ff700 (LWP 26109) exited]
    [New Thread 0x7fffe63ff700 (LWP 26127)]
    [New Thread 0x7fffe51fe700 (LWP 26128)]
    [New Thread 0x7fffe17ff700 (LWP 26129)]
    [Thread 0x7fffe35ff700 (LWP 26119) exited]
    [New Thread 0x7fffe35ff700 (LWP 26130)]
    [New Thread 0x7fffe5dff700 (LWP 26131)]
    [Thread 0x7fffe69ff700 (LWP 26124) exited]
    [Thread 0x7fffe27ff700 (LWP 26123) exited]
    [Thread 0x7fffe43ff700 (LWP 26121) exited]
    [New Thread 0x7fffe69ff700 (LWP 26132)]
    [Thread 0x7fffe4bff700 (LWP 26115) exited]
    [New Thread 0x7fffe4bff700 (LWP 26133)]
    [Thread 0x7fffe63ff700 (LWP 26127) exited]
    [Thread 0x7fffe09ff700 (LWP 26114) exited]
    [New Thread 0x7fffe09ff700 (LWP 26134)]
    [Thread 0x7fffe51fe700 (LWP 26128) exited]
    [New Thread 0x7fffe51fe700 (LWP 26135)]
    [New Thread 0x7fffe63ff700 (LWP 26136)]
    [Thread 0x7fffe1fff700 (LWP 26108) exited]
    [New Thread 0x7fffe1fff700 (LWP 26137)]
    [New Thread 0x7fffe43ff700 (LWP 26138)]
    [Thread 0x7fffe63ff700 (LWP 26136) exited]
    [Thread 0x7fffe17ff700 (LWP 26129) exited]
    [Thread 0x7fffdfdff700 (LWP 26122) exited]
    [Thread 0x7fffe77ff700 (LWP 26116) exited]
    [New Thread 0x7fffdfdff700 (LWP 26139)]
    [Thread 0x7fffe43ff700 (LWP 26138) exited]
    [Thread 0x7fffe1fff700 (LWP 26137) exited]
    [Thread 0x7fffe51fe700 (LWP 26135) exited]
    [Thread 0x7fffe09ff700 (LWP 26134) exited]
    [Thread 0x7fffe4bff700 (LWP 26133) exited]
    [Thread 0x7fffe69ff700 (LWP 26132) exited]
    [Thread 0x7fffe53ff700 (LWP 26125) exited]
    [New Thread 0x7fffe4bff700 (LWP 26140)]
    [New Thread 0x7fffe51fe700 (LWP 26141)]
    [New Thread 0x7fffe09ff700 (LWP 26142)]
    [Thread 0x7fffe6fff700 (LWP 26126) exited]
    [New Thread 0x7fffe6fff700 (LWP 26143)]
    [Thread 0x7fffe09ff700 (LWP 26142) exited]
    [Thread 0x7fffe51fe700 (LWP 26141) exited]
    [Thread 0x7fffe4bff700 (LWP 26140) exited]
    [New Thread 0x7fffe51fe700 (LWP 26144)]
    [New Thread 0x7fffe4bff700 (LWP 26145)]
    [New Thread 0x7fffe09ff700 (LWP 26146)]
    [New Thread 0x7fffe43ff700 (LWP 26147)]
    [Thread 0x7fffe09ff700 (LWP 26146) exited]
    [New Thread 0x7fffe09ff700 (LWP 26148)]
    [New Thread 0x7fffe69ff700 (LWP 26149)]
    [Thread 0x7fffe4bff700 (LWP 26145) exited]
    [Thread 0x7fffe51fe700 (LWP 26144) exited]
    [Thread 0x7fffe6fff700 (LWP 26143) exited]
    [New Thread 0x7fffe4bff700 (LWP 26150)]
    [New Thread 0x7fffe51fe700 (LWP 26151)]
    [New Thread 0x7fffe6fff700 (LWP 26152)]
    [Thread 0x7fffe51fe700 (LWP 26151) exited]
    [Thread 0x7fffe4bff700 (LWP 26150) exited]
    [Thread 0x7fffe69ff700 (LWP 26149) exited]
    [Thread 0x7fffe09ff700 (LWP 26148) exited]
    [Thread 0x7fffe43ff700 (LWP 26147) exited]
    [Thread 0x7fffdfdff700 (LWP 26139) exited]
    [Thread 0x7fffe5dff700 (LWP 26131) exited]
    [New Thread 0x7fffe4bff700 (LWP 26153)]
    [New Thread 0x7fffe51fe700 (LWP 26154)]
    [New Thread 0x7fffdfdff700 (LWP 26155)]
    [New Thread 0x7fffe69ff700 (LWP 26156)]
    [New Thread 0x7fffe43ff700 (LWP 26157)]
    [Thread 0x7fffdfdff700 (LWP 26155) exited]
    [Thread 0x7fffe51fe700 (LWP 26154) exited]
    [Thread 0x7fffe69ff700 (LWP 26156) exited]
    [Thread 0x7fffe43ff700 (LWP 26157) exited]
    [Thread 0x7fffe4bff700 (LWP 26153) exited]
    [Thread 0x7fffe6fff700 (LWP 26152) exited]
    
    Thread 44 "rustc" received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fffe35ff700 (LWP 26130)]
    0x00007fffef47f813 in (anonymous namespace)::AddressingModeMatcher::matchOperationAddr(llvm::User*, unsigned int, unsigned int, bool*) [clone .part.974] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    (gdb) bt
    #0  0x00007fffef47f813 in (anonymous namespace)::AddressingModeMatcher::matchOperationAddr(llvm::User*, unsigned int, unsigned int, bool*) [clone .part.974] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #1  0x00007fffef47fc7a in (anonymous namespace)::AddressingModeMatcher::matchAddr(llvm::Value*, unsigned int) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #2  0x00007fffef483c69 in (anonymous namespace)::CodeGenPrepare::optimizeMemoryInst(llvm::Instruction*, llvm::Value*, llvm::Type*, unsigned int) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #3  0x00007fffef484ff5 in (anonymous namespace)::CodeGenPrepare::optimizeInst(llvm::Instruction*, bool&) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #4  0x00007fffef487bdf in (anonymous namespace)::CodeGenPrepare::runOnFunction(llvm::Function&) [clone .part.1001] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #5  0x00007fffefc6edea in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #6  0x00007fffefc6ee83 in llvm::FPPassManager::runOnModule(llvm::Module&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #7  0x00007fffefc6f7f0 in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #8  0x00007fffee6dfc47 in LLVMRustWriteOutputFile () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-c09101ffce2aa427.so
    #9  0x00007ffff5fb3276 in rustc_trans::back::write::write_output_file () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #10 0x00007ffff5fe9254 in rustc_trans::back::write::codegen::{{closure}} () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #11 0x00007ffff5fe3339 in rustc::util::common::time () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #12 0x00007ffff5fb5355 in rustc_trans::back::write::codegen () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #13 0x00007ffff5fa7ab3 in std::sys_common::backtrace::__rust_begin_short_backtrace () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #14 0x00007ffff5faa908 in std::panicking::try::do_call () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #15 0x00007ffff76b3bdf in __rust_maybe_catch_panic () at /checkout/src/libpanic_unwind/lib.rs:101
    #16 0x00007ffff5fb1b3b in <F as alloc::boxed::FnBox<A>>::call_box () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-a5f63655b1c9a5ed.so
    #17 0x00007ffff768de18 in _$LT$alloc..boxed..Box$LT$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h0ba846e0a948eb30 ()
        at /checkout/src/liballoc/boxed.rs:827
    #18 std::sys_common::thread::start_thread () at /checkout/src/libstd/sys_common/thread.rs:24
    #19 0x00007ffff7692229 in std::sys::unix::thread::Thread::new::thread_start () at /checkout/src/libstd/sys/unix/thread.rs:90
    #20 0x00007ffff16dc08a in start_thread () from /usr/lib/libpthread.so.0
    #21 0x00007ffff735c42f in clone () from /usr/lib/libc.so.6
    
  6. sfackler commented on Dec 30, 2017

    @sfackler
    Member

    Segfaults inside of LLVM are actually often rustc's fault. It'll happen if you feed it invalid data and have it built with assertions disabled.

  7. dcarosone commented on Jan 2, 2018

    @dcarosone
    Contributor

    With rustc 1.24.0-nightly (b65f0be 2018-01-01) I no longer get the segfault either

  8. rnestler commented on Jan 15, 2018

    @rnestler
    ContributorAuthor

    I still get a segfault with rustc 1.25.0-nightly (3f92e8d 2018-01-14)

    Thread 44 "rustc" received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fffe63ff700 (LWP 4960)]
    0x00007fffef451493 in (anonymous namespace)::AddressingModeMatcher::matchOperationAddr(llvm::User*, unsigned int, unsigned int, bool*) [clone .part.974] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    (gdb) bt
    #0  0x00007fffef451493 in (anonymous namespace)::AddressingModeMatcher::matchOperationAddr(llvm::User*, unsigned int, unsigned int, bool*) [clone .part.974] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #1  0x00007fffef4518fa in (anonymous namespace)::AddressingModeMatcher::matchAddr(llvm::Value*, unsigned int) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #2  0x00007fffef4558e9 in (anonymous namespace)::CodeGenPrepare::optimizeMemoryInst(llvm::Instruction*, llvm::Value*, llvm::Type*, unsigned int) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #3  0x00007fffef456c75 in (anonymous namespace)::CodeGenPrepare::optimizeInst(llvm::Instruction*, bool&) ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #4  0x00007fffef45985f in (anonymous namespace)::CodeGenPrepare::runOnFunction(llvm::Function&) [clone .part.1001] ()
       from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #5  0x00007fffefc40a6a in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #6  0x00007fffefc40b03 in llvm::FPPassManager::runOnModule(llvm::Module&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #7  0x00007fffefc41470 in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #8  0x00007fffee6b1927 in LLVMRustWriteOutputFile () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/../lib/librustc_llvm-6d0682d527efa802.so
    #9  0x00007ffff6d3b906 in rustc_trans::back::write::write_output_file () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #10 0x00007ffff6d3e8a0 in rustc_trans::back::write::codegen::{{closure}} () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #11 0x00007ffff6d3d9e4 in rustc_trans::back::write::codegen () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #12 0x00007ffff6d28d98 in std::sys_common::backtrace::__rust_begin_short_backtrace () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #13 0x00007ffff6d2bd38 in std::panicking::try::do_call () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #14 0x00007ffff76a96ff in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
    #15 0x00007ffff6d3665b in <F as alloc::boxed::FnBox<A>>::call_box () from /home/roughl/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/../lib/../lib/librustc_trans-e8e6d6e4056c58ff.so
    #16 0x00007ffff767e6f8 in _$LT$alloc..boxed..Box$LT$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::hecde7ab682048b67 ()
        at /checkout/src/liballoc/boxed.rs:827
    #17 std::sys_common::thread::start_thread () at libstd/sys_common/thread.rs:24
    #18 0x00007ffff7687cc9 in std::sys::unix::thread::Thread::new::thread_start () at libstd/sys/unix/thread.rs:90
    #19 0x00007ffff16ae08c in start_thread () from /usr/lib/libpthread.so.0
    #20 0x00007ffff7351e1f in clone () from /usr/lib/libc.so.6
    
  9. added
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    A-crossArea: Cross compilation
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    C-bugCategory: This is a bug.
    on Jan 30, 2018
  10. canarysnort01 commented on Feb 17, 2018

    @canarysnort01
    Contributor

    I encountered this problem in #48119. I worked around the LLVM assert by making my lang_start function signature match the one in the standard library (returns an isize not !), which is different than the example in RFC 1937.

  11. added
    A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html
    on Oct 22, 2020
  12. camelid commented on Oct 22, 2020

    @camelid
    Member

    ping from triage: Status?

  13. rnestler commented on Jan 7, 2021

    @rnestler
    ContributorAuthor

    ping from triage: Status?

    Well this is a pretty old bug and I'm not sure if it is worth to try and reproduce, since xargo isn't actively developed anymore.

  14. Dylan-DPC commented on Nov 1, 2022

    @Dylan-DPC
    Member

    Closing this as it is an old issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-MIRArea: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlA-crossArea: Cross compilationC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions