Bug ID | 1162283 |
---|---|
Summary | rust emits SSE2 for i586 (SIGILL) |
Classification | openSUSE |
Product | openSUSE Tumbleweed |
Version | Current |
Hardware | i586 |
OS | Linux |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Development |
Assignee | luke@ljones.dev |
Reporter | jengelh@inai.de |
QA Contact | qa-bugs@suse.de |
CC | aplanas@suse.com, dimstar@opensuse.org |
Found By | --- |
Blocker | --- |
AFAICS, not the same as bug #1077870 but similar in spirit. A large part of an X desktop is unusable due to a crash caused by rust emitting SSE2 for the i586 target, causing a SIGILL crash in librsvg... so basically whenever something wants to display an SVG icon, which happens all the time I would argue. # gdb /usr/bin/xfce4-settings-manager Reading symbols from /usr/bin/xfce4-settings-manager... Reading symbols from /usr/lib/debug/usr/bin/xfce4-settings-manager-4.14.2-1.1.i386.debug... (gdb) r Starting program: /usr/bin/xfce4-settings-manager Missing separate debuginfos, use: zypper install glibc-debuginfo-2.30-2.2.i686 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". [New Thread 0xb6020b40 (LWP 6458)] [New Thread 0xb56ffb40 (LWP 6459)] [New Thread 0xb4868b40 (LWP 6460)] Thread 1 "xfce4-settings-" received signal SIGILL, Illegal instruction. 0xb3ea2a53 in <&str as std::ffi::c_str::CString::new::SpecIntoVec>::into_vec () from /usr/lib/librsvg-2.so.2 (gdb) bt #0 0xb3ea2a53 in <&str as std::ffi::c_str::CString::new::SpecIntoVec>::into_vec () from /usr/lib/librsvg-2.so.2 #1 0xb3dce649 in std::ffi::c_str::CString::new (t=...) at /home/abuild/rpmbuild/BUILD/rustc-1.40.0-src/src/libstd/ffi/c_str.rs:354 #2 glib::subclass::types::register_type () at /usr/src/debug/librsvg-2.46.4-0.i386/vendor/glib/src/subclass/types.rs:474 #3 0xb3ea9947 in std::sync::once::Once::call_inner () from /usr/lib/librsvg-2.so.2 #4 0xb3cff82b in rsvg_rust_handle_get_type () at /home/abuild/rpmbuild/BUILD/rustc-1.40.0-src/src/libstd/sync/once.rs:224 #5 0xb3cfceb4 in rsvg_handle_get_type () at librsvg/rsvg-handle.c:422 #6 0xb3cfdd25 in rsvg_handle_new () at librsvg/rsvg-handle.c:467 (gdb) disas Dump of assembler code for function _ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E: 0xb3ea29b0 <+0>: push %ebp 0xb3ea29b1 <+1>: push %ebx 0xb3ea29b2 <+2>: push %edi 0xb3ea29b3 <+3>: push %esi 0xb3ea29b4 <+4>: sub $0x2c,%esp 0xb3ea29b7 <+7>: mov 0x40(%esp),%edi 0xb3ea29bb <+11>: call 0xb3ea29c0 <_ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E+16> 0xb3ea29c0 <+16>: pop %ebx 0xb3ea29c1 <+17>: add $0x1c0640,%ebx 0xb3ea29c7 <+23>: mov %edi,%ebp 0xb3ea29c9 <+25>: inc %ebp 0xb3ea29ca <+26>: js 0xb3ea2a6c <_ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E+188> 0xb3ea29d0 <+32>: mov %ecx,%esi 0xb3ea29d2 <+34>: test %ebp,%ebp 0xb3ea29d4 <+36>: mov %edx,0x1c(%esp) 0xb3ea29d8 <+40>: je 0xb3ea29f4 <_ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E+68> 0xb3ea29da <+42>: mov %ebp,(%esp) 0xb3ea29dd <+45>: call 0xb3cfbd60 <malloc@plt> 0xb3ea29e2 <+50>: test %eax,%eax 0xb3ea29e4 <+52>: jne 0xb3ea29f9 <_ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E+73> 0xb3ea29e6 <+54>: mov %ebp,%ecx 0xb3ea29e8 <+56>: mov $0x1,%edx 0xb3ea29ed <+61>: call 0xb3d0ccb0 <_ZN5alloc5alloc18handle_alloc_error17haf41c57d90e6bc24E> 0xb3ea29f2 <+66>: ud2 0xb3ea29f4 <+68>: mov $0x1,%eax 0xb3ea29f9 <+73>: lea 0x20(%esp),%ecx 0xb3ea29fd <+77>: lea 0x10(%esp),%edx 0xb3ea2a01 <+81>: mov %eax,0x10(%esp) 0xb3ea2a05 <+85>: mov %ebp,0x14(%esp) 0xb3ea2a09 <+89>: movl $0x0,0x18(%esp) 0xb3ea2a11 <+97>: mov %edi,0x4(%esp) 0xb3ea2a15 <+101>: movl $0x1,0x8(%esp) 0xb3ea2a1d <+109>: movl $0x0,(%esp) 0xb3ea2a24 <+116>: call 0xb3ea4b20 <_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_internal17h6e3cd1f8aa0966f3E> 0xb3ea2a29 <+121>: cmpl $0x1,0x20(%esp) 0xb3ea2a2e <+126>: je 0xb3ea2a73 <_ZN70_$LT$$RF$str$u20$as$u20$std..ffi..c_str..CString..new..SpecIntoVec$GT$8into_vec17h099ffe789070d331E+195> 0xb3ea2a30 <+128>: mov 0x18(%esp),%eax 0xb3ea2a34 <+132>: mov %edi,0x8(%esp) 0xb3ea2a38 <+136>: lea (%eax,%edi,1),%ecx 0xb3ea2a3b <+139>: mov %ecx,0x18(%esp) 0xb3ea2a3f <+143>: mov 0x1c(%esp),%ecx 0xb3ea2a43 <+147>: add 0x10(%esp),%eax 0xb3ea2a47 <+151>: mov %ecx,0x4(%esp) 0xb3ea2a4b <+155>: mov %eax,(%esp) 0xb3ea2a4e <+158>: call 0xb3cfba20 <memcpy@plt> => 0xb3ea2a53 <+163>: movsd 0x10(%esp),%xmm0 0xb3ea2a59 <+169>: mov 0x18(%esp),%eax 0xb3ea2a5d <+173>: movsd %xmm0,(%esi) 0xb3ea2a61 <+177>: mov %eax,0x8(%esi) 0xb3ea2a64 <+180>: add $0x2c,%esp 0xb3ea2a67 <+183>: pop %esi 0xb3ea2a68 <+184>: pop %edi 0xb3ea2a69 <+185>: pop %ebx 0xb3ea2a6a <+186>: pop %ebp 0xb3ea2a6b <+187>: ret 0xb3ea2a6c <+188>: Dwarf Error: Cannot find DIE at 0x3f7e13 referenced from DIE at 0x3f8ba9 [in module /usr/lib/debug/usr/lib/librsvg-2.so.2.46.0-2.46.4-0.i386.debug] # lscpu Architecture: i686 CPU op-mode(s): 32-bit Byte Order: Little Endian Address sizes: 34 bits physical, 32 bits virtual CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 Vendor ID: AuthenticAMD CPU family: 6 Model: 8 Model name: AMD Athlon(tm) XP 2000+ Stepping: 0 CPU MHz: 1666.773 BogoMIPS: 3333.54 L1d cache: 64 KiB L1i cache: 64 KiB L2 cache: 256 KiB Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mm xext 3dnowext 3dnow cpuid 3dnowprefetch vmmcall Packages used: librsvg-2-2-2.46.4-0.i586.rpm that built with rust-1.40.