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

libQt5Qml official binaries no longer provide libstdc++ symbols

    XMLWordPrintable

Details

    • Linux/X11
    • 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
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            ulherman Ulf Hermann
            jarekk Jaroslaw Kubik
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes