On Sun, Mar 14, 2021 at 2:57 PM Riccardo Mottola <riccardo.mott...@libero.it> wrote: > > 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. Jeff