Bug ID 931815
Summary qt5 apps crash when starting
Classification openSUSE
Product openSUSE Factory
Version 201505*
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component KDE4 Workspace
Assignee kde-maintainers@suse.de
Reporter jslaby@suse.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Whatever app which is now build against qt5 crashes when starting and loading
anything built against qt4.

An example is kdenlive. It is built against qt5:
$ ldd /usr/bin/kdenlive|grep -i qt.*core
        libQt5Core.so.5 => /usr/lib64/libQt5Core.so.5 (0x00007fe9dffe6000)

And it loads, using dlopen, mlt filters, /usr/lib64/frei0r-1/facebl0r.so in
particular. But that is built against qt4:
$ ldd /usr/lib64/frei0r-1/facebl0r.so|grep -i qt.*core
        libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007fd416431000)

So it just crashes with SIGSEGV.

This can be easily emulated:
$ export LD_PRELOAD="libQt5Core.so.5 /usr/lib64/frei0r-1/facebl0r.so"
$ /bin/true
SIGSEGV

Or by:
$ cat dlo.c
#include <dlfcn.h>

int main(void)
{
        dlopen("/usr/lib64/frei0r-1/facebl0r.so", RTLD_NOW);
        return 0;
}
$ cc -Wall -O2 -g    dlo.c  -ldl -o dlo
$ export LD_PRELOAD=" libQt5Core.so.5"
$ gdb ./dlo
...
(gdb) where
#0  QList (this=0x7fffee68f5d0 <QTest::testFunctions>) at
../../src/corelib/tools/qlist.h:121
#1  QStringList (this=0x7fffee68f5d0 <QTest::testFunctions>) at
../../src/corelib/tools/qstringlist.h:69
#2  __static_initialization_and_destruction_0 (__initialize_p=1,
__priority=65535) at qtestcase.cpp:1019
#3  _GLOBAL__sub_I_qtestcase.cpp(void) () at qtestcase.cpp:2312
#4  0x00007ffff7dea9fa in call_init (l=<optimized out>, argc=argc@entry=1,
argv=argv@entry=0x7fffffffdf08, 
    env=env@entry=0x7fffffffdf18) at dl-init.c:72
#5  0x00007ffff7deaae3 in call_init (env=0x7fffffffdf18, argv=0x7fffffffdf08,
argc=1, l=<optimized out>)
    at dl-init.c:30
#6  _dl_init (main_map=main_map@entry=0x613d10, argc=1, argv=0x7fffffffdf08,
env=0x7fffffffdf18) at dl-init.c:120
#7  0x00007ffff7deec65 in dl_open_worker (a=a@entry=0x7fffffffdbd8) at
dl-open.c:558
#8  0x00007ffff7dea8b4 in _dl_catch_error
(objname=objname@entry=0x7fffffffdbc8, 
    errstring=errstring@entry=0x7fffffffdbd0,
mallocedp=mallocedp@entry=0x7fffffffdbc7, 
    operate=operate@entry=0x7ffff7dee9a0 <dl_open_worker>,
args=args@entry=0x7fffffffdbd8) at dl-error.c:187
#9  0x00007ffff7dee46b in _dl_open (file=0x4006d8
"/usr/lib64/frei0r-1/facebl0r.so", mode=-2147483646, 
    caller_dlopen=<optimized out>, nsid=-2, argc=1, argv=0x7fffffffdf08,
env=0x7fffffffdf18) at dl-open.c:642
#10 0x00007ffff7514fbb in dlopen_doit (a=a@entry=0x7fffffffddf0) at dlopen.c:66
#11 0x00007ffff7dea8b4 in _dl_catch_error (objname=0x613cc0,
errstring=0x613cc8, mallocedp=0x613cb8, 
    operate=0x7ffff7514f60 <dlopen_doit>, args=0x7fffffffddf0) at
dl-error.c:187
#12 0x00007ffff751556d in _dlerror_run (operate=operate@entry=0x7ffff7514f60
<dlopen_doit>, 
    args=args@entry=0x7fffffffddf0) at dlerror.c:163
#13 0x00007ffff7515051 in __dlopen (file=file@entry=0x4006d8
"/usr/lib64/frei0r-1/facebl0r.so", mode=mode@entry=2)
    at dlopen.c:87
#14 0x0000000000400553 in main () at dlo.c:5


You are receiving this mail because: