On Mar 6, 2021, at 2:33 PM, Riccardo Mottola <riccardo.mottola@libero.it> wrote:
I just tried VLC on a G5... it starts but as soon as I try to open a file, it dies "inside" the file selector! Not just a file, trying to click on my home directory, I get illegal instruction.ù
If I give it a MP4 on the command line, it will come up and then die with illegal instruction.
How does it work for you? and a G4? I will try there next week.
Please install the dbgsym/dbg package for VLC and ffmpeg and provide
a
backtrace.
Most likely someone added VSX support to either of them without
guarding the
code with #ifdefs.
Most likely someone added VSX support to either of them without guarding the code with #ifdefs.
the issue is most probably in libpcre2 or Qt5Core
#0 0x00007fffe9c5fa30 in ?? ()
#1 0x00007ffff02c406c in ?? () from /usr/lib/powerpc64-linux-gnu/libpcre2-16.so.0
#2 0x00007ffff02f3a38 in pcre2_jit_match_16 () from /usr/lib/powerpc64-linux-gnu/libpcre2-16.so.0
#3 0x00007ffff02f52b8 in pcre2_match_16 () from /usr/lib/powerpc64-linux-gnu/libpcre2-16.so.0
#4 0x00007ffff0ad0240 in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff0ad5a0c in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
[1] http://ftp.ports.debian.org/debian-ports/pool-ppc64/main/p/pcre2/
the issue is most probably in libpcre2 or Qt5Core
#0 0x00007fffe9c5fa30 in ?? ()
#1 0x00007ffff02c406c in ?? () from /usr/lib/powerpc64-linux-gnu/l ibpcre2-16.so.0
On Sunday, March 7, 2021, Riccardo Mottola <riccardo.mottola@libero.it> wrote:.
the issue is most probably in libpcre2 or Qt5Core
#0 0x00007fffe9c5fa30 in ?? ()
#1 0x00007ffff02c406c in ?? () from /usr/lib/powerpc64-linux-gnu/libpcre2-16.so.0
https://vcs.pcre.org/pcre2/code/trunk/src/sljit/sljitNativePPC_common.c?revision=1268&view=markup
*splutter* but... but... wow! that's amazing. pcre2 contains a JIT assembly compiler simply for the purposes of generating highly optimised regular expression parsing.
holy cow :)
chances are then that an instruction was added which is assumed to exist in OpenPOWER v3.0 but is not present in v2.06 (etc)
a cursory scan shows no evidence of the use of VSX there.
a cursory scan shows no evidence of the use of VSX there.
If needed... I believe it is possible to disable PCRE2's JIT at configure time.
On 3/8/21 9:38 AM, Jeffrey Walton wrote:
a cursory scan shows no evidence of the use of VSX there.
If needed... I believe it is possible to disable PCRE2's JIT at configure time.
We certainly shouldn't disable the whole JIT over a single instruction but rather
check whether this instruction can be guarded on older POWER systems.
But we need to find out first which instruction triggers the SIGILL.
We certainly shouldn't disable the whole JIT over a single instruction but rather
check whether this instruction can be guarded on older POWER systems.
But we need to find out first which instruction triggers the SIGILL.
On 3/8/21 9:49 AM, John Paul Adrian Glaubitz wrote:
We certainly shouldn't disable the whole JIT over a single instruction but rather
check whether this instruction can be guarded on older POWER systems.
But we need to find out first which instruction triggers the SIGILL.
Indeed, it crashes inside JIT, here the stacktrace:
#0 0x00007fffe9c5fa30 in ?? ()
#1 0x00007ffff02c406c in jit_machine_stack_exec (arguments=arguments@entry=0x7fffeb9a51d8,
executable_func=0x7fffe9c5fd00) at src/pcre2_jit_match.c:57
#2 0x00007ffff02f3a38 in pcre2_jit_match_16 (code=0x7fffec4392a0, subject=0x100165218,
length=<optimized out>, start_offset=<optimized out>,
options=<optimized out>,
match_data=0x7fffec3cd180, mcontext=<optimized out>) at src/pcre2_jit_match.c:168
#3 0x00007ffff02f52b8 in pcre2_match_16 (code=0x7fffec4392a0, subject=0x100165218, length=37,
start_offset=0, options=0, match_data=0x7fffec3cd180, mcontext=0x1001782c0) at src/pcre2_match.c:6345
#4 0x00007ffff0ad0240 in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff0ad5a0c in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#6 0x00007ffff0ad5ffc in .QRegularExpression::match(QString const&,
int, QRegularExpression::MatchType,
QFlags<QRegularExpression::MatchOption>) const () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#7 0x00007ffff1ee41fc in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#8 0x00007ffff1ee4fec in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#9 0x00007ffff1eeb6cc in ?? () from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff0ce1618 in .QMetaCallEvent::placeMetaCall(QObject*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff0ce7eec in .QObject::event(QEvent*) () from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff1eed8d8 in .QFileSystemModel::event(QEvent*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff1beb5f4 in .QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff1bf5c24 in .QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff0ca26bc in .QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff0ca2a54 in .QCoreApplication::sendEvent(QObject*, QEvent*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff0ca6e64 in .QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
from /usr/lib/powerpc64-linux-gnu/libQt5Core.so.5
(gdb) p local_stack
$1 = {top = 0x7fffeb9a5158 "", end = 0x7fffeb9a5158 "", start = 0x7fffeb99d158 "",
min_start = 0x7fffeb99d158 ""}
(gdb) p *arguments
$3 = {stack = 0x7fffeb99d138, str = 0x100165218, begin = 0x100165218,
end = 0x100165262,
match_data = 0x7fffec3cd180, startchar_ptr = 0x100165218, mark_ptr =
0x0, callout = 0x0,
callout_data = 0x0, offset_limit = 18446744073709551615, limit_match
= 10000000, oveccount = 2,
options =
You probably need to go to frame 1 ('f 1' under gdb) and disassemble
('disass .' or 'disass' followed by a bunch of pages). That will show
the offending instruction.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 292 |
Nodes: | 16 (2 / 14) |
Uptime: | 200:44:08 |
Calls: | 6,617 |
Calls today: | 1 |
Files: | 12,168 |
Messages: | 5,316,127 |