FS#49903 - [libtorrent-rasterbar] 1:1.1-2 includes -msse4.2 in pkg-config file

Attached to Project: Community Packages
Opened by Vladimir (plushka) - Friday, 01 July 2016, 08:25 GMT
Last edited by Eli Schwartz (eschwartz) - Monday, 01 January 2018, 03:44 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Felix Yan (felixonmars)
Architecture i686
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: qbittorrent (3.3.4-2 and 3.3.5-1) crashes when run. If I downgrade to qbittorrent-3.3.3-2-i686 and libtorrent-rasterbar-1:1.0.9-1-i686 everything works fine.

Additional info:
* package version(s)
* config and/or log files etc.

qbittorrent-3.3.5-1
libtorrent-rasterbar-1:1.1-2

journal:
systemd-coredump[3714]: Process 3711 (qbittorrent) of user 1000 dumped core.
Stack trace of thread 3711:
#0 0x00000000080fbcbf _ZN7QVectorIN3Log3MsgEE6appendERKS1_ (qbittorrent)
#1 0x00000000080fb62b _ZN6Logger10addMessageERK7QStringRKN3Log7MsgTypeE (qbittorrent)
#2 0x00000000080eece0 _ZN11ApplicationC1ERK7QStringRiPPc (qbittorrent)
#3 0x00000000080dfe87 main (qbittorrent)
#4 0x00000000b5bf1536 __libc_start_main (libc.so.6)
#5 0x00000000080e8b2c _start (qbittorrent)

gdb:
@(gdb) run
Starting program: /usr/bin/qbittorrent
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0xb35ffb40 (LWP 3765)]
Thread 1 "qbittorrent" received signal SIGILL, Illegal instruction.
0x080fbcbf in QVector<Log::Msg>::append(Log::Msg const&) ()
@(gdb) bt full
#0 0x080fbcbf in QVector<Log::Msg>::append(Log::Msg const&) ()
No symbol table info available.
#1 0x080fb62b in Logger::addMessage(QString const&, Log::MsgType const&) ()
No symbol table info available.
#2 0x080eece0 in Application::Application(QString const&, int&, char**) ()
No symbol table info available.
#3 0x080dfe87 in main ()
No symbol table info available.
@(gdb)

$ uname -a
Linux alizee 4.4.14-1-lts #1 SMP Fri Jun 24 22:05:25 CEST 2016 i686 GNU/Linux

$ cat /proc/cpuinfo
processor: 0
vendor_id: AuthenticAMD
cpu family: 6
model: 7
model name: AMD Duron(tm) processor
stepping: 0
cpu MHz: 1074.613
cache size: 64 KB
physical id: 0
siblings: 1
core id: 0
cpu cores: 1
apicid: 0
initial apicid: 0
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 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow 3dnowprefetch vmmcall
bugs: fxsave_leak sysret_ss_attrs
bogomips: 2149.22
clflush size: 32
cache_alignment: 32
address sizes: 34 bits physical, 32 bits virtual
power management: ts

Steps to reproduce:
$ qbittorrent
[1] 3711 illegal hardware instruction (core dumped) qbittorrent
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Monday, 01 January 2018, 03:44 GMT
Reason for closing:  Fixed
Additional comments about closing:  pkg-config file no longer contains -msse4.2
Comment by Cláudio Pereira (claudiop) - Saturday, 02 July 2016, 09:44 GMT
Can reproduce with an AMD E-350 also running the linux-lts kernel (x86_64 this time).
Exact same behavior.
Comment by Timothy Redaelli (tredaelli) - Saturday, 02 July 2016, 10:04 GMT
Does 3.3.4-1 works?
Comment by Timothy Redaelli (tredaelli) - Saturday, 02 July 2016, 10:10 GMT
Does it work by using linux (non-lts) kernel?
Comment by Vladimir (plushka) - Saturday, 02 July 2016, 11:20 GMT
I have no 3.3.4-1 package, but 3.3.4-2 does not works.
No, it does not works by using non-lts kernel:

$ uname -a
Linux alizee 4.6.3-1-ARCH #1 SMP PREEMPT Fri Jun 24 21:37:08 CEST 2016 i686 GNU/Linux

$ qbittorrent
[1] 788 illegal hardware instruction (core dumped) qbittorrent

in dmesg:
traps: qbittorrent[788] trap invalid opcode ip:80fbcbf sp:bfa2bb80 error:0 in qbittorrent[8048000+5cb000]
Comment by Jelle van der Waa (jelly) - Monday, 04 July 2016, 11:53 GMT
It seems that the qbittorent binary uses SSE2/3 instructions which your processor does not have. x86_64 always has SSE2/3 instructions. The pckage has to be fixed to support non -sse2/sse3 i686 cpu's

As can be seen by:
[jelle@jelle][/tmp/usr/bin]%objdump -d qbittorrent| grep xmm
80fadcd: f3 0f 7e 40 f0 movq -0x10(%eax),%xmm0
80fadd2: 66 0f d6 41 04 movq %xmm0,0x4(%ecx)
80fbc68: f3 0f 7e 49 04 movq 0x4(%ecx),%xmm1
Comment by Timothy Redaelli (tredaelli) - Monday, 04 July 2016, 12:17 GMT
The problem is not relates to qbittorrent, but to libtorrent-rasterbar.

If you see usr/lib/pkgconfig/libtorrent-rasterbar.pc from libtorrent-rasterbar-1:1.1-2-i686.pkg.tar.xz includes -msse4.2 that Duron doesn't support.
Reassigning to the corrent maintainer
Comment by nl6720 (nl6720) - Monday, 04 July 2016, 15:07 GMT
This was fixed in libtorrent git:
https://github.com/arvidn/libtorrent/commit/680eddf3d421f97ba01e8c162b263f31693ba352

Probably needs to be backported.
Comment by Vladimir (plushka) - Thursday, 21 July 2016, 20:38 GMT
I tested qbittorrent-3.3.6-1 + libtorrent-rasterbar-1:1.1-3.
It still crashes with the same errors.

Loading...