Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
5.12.1, 5.12.2
-
None
Description
Hi.
Homebrew/Linuxbrew maintainer here. We struggle to build QT since release 5.12.1 at least, on various versions of Ubuntu (16 and 18). We ship our own dependencies so packages/files will not be in common linux include/lib folders. The build was working fine before.
The build fails with:
g++ -Wl,--no-undefined -Wl,--version-script,QtXcbQpa.version -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -Wl,-rpath,/home/linuxbrew/.linuxbrew/Cellar/qt/5.12.2/lib -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5XcbQpa.so.5 -o libQt5XcbQpa.so.5.12.2 .obj/qxcbclipboard.o .obj/qxcbconnection.o .obj/qxcbintegration.o .obj/qxcbkeyboard.o .obj/qxcbmime.o .obj/qxcbscreen.o .obj/qxcbwindow.o .obj/qxcbbackingstore.o .obj/qxcbwmsupport.o .obj/qxcbnativeinterface.o .obj/qxcbcursor.o .obj/qxcbimage.o .obj/qxcbxsettings.o .obj/qxcbsystemtraytracker.o .obj/qxcbeventqueue.o .obj/qxcbeventdispatcher.o .obj/qxcbconnection_basic.o .obj/qxcbconnection_screens.o .obj/qxcbatom.o .obj/qxcbdrag.o .obj/qxcbconnection_xi2.o .obj/qxcbsessionmanager.o .obj/qxcbglintegrationfactory.o .obj/qxcbglintegration.o .obj/qxcbnativeinterfacehandler.o .obj/moc_qxcbclipboard.o .obj/moc_qxcbconnection.o .obj/moc_qxcbmime.o .obj/moc_qxcbnativeinterface.o .obj/moc_qxcbsystemtraytracker.o .obj/moc_qxcbeventqueue.o .obj/moc_qxcbeventdispatcher.o .obj/moc_qxcbconnection_basic.o .obj/moc_qxcbglintegrationplugin.o -L/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/lib -lQt5ServiceSupport -lQt5ThemeSupport -lQt5FontDatabaseSupport /home/linuxbrew/.linuxbrew/Cellar/mesa/17.2.3_3/lib/libGL.so /tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/lib/libqtfreetype.a /tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/lib/libqtlibpng.a /home/linuxbrew/.linuxbrew/lib/libz.so -lQt5Gui -lQt5EdidSupport -lQt5DBus -lQt5Core -lpthread /home/linuxbrew/.linuxbrew/Cellar/libx11/1.6.7/lib/libX11-xcb.so /home/linuxbrew/.linuxbrew/Cellar/libx11/1.6.7/lib/libX11.so /home/linuxbrew/.linuxbrew/Cellar/libxcb/1.13.1/lib/libxcb.so /home/linuxbrew/.linuxbrew/lib/libXext.so /home/linuxbrew/.linuxbrew/lib/libX11.so /usr/lib/x86_64-linux-gnu/libm.so /home/linuxbrew/.linuxbrew/Cellar/libsm/1.2.3/lib/libSM.so /home/linuxbrew/.linuxbrew/Cellar/libice/1.0.9/lib/libICE.so /tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/lib/libxcb-static.a /home/linuxbrew/.linuxbrew/Cellar/libxkbcommon/0.8.2_1/lib/libxkbcommon-x11.so /home/linuxbrew/.linuxbrew/Cellar/libxkbcommon/0.8.2_1/lib/libxkbcommon.so /usr/lib/x86_64-linux-gnu/libdl.so /home/linuxbrew/.linuxbrew/Cellar/mesa/17.2.3_3/lib/libGL.so /home/linuxbrew/.linuxbrew/Cellar/glib/2.60.0_2/lib/libgthread-2.0.so /home/linuxbrew/.linuxbrew/Cellar/glib/2.60.0_2/lib/libglib-2.0.so .obj/qxcbbackingstore.o:qxcbbackingstore.cpp:function QXcbBackingStoreImage::createShmSegment(unsigned long): error: undefined reference to 'xcb_shm_create_segment' .obj/qxcbbackingstore.o:qxcbbackingstore.cpp:function QXcbBackingStoreImage::createShmSegment(unsigned long): error: undefined reference to 'xcb_shm_create_segment_reply' .obj/qxcbbackingstore.o:qxcbbackingstore.cpp:function QXcbBackingStoreImage::createShmSegment(unsigned long): error: undefined reference to 'xcb_shm_create_segment_reply_fds' collect2: error: ld returned 1 exit status make[6]: *** [Makefile.xcb_qpa_lib:351: ../../../../lib/libQt5XcbQpa.so.5.12.2] Error 1 make[6]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/src/plugins/platforms/xcb' make[5]: *** [Makefile:90: sub-xcb_qpa_lib-pro-make_first-ordered] Error 2 make[5]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/src/plugins/platforms/xcb' make[4]: *** [Makefile:103: sub-xcb-make_first] Error 2 make[4]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/src/plugins/platforms' make[3]: *** [Makefile:105: sub-platforms-make_first] Error 2 make[3]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/src/plugins' make[2]: *** [Makefile:778: sub-plugins-make_first] Error 2 make[2]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase/src' make[1]: *** [Makefile:51: sub-src-make_first] Error 2 make[1]: Leaving directory '/tmp/qt-20190401-25844-1lv9b6u/qt-everywhere-src-5.12.2/qtbase' make: *** [Makefile:86: module-qtbase-make_first] Error 2 /home/linuxbrew/.linuxbrew/bin/curl --version
See https://github.com/Homebrew/linuxbrew-core/pull/11696
We have:
$ pkg-config --libs xcb -L/home/linuxbrew/.linuxbrew/Cellar/libxcb/1.13.1/lib -lxcb
It looks like the -lxcb flag is not correctly passed. In release 5.12.1 I was able to hack around this by patching some files and add `-lxcb`, which fixed the issue. For release 5.12.2 I have no clue how to properly fix this.