Qt issue in Kubuntu
-
Running the program with --help-all returns the following backtrace.
The bt full command returns a longer log I pasted here: https://pastebin.com/uSzEdaSh
#0 QObject::thread (this=0x0) at kernel/qobject.cpp:1520 #1 0x00007be9479cfb93 in (anonymous namespace)::loadOnMainThread () at /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:116 #2 0x00007be94e6ed624 in qAddPreRoutine (p=0x7be9479cfb70 <(anonymous namespace)::loadOnMainThread()>) at kernel/qcoreapplication.cpp:277 #3 0x00007be94797bd65 in _sub_I_65535_0.0 () from /lib/x86_64-linux-gnu/libKF5Solid.so.5 #4 0x00007be9586937ef in call_init (l=<optimized out>, argc=argc@entry=2, argv=argv@entry=0x7fff78eaf408, env=env@entry=0x7fff78eaf420) at ./elf/dl-init.c:74 #5 0x00007be958693904 in call_init (l=<optimized out>, argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at ./elf/dl-init.c:120 #6 _dl_init (main_map=0x575b553282e0, argc=2, argv=0x7fff78eaf408, env=0x7fff78eaf420) at ./elf/dl-init.c:121 #7 0x00007be9586905b2 in __GI__dl_catch_exception (exception=exception@entry=0x0, operate=operate@entry=0x7be95869b0f0 <call_dl_init>, args=args@entry=0x7fff78eae430) at ./elf/dl-catch.c:215 #8 0x00007be95869b1ac in dl_open_worker (a=0x7fff78eae5e0) at ./elf/dl-open.c:804 #9 dl_open_worker (a=a@entry=0x7fff78eae5e0) at ./elf/dl-open.c:767 #10 0x00007be95869051c in __GI__dl_catch_exception (exception=exception@entry=0x7fff78eae5c0, operate=operate@entry=0x7be95869b110 <dl_open_worker>, args=args@entry=0x7fff78eae5e0) at ./elf/dl-catch.c:241 #11 0x00007be95869b594 in _dl_open (file=0x575b5531b468 "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/KDEPlasmaPlatformTheme5.so", mode=<optimized out>, caller_dlopen=0x7be94e6e4cd0 <QLibraryPrivate::load_sys()+1408>, nsid=<optimized out>, argc=2, argv=0x7fff78eaf408, env=0x7fff78eaf420) at ./elf/dl-open.c:880 #12 0x00007be94dc9d474 in dlopen_doit (a=a@entry=0x7fff78eae890) at ./dlfcn/dlopen.c:56 #13 0x00007be95869051c in __GI__dl_catch_exception (exception=exception@entry=0x7fff78eae7d0, operate=0x7be94dc9d410 <dlopen_doit>, args=0x7fff78eae890) at ./elf/dl-catch.c:241 #14 0x00007be958690669 in _dl_catch_error (objname=0x7fff78eae838, errstring=0x7fff78eae840, mallocedp=0x7fff78eae837, operate=<optimized out>, args=<optimized out>) at ./elf/dl-catch.c:260 #15 0x00007be94dc9cf63 in _dlerror_run (operate=operate@entry=0x7be94dc9d410 <dlopen_doit>, args=args@entry=0x7fff78eae890) at ./dlfcn/dlerror.c:138 #16 0x00007be94dc9d52f in dlopen_implementation (file=<optimized out>, mode=<optimized out>, dl_caller=<optimized out>) at ./dlfcn/dlopen.c:71 #17 ___dlopen (file=<optimized out>, mode=<optimized out>) at ./dlfcn/dlopen.c:81 #18 0x00007be94e6e4cd0 in QLibraryPrivate::load_sys (this=this@entry=0x575b5531d6f0) at plugin/qlibrary_unix.cpp:238 #19 0x00007be94e6de060 in QLibraryPrivate::load (this=this@entry=0x575b5531d6f0) at plugin/qlibrary.cpp:584 #20 0x00007be94e6de64f in QLibraryPrivate::loadPlugin (this=this@entry=0x575b5531d6f0) at plugin/qlibrary.cpp:641 #21 0x00007be94e6de9d0 in QLibraryPrivate::pluginInstance (this=0x575b5531d6f0) at plugin/qlibrary.cpp:557 #22 0x00007be94e6d1255 in QFactoryLoader::instance (this=this@entry=0x7be94f1133b0 <(anonymous namespace)::Q_QGS_loader::innerFunction()::holder>, index=<optimized out>) at plugin/qfactoryloader.cpp:396 #23 0x00007be94eb3279e in qLoadPlugin<QPlatformTheme, QPlatformThemePlugin, QStringList&> ( loader=0x7be94f1133b0 <(anonymous namespace)::Q_QGS_loader::innerFunction()::holder>, key=...) at ../../include/QtCore/5.15.13/QtCore/private/../../../../../src/corelib/plugin/qfactoryloader_p.h:106 #24 QPlatformThemeFactory::create (key=..., platformPluginPath=...) at kernel/qplatformthemefactory.cpp:73 #25 0x00007be94eb403e8 in init_platform (pluginNamesWithArguments=..., platformPluginPath=..., platformThemeName=..., argc=@0x7fff78eaf12c: 2, argv=<optimized out>) at kernel/qguiapplication.cpp:1282 #26 QGuiApplicationPrivate::createPlatformIntegration (this=0x575b55308a80) at kernel/qguiapplication.cpp:1477 #27 0x00007be94eb419c0 in QGuiApplicationPrivate::createEventDispatcher (this=<optimized out>) at kernel/qguiapplication.cpp:1494 #28 0x00007be94e6f0595 in QCoreApplicationPrivate::init (this=this@entry=0x575b55308a80) at kernel/qcoreapplication.cpp:835 #29 0x00007be94eb4496d in QGuiApplicationPrivate::init (this=0x575b55308a80) at kernel/qguiapplication.cpp:1523 #30 0x00007be94f371205 in QApplicationPrivate::init() () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #31 0x0000575b1757f3c2 in ?? () #32 0x00007be94dc2a3b8 in __libc_start_call_main (main=main@entry=0x575b1757f340, argc=argc@entry=2, argv=argv@entry=0x7fff78eaf408) at ../sysdeps/nptl/libc_start_call_main.h:58 #33 0x00007be94dc2a47b in __libc_start_main_impl (main=0x575b1757f340, argc=2, argv=0x7fff78eaf408, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff78eaf3f8) at ../csu/libc-start.c:360 #34 0x0000575b17583055 in ?? ()
-
@SGaist Good point:
Kubuntu 24.10 Beta ships with Qt6 6.6.12 and KDE Frameworks 6 version 6.5.0.
For applications that are still based on Qt5/KF5, Qt5 5.15.13 and Frameworks 5.116.0 are still in the archive.So possibly the Qt5/KF5-based executable is missing a KDE 5 framework library or resource that is not present out-of-the-box. For example, KDEPlasmaPlatformTheme5.so or libKF5Solid.so.5 in stack trace above.
I will check when I get back to the machine with the VM.
-
Nothing seems to be out of order in terms of mixed Qt5/6 or KDE dependencies missing.
BTW, the apt-supplied
privacybrowser
fails for me:- Kubuntu 24.04 with KDE Frameworks 5.115.0, Qt 5.15.3
- Kubuntu 24.10 with KDE Frameworks 6.5.0, Qt 6.6.2 and what looks to be KDE Frameworks 5.116
This issue with Wireshark looks to be the same thing. Essentially, the impossible happens :(
That leads to QTBUG-86173 and that rabbit hole is more detail than I am willing to wade into and understand.There is a suggestion that, "disabling -reduce-relocations by default is the best option."
-
Given the discussion about
-fPIC
and-fPIE
on the Wireshark bug, do you think that lines 45-52 in CMakeLists.txt could be the issue:45 # Include the Position Independent Executable checker. <https://cmake.org/cmake/help/latest/policy/CMP0083.html> 46 include(CheckPIESupported) 47 48 # Check to see if Position Independent Executable is supported in the current linker and environment. 49 check_pie_supported() 50 51 # Add the Position Independent Executable compiler flag if it is supported in the current linker and environment. <https://cmake.org/cmake/help/latest/variable/CMAKE_POSITION_INDEPENDENT_CODE.html> 52 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
-
Possibly. This snippet derived from the CMake manual:
include(CheckPIESupported) check_pie_supported(OUTPUT_VARIABLE output LANGUAGES CXX) set_property(TARGET mmmm_pie PROPERTY POSITION_INDEPENDENT_CODE TRUE) if(NOT CMAKE_C_LINK_PIE_SUPPORTED) message(WARNING "PIE is not supported at link time: ${output}.\n" "PIE link options will not be passed to linker.") endif()
Added to the CMakeLists.txt for a basic empty-widget project generates this:
[cmake] Running /usr/bin/cmake -S /tmp/mmmm_pie -B /tmp/mmmm_pie/build/Desktop_Qt_6_7_2-Debug in /tmp/mmmm_pie/build/Desktop_Qt_6_7_2-Debug. [cmake] CMake Warning at CMakeLists.txt:51 (message): [cmake] PIE is not supported at link time: . [cmake] [cmake] PIE link options will not be passed to linker. [cmake]
It nevertheless adds
-fPIE
to theg++
calls for source compile and linking.
Kubuntu 24.04, Qt 5.15.3 or 6.7.2, CMake 3.28.3Could be worth removing the option as an experiment. I expect that support for ASLR is a desirable in a browser though.
-
@qt_usr, could you please install the .deb from the upstream website in your testing environment (assuming it will install) and check to see if you get the same error?
That .deb was built against Debian unstable. Assuming you do get the same error, I can produce another version for testing with the PIE linking code removed.
-
@Soren-Stoutner Hello,
using the .deb from the website (0.6.1) it starts! -
That is very interesting (and not what I was expecting). I think I will move this conversation back to the Launchpad bug as it appears to be some issue with how it was built for Ubuntu.
-
@Soren-Stoutner Fine. I noticed the Ubuntu repository's version is 0.6 while the website's version is 0.6.1. Let's go "back" to the launchpad bug for this.
-
For exactness of comparison, you can load 0.6 from the upstream website. Although I don't expect any difference from 0.6.1.
-
@Soren-Stoutner Yes, I confirm. Also the v0.6 starts correctly if installed using the .deb pacakge from the website.