Skip to content

LLVM assertion hit when bootstrapping with a local rustc ("Invoking a function with bad signature")  #12115

Closed
@lucab

Description

@lucab

I'm currently trying to bootstrap current rust from a system-installed copy of itself, by doing firstly a normal installation and then the second one using --enable-local-rust. However the build fails on libstd, triggering a LLVM assertion in rustc. Both local-stage0 and source tree are at 548b8ce.

Build failure:

lucab@galatea:~/rust$ which rustc
/usr/local/bin/rustc
lucab@galatea:~/rust$ rustc -v
rustc 0.10-pre (548b8ce 2014-02-08 15:31:32 +0100)
host: x86_64-unknown-linux-gnu
lucab@galatea:~/rust$ ./configure --enable-local-rust --prefix=/usr
...
lucab@galatea:~/rust$ make VERBOSE=1
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling more debugging (CFG_ENABLE_DEBUG)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: using gcc
cfg: no pandoc found, omitting docs
cfg: no node found, omitting docs
cfg: no llnextgen found, omitting grammar-verification
MATCHES=""; if [ -n "$MATCHES" ] ; then echo "warning: removing previous" \'libstd-*.so\' "libraries:" $MATCHES; rm $MATCHES ; fi
MATCHES=""; if [ -n "$MATCHES" ] ; then echo "warning: removing previous" \'libstd-*.rlib\' "libraries:" $MATCHES; rm $MATCHES ; fi
x86_64-unknown-linux-gnu/stage0/bin/rustc --cfg stage0  -O --cfg rtopt --cfg debug -Z prefer-dynamic --target=x86_64-unknown-linux-gnu  -W warnings -L "x86_64-unknown-linux-gnu/rt" -L "/home/lucab/rust/x86_64-unknown-linux-gnu/llvm/Release+Asserts/lib" --out-dir x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib /home/lucab/rust/src/libstd/lib.rs
rustc: /home/lucab/rust/src/llvm/lib/IR/Instructions.cpp:544: void llvm::InvokeInst::init(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&): Assertion `((Args.size() == FTy->getNumParams()) || (FTy->isVarArg() && Args.size() > FTy->getNumParams())) && "Invoking a function with bad signature"' failed.
Aborted

Assertion backtrace:

Starting program: /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/rustc --cfg stage0 -O --cfg rtopt --cfg debug -Z prefer-dynamic --target=x86_64-unknown-linux-gnu -W warnings -L x86_64-unknown-linux-gnu/rt -L /home/lucab/rust/x86_64-unknown-linux-gnu/llvm/Release+Asserts/lib --out-dir x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib /home/lucab/rust/src/libstd/lib.rs
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7f82700 (LWP 30705)]
[New Thread 0x7ffff0598700 (LWP 30706)]
[New Thread 0x7ffff0497700 (LWP 30707)]
[New Thread 0x7ffff0396700 (LWP 30708)]
[New Thread 0x7fffeacec700 (LWP 30709)]
[New Thread 0x7fffea4eb700 (LWP 30710)]
[New Thread 0x7fffe9cea700 (LWP 30711)]
[New Thread 0x7fffe94e9700 (LWP 30712)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff7f82700 (LWP 30705)]
0x00007ffff1392475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
#0  0x00007ffff1392475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <optimized out>
        selftid = <optimized out>
#1  0x00007ffff13956f0 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0x7ffff43902b0, sa_sigaction = 0x7ffff43902b0}, sa_mask = {__val = {140737241599019, 140737152774736, 544, 
              140737152774976, 140737240658758, 206158430232, 140737152774992, 140737152774768, 140737240557112, 206158430256, 140737152775016, 225349584, 
              225349568, 10, 7017206802398410528, 140737488349126}}, sa_flags = -246764431, sa_restorer = 0x7ffff438fdd8}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff138b621 in *__GI___assert_fail (
    assertion=0x7ffff43902b0 "((Args.size() == FTy->getNumParams()) || (FTy->isVarArg() && Args.size() > FTy->getNumParams())) && \"Invoking a function with bad signature\"", file=<optimized out>, line=544, 
    function=0x7ffff4398ea0 "void llvm::InvokeInst::init(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)")
    at assert.c:81
        buf = 0xd6e8fd0 "rustc: /home/lucab/rust/src/llvm/lib/IR/Instructions.cpp:544: void llvm::InvokeInst::init(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&): Asserti"...
#3  0x00007ffff3a46b35 in llvm::InvokeInst::init (this=0xd6e8e00, Fn=0xd6db720, IfNormal=0xd6db860, IfException=0xd6db960, Args=..., NameStr=...)
    at /home/lucab/rust/src/llvm/lib/IR/Instructions.cpp:542
        __PRETTY_FUNCTION__ = "void llvm::InvokeInst::init(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&)"
        FTy = 0x8487290
#4  0x00007ffff2bf3e15 in llvm::InvokeInst::InvokeInst (this=0xd6e8e00, Func=0xd6db720, IfNormal=0xd6db860, IfException=0xd6db960, Args=..., Values=6, 
    NameStr=..., InsertBefore=0x0) at /home/lucab/rust/src/llvm/include/llvm/IR/Instructions.h:3081
No locals.
#5  0x00007ffff2bf3c6d in llvm::InvokeInst::Create (Func=0xd6db720, IfNormal=0xd6db860, IfException=0xd6db960, Args=..., NameStr=..., InsertBefore=0x0)
    at /home/lucab/rust/src/llvm/include/llvm/IR/Instructions.h:2883
        Values = 6
#6  0x00007ffff2bfd7ad in llvm::IRBuilder<true, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true> >::CreateInvoke (this=0x81e1430, Callee=0xd6db720, 
    NormalDest=0xd6db860, UnwindDest=0xd6db960, Args=..., Name=...) at /home/lucab/rust/src/llvm/include/llvm/IR/IRBuilder.h:579
No locals.
#7  0x00007ffff3998ff6 in LLVMBuildInvoke (B=0x81e1430, Fn=0xd6db720, Args=0xd6db5b0, NumArgs=3, Then=0xd6db860, Catch=0xd6db960, Name=0x7ffff3bcdc90 "")
    at /home/lucab/rust/src/llvm/lib/IR/Core.cpp:1976
No locals.
#8  0x00007ffff2087f64 in middle::trans::builder::Builder::invoke::h8b21487c25e1f39f6vaw::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#9  0x00007ffff208781e in middle::trans::build::Invoke::h33b75f77684e1c7caP::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#10 0x00007ffff1f75fd7 in middle::trans::base::invoke::h7b99a5d2ef6bce67aB::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#11 0x00007ffff1ff27b0 in middle::trans::callee::trans_call_inner::h65b762decf104040am::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#12 0x00007ffff1f65334 in middle::trans::callee::trans_lang_call::ha98dda63a8d04c9ca5::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#13 0x00007ffff202d0e0 in middle::trans::base::malloc_raw_dyn::h045498d24488489faN::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#14 0x00007ffff20a1993 in middle::trans::base::malloc_raw::h5a888fdf11d6a03aaT::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#15 0x00007ffff212008b in middle::trans::closure::allocate_cbox::hc22b01a365a948d1aB::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#16 0x00007ffff212051e in middle::trans::closure::store_environment::h80efec85b84d0169ad::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#17 0x00007ffff2121de9 in middle::trans::closure::build_closure::h92d3350bccfabdbfab::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#18 0x00007ffff20238a3 in middle::trans::closure::trans_expr_fn::he2ef742c7e1a5a71ad::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#19 0x00007ffff20027e1 in middle::trans::expr::trans_rvalue_dps_unadjusted::h71e2e1b92f9a2079aJ::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#20 0x00007ffff1f49df0 in middle::trans::expr::trans_into::h2bc8cbb134e2b361aA::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#21 0x00007ffff211a5fb in middle::trans::_match::store_local::anon::expr_fn::aF ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#22 0x00007ffff211a3ad in middle::trans::_match::mk_binding_alloca::h3196e78b09a11ce7aD::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#23 0x00007ffff20ad4a4 in middle::trans::_match::store_local::h536612f706bb496aaD::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#24 0x00007ffff1f4a1ef in middle::trans::base::init_local::hafbbd1d1a16c8c11al::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#25 0x00007ffff1f48aef in middle::trans::controlflow::trans_stmt::h9b036c36c2a4a8acaO::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#26 0x00007ffff1f4a8e7 in middle::trans::controlflow::trans_block::h6728809e1547fe5baP::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#27 0x00007ffff2000ff4 in middle::trans::expr::trans_rvalue_dps_unadjusted::h71e2e1b92f9a2079aJ::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#28 0x00007ffff1f49df0 in middle::trans::expr::trans_into::h2bc8cbb134e2b361aA::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#29 0x00007ffff211a5fb in middle::trans::_match::store_local::anon::expr_fn::aF ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#30 0x00007ffff211a3ad in middle::trans::_match::mk_binding_alloca::h3196e78b09a11ce7aD::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#31 0x00007ffff20ad4a4 in middle::trans::_match::store_local::h536612f706bb496aaD::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#32 0x00007ffff1f4a1ef in middle::trans::base::init_local::hafbbd1d1a16c8c11al::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#33 0x00007ffff1f48aef in middle::trans::controlflow::trans_stmt::h9b036c36c2a4a8acaO::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#34 0x00007ffff1f4a8e7 in middle::trans::controlflow::trans_block::h6728809e1547fe5baP::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#35 0x00007ffff20b6d0e in middle::trans::base::trans_closure::h1759f1814c6d2e76aP::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#36 0x00007ffff1ef869e in middle::trans::base::trans_fn::h6f0f174d360b610daK::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#37 0x00007ffff20bfb56 in middle::trans::meth::trans_impl::h730683530bb6e459ah::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#38 0x00007ffff1ef1b41 in middle::trans::base::trans_item::h4facb9b8ae69d25baJ::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#39 0x00007ffff20bfdd7 in middle::trans::base::trans_mod::h6e8f18b8ebac9ed9ak::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#40 0x00007ffff1ef12f0 in middle::trans::base::trans_item::h4facb9b8ae69d25baJ::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#41 0x00007ffff20bfdd7 in middle::trans::base::trans_mod::h6e8f18b8ebac9ed9ak::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#42 0x00007ffff20d683d in middle::trans::base::trans_crate::hfb08affed303adbfaH::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#43 0x00007ffff2b405b5 in driver::driver::phase_4_translate_to_llvm::anon::expr_fn::aW ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#44 0x00007ffff2b3fffd in util::common::time::h1fab99fadad0c8ffaQ::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#45 0x00007ffff2b3fe89 in driver::driver::phase_4_translate_to_llvm::h9d7a2f7f560a1fc8aj::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#46 0x00007ffff2b458a0 in driver::driver::compile_input::h9185223560d274d9a7::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#47 0x00007ffff2ba05e0 in run_compiler::h09797a414b183ccdaX::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#48 0x00007ffff2bb3425 in main_args::anon::expr_fn::aQ () from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#49 0x00007ffff2baf2e6 in monitor::anon::expr_fn::aF () from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#50 0x00007ffff2ba923d in task::TaskBuilder::try::anon::expr_fn::POaFab ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-0d83f02f-0.10-pre.so
No symbol table info available.
#51 0x00007ffff7305fe3 in task::__extensions__::build_start_wrapper::anon::anon::expr_fn::ap ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libgreen-80d9e76a-0.10-pre.so
No symbol table info available.
#52 0x00007ffff7639a2f in unstable::finally::Finally$$CLOSURE$::finally::ha36f8aa836360c9eQ2aO::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#53 0x00007ffff771accc in rt::task::__extensions__::run::anon::expr_fn::a5 ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#54 0x00007ffff772d338 in rt::unwind::Unwinder::try::try_fn::__rust_abi::mk ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#55 0x00007ffff772d202 in rt::unwind::Unwinder::try::try_fn::h9894487fcce78d78mkab::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#56 0x00007ffff77376ac in rust_try () from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#57 0x00007ffff771b680 in rt::unwind::Unwinder::try::hd640a244e2e9e8dbmkaj::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#58 0x00007ffff771ab96 in rt::task::Task::run::h4244ee88506b30cfUma2::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libstd-966edb7e-0.10-pre.so
No symbol table info available.
#59 0x00007ffff7305cbb in task::__extensions__::build_start_wrapper::anon::expr_fn::ah ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libgreen-80d9e76a-0.10-pre.so
No symbol table info available.
#60 0x00007ffff72e19c6 in context::Context::new::task_start_wrapper::__rust_abi::qv ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libgreen-80d9e76a-0.10-pre.so
No symbol table info available.
#61 0x00007ffff72e1963 in context::Context::new::task_start_wrapper::hd735b0bb41d8d6e5qvaz::v0.10.pre ()
   from /home/lucab/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libgreen-80d9e76a-0.10-pre.so
No symbol table info available.
#62 0x0000000000000000 in ?? ()
No symbol table info available.

System is an amd64 debian wheezy (stable 7.1), using gcc-4.7 and rust embedded LLVM copy. Is there any way to get more debug info on rust side?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions