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

XCB plugin doesn't build because of missing -lXExt

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P3: Somewhat important
    • 5.12
    • 5.8.0 Beta
    • Build System, QPA: X11/XCB
    • None
    • Linux X11 xcb

    Description

      I'm building qt 5.8 Beta on LibreElec (Linux) for a x64 host.
      That host has some of the x11 libs build as static and cannot build them as shared.

      When building qt, i'm getting a build error as follows :

      make[6]: Leaving directory '/home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/src/plugins/platforms/xcb/xcb-static'
      ( test -e Makefile.xcb_qpa_lib || /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/bin/qmake -o Makefile.xcb_qpa_lib /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/src/plugins/platforms/xcb/xcb_qpa_lib.pro -qtconf /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/bin/qt.conf -- -sysroot /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot -prefix /usr/local/qt5 -hostprefix /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel -device-option CROSS_COMPILE=/home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu- -device linux-Generic-g++ -release -v -opensource -confirm-license -shared -make libs -no-pch -no-icu -qt-xkbcommon -no-sql-sqlite2 -nomake examples -nomake tests -no-libjpeg -qpa xcb -opengl desktop -no-kms -no-directfb -qt-xcb -skip qtactiveqt -skip qtandroidextras -skip qtdoc -skip qtvirtualkeyboard -skip qtcharts -skip qtdatavis3d -skip qtgraphicaleffects -skip qtlocation -skip qtmacextras -skip qtscript -skip qtsensors -skip qtserialport -skip qtcanvas3d -skip qtwayland -skip qtwinextras -skip qtserialbus -skip qtxmlpatterns -skip qttranslations -skip qtmultimedia -skip qtscxml -skip qtquickcontrols2 -skip qt3d -skip qtpurchasing -skip qtgamepad -skip qtwebview --force-debug-info ) && make -f Makefile.xcb_qpa_lib
      make[6]: Entering directory '/home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/src/plugins/platforms/xcb'
      rm -f libQt5XcbQpa.so.5.8.0 libQt5XcbQpa.so libQt5XcbQpa.so.5 libQt5XcbQpa.so.5.8
      /home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -m64 -fPIC --sysroot=/home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot -Wl,--no-undefined -Wl,--version-script,QtXcbQpa.version -fuse-ld=gold -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5XcbQpa.so.5 -o libQt5XcbQpa.so.5.8.0 .obj/qxcbclipboard.o .obj/qxcbconnection.o .obj/qxcbintegration.o .obj/qxcbkeyboard.o .obj/qxcbmime.o .obj/qxcbdrag.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/qxcbconnection_xi2.o .obj/qxcbglintegrationfactory.o .obj/qxcbglintegration.o .obj/qxcbnativeinterfacehandler.o .obj/atom.o .obj/xkb-compat.o .obj/context.o .obj/xkb-keymap.o .obj/keysym.o .obj/keysym-utf.o .obj/state.o .obj/text.o .obj/context-priv.o .obj/keymap-priv.o .obj/utils.o .obj/utf8.o .obj/action.o .obj/ast-build.o .obj/compat.o .obj/expr.o .obj/include.o .obj/keycodes.o .obj/keymap-dump.o .obj/keymap.o .obj/keywords.o .obj/rules.o .obj/scanner.o .obj/symbols.o .obj/types.o .obj/vmod.o .obj/xkbcomp.o .obj/parser.o .obj/moc_qxcbconnection.o .obj/moc_qxcbmime.o .obj/moc_qxcbnativeinterface.o .obj/moc_qxcbsystemtraytracker.o .obj/moc_qxcbglintegrationplugin.o  -L/home/longchair/LibreELEC.tv/build.PlexMediaPlayer-Generic.x86_64-8.0-devel/qt5-5.8.0-beta/qtbase/lib -lQt5ServiceSupport -lQt5ThemeSupport -lQt5EventDispatcherSupport -lgthread-2.0 -lglib-2.0 -lQt5FontDatabaseSupport -lQt5LinuxAccessibilitySupport -lQt5AccessibilitySupport -lGL -lQt5Gui -lQt5DBus -lQt5Core -lpthread -lX11 -lX11-xcb -lXi -lxcb-static -lxcb -lfontconfig -lfreetype -lGL
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function _XiCheckExtInit: error: undefined reference to 'XMissingExtension'
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function XInput_find_display: error: undefined reference to 'XextFindDisplay'
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function XInput_find_display: error: undefined reference to 'XextCreateExtension'
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function XInput_find_display: error: undefined reference to 'XextAddDisplay'
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function XInputClose: error: undefined reference to 'XextRemoveDisplay'
      /tmp/cc950ijS.ltrans1.ltrans.o:<artificial>:function XInputClose: error: undefined reference to 'XextDestroyExtension'
      

      the missing functions are because it doesn't link with libXext.

      I doublechecked that adding LIBS += -lXext to the linker line fixes the issue, but i'm not sure what's the right way to get this fixed.

      Any hint will be appreciated.

      Attachments

        Issue Links

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

          Activity

            People

              longchair LongChair
              longchair LongChair
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes