Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.5.0
-
None
-
-
666ce51d4 (dev)
-
Foundation Sprint 84
Description
Normally Qt seems to load plugins on Linux with RTLD_NODELETE flag set. But when the a plugin is available via multiple paths (via symlinks) this flag is not set.
This results in differences in linker debug output (LD_DEBUG=files):
834d833 < activating NODELETE for /home/iemeshch/repos/build-qt5/qtbase/plugins/platformthemes/libqgtk3.so [0] 1228a1228,1229 > > file=/home/iemeshch/repos/build-qt5/qtbase/plugins/platformthemes/libqgtk3.so [0]; destroying link map
I'm not sure jet whether there are any more serious problems with this, but I also don't think that this behavior is intentional. This is easier to reproduce with NixOS, but it is not required (replace Qt build path, this assumes dev build):
$ mkdir build
$ cd build
$ <qt-build-path>/qtbase/bin/qt-cmake ..
$ make
$ mkdir -p plugins/platformthemes/
$ ln -s <qt-build-path>/qtbase/plugins/platformthemes/libqgtk3.so plugins/platformthemes
$ LD_DEBUG=files QT_QPA_PLATFORMTHEME=gtk3 QT_PLUGIN_PATH=$PWD/plugins ./simple-crash
I'm attaching the test program and two filtered outputs: with and without QT_PLUGIN_PATH.
Attachments
Issue Links
- resulted from
-
QTBUG-112258 QDBusConnection segmentation fault
- Closed