Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Different dependencies for xcb plugin 5.6.0 and 5.6.1-1 (built from sources)



  • We have Qt 5.6.0 manually built on Debian 7 from sources where xcb plugin has the following dependencies
    tester@TEST-EPSILON:~/platforms$ ldd libqxcb.so
    linux-vdso.so.1 => (0x00007fffd6e56000)
    libQt5XcbQpa_x64.so.5 => not found
    libQt5Gui_x64.so.5 => not found
    libQt5Core_x64.so.5 => not found
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7e564f2000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7e5612c000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7e55e25000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f7e5681d000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7e55c0f000)

    "not found" for Qt libs is not an error, question is not about this.

    Now we build from Qt 5.6.1-1 sources and have 4 times more dependencies for xcb plugin.
    tester@TEST-EPSILON:~/platforms$ ldd libqxcb.so
    linux-vdso.so.1 => (0x00007fffe25db000)
    libQt5XcbQpa_x64.so.5 => not found
    libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f02ede51000)
    libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f02edc49000)
    libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f02eda2f000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f02ed80d000)
    libts-0.0.so.0 => not found
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f02ed5cf000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f02ed328000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f02ed11e000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f02ecf0c000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f02ecbd1000)
    libudev.so.0 => not found
    libEGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1 (0x00007f02ec9a7000)
    libQt5Gui_x64.so.5 => not found
    libQt5Core_x64.so.5 => not found
    libGL.so.1 => /usr/lib/fglrx/libGL.so.1 (0x00007f02ec7a9000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f02ec58a000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f02ec386000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f02ec004000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f02ebcfb000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f02ebae4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02eb71a000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f02eb514000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f02eb310000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f02eb10a000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f02eaee0000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f02eacc6000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f02eaaa0000)
    libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f02ea89a000)
    libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f02ea692000)
    libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f02ea484000)
    libwayland-server.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 (0x00007f02ea272000)
    libgbm.so.1 => /usr/lib/x86_64-linux-gnu/libgbm.so.1 (0x00007f02ea064000)
    libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f02e9e56000)
    /lib64/ld-linux-x86-64.so.2 (0x000056035a1d2000)
    libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f02e9c4d000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f02e9a45000)

    What is the reason? How it could be? We build with -qt-xcb parameter both version.
    So now our application can not run on some Unix systems because of dependencies. If they are all needed, how could it work before?



  • Problem with missed libudev.so.0 and libts-0.0.so.0 dependencies was solved by rebuild with -no-libudev -no-tslib parameters



  • Hi, perhaps it has to do which rpaths are written in the .so files, if you try
    readelf -d libqxcb.so on your libqxcb.so files, are there any differences?



  • for 5.6.0 plugin:
    Dynamic section at offset 0x1d50 contains 33 entries:
    Tag Type Name/Value
    ...
    0x0000000000000001 (NEEDED) Shared library: [libQt5XcbQpa_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libQt5Gui_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libQt5Core_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
    0x000000000000000c (INIT) 0x1198
    0x000000000000000d (FINI) 0x1724
    0x000000000000001a (FINI_ARRAY) 0x2c68
    0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)
    0x0000000000000019 (INIT_ARRAY) 0x2c70
    0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)
    0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN/../]
    ....

    For 5.6.1:
    Dynamic section at offset 0x20f0 contains 50 entries:
    Tag Type Name/Value
    0x0000000000000001 (NEEDED) Shared library: [libQt5XcbQpa_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libX11-xcb.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libSM.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libICE.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libxcb.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libts-0.0.so.0]
    0x0000000000000001 (NEEDED) Shared library: [libfontconfig.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libfreetype.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libXrender.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libXext.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libudev.so.0]
    0x0000000000000001 (NEEDED) Shared library: [libEGL.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libQt5Gui_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libQt5Core_x64.so.5]
    0x0000000000000001 (NEEDED) Shared library: [libGL.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
    0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
    0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
    0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
    0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
    0x000000000000000f (RPATH) Library rpath: [$ORIGIN/../]
    0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN/../]
    ...
    ...

    I think I remove not so useful info.
    Main question is about libudev.so.0 and libts-0.0.so.0. What is the reason xcb depends on them?



  • Problem with missed libudev.so.0 and libts-0.0.so.0 dependencies was solved by rebuild with -no-libudev -no-tslib parameters


Log in to reply