Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 715656 - dev-qt/qtgui-5.14.1 - qxcbconnection.cpp:(.text+0x453c): undefined reference to `QWindowSystemInterface::handleScreenRemoved(QPlatformScreen*)'
Summary: dev-qt/qtgui-5.14.1 - qxcbconnection.cpp:(.text+0x453c): undefined reference ...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-31 17:31 UTC by Dennis Nezic
Modified: 2021-08-23 08:37 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Nezic 2020-03-31 17:31:18 UTC
Anyone have any theories about what could be preventing the linking of xcb/qpa (qt5 plugin architecture) stuff? It fails when trying to link all the "qxcb*.o" files into the libQt5XcbQpa.so.5.14.1 library. There are many such undefined references caused by many of those .o files, the pasted line is just the first because qxcbconnection.o was the first in line to fail. But the function in question (handleScreenRemoved) IS properly defined in the source code (ie. qxcbconnection.o did compile successfully), it's just this linking stage that fails, so I think it's something to do with one of the -lxcb... links to existing libraries? I tried upgrading x11-libs/libxcb and xcb-util, and I think all the other minimum requirements for the xcb stuff met. Thoughts?

x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--no-undefined -Wl,--version-script,QtXcbQpa.version -Wl,--enable-new-dtags -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5XcbQpa.so.5 -o libQt5XcbQpa.so.5.14.1 .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  /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5ServiceSupport.a /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5ThemeSupport.a /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5FontDatabaseSupport.a -lfontconfig -lfreetype -lz /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5XkbCommonSupport.a /usr/lib64/libQt5LinuxAccessibilitySupport.a -lQt5AccessibilitySupport -lQt5DBus /usr/lib64/libQt5AccessibilitySupport.a -lQt5Gui -lQt5Core -lGL /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5Gui.so /var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5EdidSupport.a /usr/lib64/libQt5DBus.so /usr/lib64/libQt5Core.so -lpthread -lX11-xcb -lxcb-xinput -lxcb-icccm -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-randr -lxcb-render-util -lxcb-render -lxcb-shape -lxcb-sync -lxcb-xfixes -lxcb-xinerama -lxcb-xkb -lxcb -lXext -lX11 -lm -lSM -lICE -lxkbcommon-x11 -lxkbcommon -ldl -lGL -lgthread-2.0 -lglib-2.0   

/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .obj/qxcbconnection.o: in function `QXcbConnection::~QXcbConnection()':

qxcbconnection.cpp:(.text+0x453c): undefined reference to `QWindowSystemInterface::handleScreenRemoved(QPlatformScreen*)'

Makefile.xcb_qpa_lib:286, in ./work/qtbase-everywhere-src-5.14.1/src/plugins/platforms/xcb

Similar undefined reference that are mentioned at this point are:
defined reference to `bool QWindowSystemInterface::handleApplicationTermination<QWindowSystemInterface::SynchronousDelivery>
undefined reference to `bool QWindowSystemInterface::handleCloseEvent<QWindowSystemInterface::DefaultDelivery>
undefined reference to `QBasicDrag::drop
undefined reference to `QColor::darker
undefined reference to `QColor::lighter
undefined reference to `QFontEngine::bitmapForGlyph
undefined reference to `QFontEngine::glyphData
undefined reference to `QHighDpiScaling::scaleAndOrigin
undefined reference to `QImage::sizeInBytes
undefined reference to `QPlatformBackingStore::composeAndFlush
undefined reference to `QPlatformCursor::clearOverrideCursor
undefined reference to `QPlatformCursor::setOverrideCursor
undefined reference to `QPlatformCursor::size
undefined reference to `QPlatformMenuItem::QPlatformMenuItem
undefined reference to `QPlatformMenuItem::setTag
undefined reference to `QPlatformMenuItem::tag
undefined reference to `QPlatformMenu::QPlatformMenu
undefined reference to `QPlatformMenu::setTag
undefined reference to `QPlatformMenu::tag
undefined reference to `QPlatformWindow::close
undefined reference to `QPlatformWindow::deliverUpdateRequest
undefined reference to `QPlatformWindow::initialize
undefined reference to `QWindowPrivate::screenForGeometry
undefined reference to `QWindowSystemInterface::handleDrag
undefined reference to `QWindowSystemInterface::handleDrop
undefined reference to `QWindowSystemInterface::handlePrimaryScreenChanged
undefined reference to `QWindowSystemInterface::handleScreenAdded
undefined reference to `QWindowSystemInterface::handleScreenRemoved
undefined reference to `QWindowSystemInterface::setPlatformFiltersEvents
undefined reference to `QWindow::windowStates
undefined reference to `void QWindowSystemInterface::handleGeometryChange<QWindowSystemInterface::DefaultDelivery>
undefined reference to `void QWindowSystemInterface::handleMouseEvent<QWindowSystemInterface::DefaultDelivery>
undefined reference to `void QWindowSystemInterface::handleWindowScreenChanged<QWindowSystemInterface::DefaultDelivery>
undefined reference to `void QWindowSystemInterface::handleWindowStateChanged<QWindowSystemInterface::DefaultDelivery>
Comment 1 Dennis Nezic 2020-03-31 21:06:08 UTC
Hmm. So, for example, the reason QWindowSystemInterface::handleScreenRemoved was undefined was because ../../../gui/.obj/qwindowsysteminterface.o was not included in that linking line. So, why aren't the required compiled objects in ./work/qtbase-everywhere-src-5.14.1/src/gui/.obj being included here? :s
Comment 2 Dennis Nezic 2020-04-01 01:55:30 UTC
This might somehow, in some labyrinthian Rube Goldbergian, be due to bug #715528 which tried to disable the "accessibility" USE flag/feature. The normal qtgui-5.14.1 ebuild as it currently exists (which does not disable accessibility), seems to compile fine :|. The build.log did warn me that disabling accessibility wasn't supported, but wtf would it produce the xcb/qpa related linking errors that I was seeing.
Comment 3 Andreas Sturmlechner gentoo-dev 2020-04-01 16:11:24 UTC
So why did you not include emerge --info and full build.log?
Comment 4 Dennis Nezic 2020-04-01 20:31:04 UTC
FWIW, the only difference between the line in the qtgui build.log that worked (the one in portage with accessibility enabled), and the one that didn't (with accessibility supposedly disabled), was that in the failed attempt it still tried to link to the existing accessibility libraries in /usr/lib64,

/usr/lib64/libQt5LinuxAccessibilitySupport.a
/usr/lib64/libQt5AccessibilitySupport.a

whereas the successful compilation used the newly compiled libraries in the work dir,

/var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5LinuxAccessibilitySupport.a
/var/tmp/portage/dev-qt/qtgui-5.14.1-r3/work/qtbase-everywhere-src-5.14.1/lib/libQt5AccessibilitySupport.a
Comment 5 Andreas Sturmlechner gentoo-dev 2021-08-23 08:37:48 UTC
(In reply to Dennis Nezic from comment #2)
> This might somehow, in some labyrinthian Rube Goldbergian, be due to bug
> #715528 which tried to disable the "accessibility" USE flag/feature. The
> normal qtgui-5.14.1 ebuild as it currently exists (which does not disable
> accessibility), seems to compile fine :|.
I'm closing this one as invalid per the above comment, assuming a user patched (e)build.