Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-80535

libQt5Qml official binaries no longer provide libstdc++ symbols

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11
    • Commits:
      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

       

        Attachments

        1. link.after.log
          4.04 MB
        2. link.before.log
          4.23 MB
        3. qmltest.tar
          10 kB
        For Gerrit Dashboard: QTBUG-80535
        # Subject Branch Project Status CR V

          Activity

            People

            • Assignee:
              ulherman Ulf Hermann
              Reporter:
              jarekk Jaroslaw Kubik
            • Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes