Details
-
Bug
-
Resolution: Done
-
P0: Blocker
-
5.14.0 Beta3
-
Ubuntu 16.04, gcc 5.5
-
-
2a887a517eaaa2c5324aecf3b919899b7a86ff4a (qt/qtbase/5.14.0)
Description
The libQt5Qml.so.5 library in Qt 5.13 (and older) has provided a large chunk of the libstdc++ library, which can be observed using e.g. `objdump -T libQt5Qml.so.5 | grep string`. These symbols use version of `Qt_5` - presumably to avoid conflict with the system's default libstdc++. However, any program that uses any of these symbols (i.e. uses std::string) and is linked against libQt5Qml.so.5 will import the Qt_5 version of these symbols instead of the GLIBCXX. The current Qt 5.14 beta binaries do not provide any of such symbols and cannot be used as a drop-in replacement of the Qt 5.13 binaries. Any complex software built against Qt 5.13 will not be able to use the Qt 5.14 binaries without a rebuild.
I have attached a small example app. When built against Qt 5.13, the binary can be run against Qt 5.13:
LD_LIBRARY_PATH=<path to Qt 5.13>/lib ./qmltest
but it cannot be run against Qt 5.14 (beta3):
LD_LIBRARY_PATH=<path to Qt 5.14>/lib ./qmltest