Solved 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