Bug#1003249: libqt5webenginecore5: i386 baseline violation

2022-01-09 Thread Dmitry Shachnev
Hi!

On Fri, Jan 07, 2022 at 12:58:50AM +0100, NoSSE2 wrote:
> Dear Maintainer,
>
> I tried to start Konqueror on a fresh install of Debian by typing konqueror
> into LXTerminal, it doesn't start, just crashes all the time.
>
> It violates the i386 baseline by using SSE2 unconditionally, even if the host
> CPU doesn't support it (tested on a downclocked Athlon XP).
>
> I suggest that https://wiki.debian.org/SIMDEverywhere might be helpful in
> developing a patch, if it isn't just a compiler flag fix.
>
> If this issue/bug is unfixable, the package should depend on package
> sse2-support (i386 only).

Yes, it is unfixable.

Qt WebEngine is based on Chromium which requires SSE2 since 2014 [1] and
SSE3 since version 89 (2020) [2][3].

Qt WebEngine 5.15 is based on Chromium 87 so it does not require SSE3 yet,
but definitely requires SSE2. I will add a dependency on sse2-support.

[1]: https://codereview.chromium.org/197403004
[2]: https://bugs.chromium.org/p/chromium/issues/detail?id=1123353
[3]: 
https://docs.google.com/document/d/1QUzL4MGNqX4wiLvukUwBf6FdCL35kCDoEJTm2wMkahw/edit?usp=sharing

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#1003249: libqt5webenginecore5: i386 baseline violation

2022-01-06 Thread NoSSE2
Package: libqt5webenginecore5
Version: 5.15.2+dfsg-3
Severity: important
X-Debbugs-Cc: karogyoker2+deb...@gmail.com

Dear Maintainer,

I tried to start Konqueror on a fresh install of Debian by typing konqueror
into LXTerminal, it doesn't start, just crashes all the time.

It violates the i386 baseline by using SSE2 unconditionally, even if the host
CPU doesn't support it (tested on a downclocked Athlon XP).

I suggest that https://wiki.debian.org/SIMDEverywhere might be helpful in
developing a patch, if it isn't just a compiler flag fix.

If this issue/bug is unfixable, the package should depend on package
sse2-support (i386 only).

It crashes right after start and produces the below stack trace:
Application: Konqueror (konqueror), signal: Illegal instruction

[KCrash Handler]
#5  0x9cd81d4f in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#6  0x9cd83a2a in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#7  0x9cdd10a2 in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#8  0x9cd8bad4 in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#9  0x9cd8bb42 in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#10 0x9add9357 in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#11 0x9addb634 in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#12 0x9ad94447 in
QtWebEngineCore::ProfileAdapter::createDefaultProfileAdapter() () from
/lib/i386-linux-gnu/libQt5WebEngineCore.so.5
#13 0xa1a51f8b in QWebEngineProfile::defaultProfile() () from /lib/i386-linux-
gnu/libQt5WebEngineWidgets.so.5
#14 0xa1a9d7ed in WebEnginePart::WebEnginePart(QWidget*, QObject*, QByteArray
const&, QStringList const&) () from /lib/i386-linux-gnu/libkwebenginepart.so
#15 0xa1b3f7b1 in ?? () from /usr/lib/i386-linux-
gnu/qt5/plugins/kf5/parts/webenginepart.so
#16 0xb7e3896e in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#17 0xb7e23fa9 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#18 0xb7e13131 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#19 0xb7e18d62 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#20 0xb7e1d2e6 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#21 0xb7e584d7 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#22 0xb7e5a724 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#23 0xb7e6c5d0 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#24 0xb7e84268 in ?? () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#25 0xb7e86ea3 in kdemain () from /lib/i386-linux-gnu/libkdeinit5_konqueror.so
#26 0x00466087 in ?? ()
#27 0xb7c09e46 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#28 0x004660d1 in _start ()
[Inferior 1 (process 15864) detached]

Running with gdb konqueror gives the below result:
Thread 1 "konqueror" received signal SIGILL, Illegal instruction.
0x9ce37d4f in ?? () from /lib/i386-linux-gnu/libQt5WebEngineCore.so.5
(gdb) set disassembly-flavor intel
(gdb) x/i $eip
=> 0x9ce37d4f:  movq   QWORD PTR [ebp-0x4c],xmm0

cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 6
model   : 10
model name  : AMD Athlon(tm)
stepping: 0
cpu MHz : 1143.871
cache size  : 512 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 apic sep mtrr pge mca cmov
pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow cpuid 3dnowprefetch
vmmcall
bugs: fxsave_leak sysret_ss_attrs spectre_v1 spectre_v2
spec_store_bypass
bogomips: 2287.74
clflush size: 32
cache_alignment : 32
address sizes   : 34 bits physical, 32 bits virtual
power management: ts

-- System Information:
Debian Release: 11.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500,
'stable')
Architecture: i386 (i686)

Kernel: Linux 5.10.0-10-686-pae (SMP w/1 CPU thread)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not
set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libqt5webenginecore5 depends on:
ii  libasound21.2.4-1.1
ii  libavcodec58  7:4.3.3-0+deb11u1
ii  libavformat58 7:4.3.3-0+deb11u1
ii  libavutil56   7:4.3.3-0+deb11u1
ii  libc6 2.31-13+deb11u2
ii  libdbus-1-3   1.12.20-2
ii  libevent-2.1-72.1.12-stable-1
ii  libexpat1 2.2.10-2
ii  libfontconfig12.13.1-4.2
ii  libfreetype6  2.10.4+dfsg-1
ii  libgcc-s1 10.2.1-6
ii  libharfbuzz0b 2.7.4-1
ii  libicu67