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

qxcbbackingstore.cpp fails to build

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • Not Evaluated
    • None
    • 5.12.1, 5.12.2
    • Build System, QPA: X11/XCB
    • None
    • Linux/X11

    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.

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtbuildsystem Qt Build System Team
            imichka Popoff Michka
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes