Skip to content

rustc crashing over illegal instruction #14441

Closed
@ebtaleb

Description

@ebtaleb

rustc killed by SIGILL. It is caused by a mfence instruction that belongs to the SSE2 instruction set. Sadly, my 10-year-old CPU does not support SSE2.


⇒  ./rustc -v 
rustc 0.11.0-pre-nightly (6b1426b 2014-05-25 01:11:19 -0700)
host: i686-unknown-linux-gnu

⇒  cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 6
model       : 10
model name  : AMD Sempron(tm)  3000+
stepping    : 0
cpu MHz     : 1991.380
cache size  : 512 KB
fdiv_bug    : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 1
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
bogomips    : 3982.76
clflush size    : 32
cache_alignment : 32
address sizes   : 34 bits physical, 32 bits virtual
power management: ts

⇒  cat hw.rs 
fn main() {
    println!("hello world!");
}

⇒  ./rustc hw.rs 
[1]    7033 illegal hardware instruction  ./rustc hw.rs

(gdb) run ~/hw.rs 
Starting program: /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/rustc ~/hw.rs
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xb3bff8c0 (LWP 3767)]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0xb3bff8c0 (LWP 3767)]
0xb7028bc0 in llvm::sys::MemoryFence() () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
(gdb) bt
#0  0xb7028bc0 in llvm::sys::MemoryFence() () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#1  0xb706011a in llvm::llvm_start_multithreaded() () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#2  0xb6ef6534 in LLVMStartMultithreaded () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#3  0xb58871fe in middle::trans::base::trans_crate::closure.62375 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#4  0xb4870316 in one::Once::doit::h9fe40ba418d51284ZIb::v0.11.0.pre () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/./libsync-305341d2-0.11.0-pre.so
#5  0xb588453c in middle::trans::base::trans_crate::hbc3d1a77adf07aac5gq::v0.11.0.pre ()
   from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#6  0xb60110e9 in driver::driver::phase_4_translate_to_llvm::h2915b3b27d3b85f7Zdk::v0.11.0.pre ()
   from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#7  0xb60080e8 in driver::driver::compile_input::hf0649dd005bd9326AVj::v0.11.0.pre () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#8  0xb60c937a in driver::run_compiler::h06f4471c3444d27fvym::v0.11.0.pre () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#9  0xb60c679c in driver::main_args::closure.93521 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#10 0xb60d9dfb in driver::monitor::closure.94592 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#11 0xb60d5706 in task::TaskBuilder::try::closure.94355 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/librustc-d252d482-0.11.0-pre.so
#12 0xb7faae28 in task::spawn_opts::closure.7802 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libnative-1fb5e2c0-0.11.0-pre.so
#13 0xb527eb19 in rt::task::Task::run::closure.25254 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libstd-59beb4f7-0.11.0-pre.so
#14 0xb5283e04 in rt::unwind::Unwinder::try::try_fn::hf1a154dc31c8998b5gy::v0.11.0.pre ()
   from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libstd-59beb4f7-0.11.0-pre.so
#15 0xb52e4603 in rust_try () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libstd-59beb4f7-0.11.0-pre.so
#16 0xb527ea7c in rt::task::Task::run::h01f4e25c4b3762751dw::v0.11.0.pre () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libstd-59beb4f7-0.11.0-pre.so
#17 0xb7faac89 in task::spawn_opts::closure.7774 () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libnative-1fb5e2c0-0.11.0-pre.so
#18 0xb528295c in rt::thread::thread_start::h9551b7fdc6124171zXw::v0.11.0.pre () from /home/jmbto/Desktop/rust-nightly-i686-unknown-linux-gnu/bin/../lib/libstd-59beb4f7-0.11.0-pre.so
#19 0xb4fdbed9 in start_thread (arg=0xb3bff8c0) at pthread_create.c:312
#20 0xb50dc2be in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

(gdb) x/i $eip
=> 0xb7028bc0 <_ZN4llvm3sys11MemoryFenceEv>:    mfence 

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions