Bug 177119 - plasma-workspace-4.1.80: build fails with "undefined reference" errors to QDom[Node,Document,Element] members
Summary: plasma-workspace-4.1.80: build fails with "undefined reference" errors to QDo...
Status: RESOLVED NOT A BUG
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-07 04:27 UTC by Ivan D Vasin
Modified: 2008-12-18 21:55 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan D Vasin 2008-12-07 04:27:01 UTC
Version:            (using Devel)
Compiler:          gcc (Gentoo 4.3.2 p1.0) 4.3.2 CXXFLAGS="-march=pentium4m -O2 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden -fvisibility=hidden"
OS:                Linux
Installed from:    Compiled sources

While building plasma-workspace-4.1.80 (from the kde-crazy Gentoo overlay) I receive thousands of "undefined reference" errors from QFormInternal classes to various QDomNode, QDomDocument, and QDomElement functions. Here's a sample of the last ones:

/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c814): undefined reference to `QDomNode::firstChild() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c89d): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8ad): undefined reference to `QDomNode::nextSibling() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8bc): undefined reference to `QDomNode::operator=(QDomNode const&)'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8c4): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8cc): undefined reference to `QDomNode::isNull() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8dc): undefined reference to `QDomNode::isElement() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c8fa): undefined reference to `QDomNode::toElement() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c911): undefined reference to `QDomElement::tagName() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c96f): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c9b1): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3c9ff): undefined reference to `QDomNode::firstChild() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca18): undefined reference to `QDomNode::nextSibling() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca27): undefined reference to `QDomNode::operator=(QDomNode const&)'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca2f): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca37): undefined reference to `QDomNode::isNull() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca43): undefined reference to `QDomNode::isText() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca5a): undefined reference to `QDomNode::nodeValue() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3ca94): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3cad1): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3cad9): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3cafd): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3cb2a): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomCustomWidgets::read(QDomElement const&)':
(.text+0x3cb32): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cb9e): undefined reference to `QDomElement::hasAttribute(QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cc2b): undefined reference to `QDomElement::attribute(QString const&, QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3ccc5): undefined reference to `QDomElement::hasAttribute(QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cd52): undefined reference to `QDomElement::attribute(QString const&, QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cdec): undefined reference to `QDomElement::hasAttribute(QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3ce79): undefined reference to `QDomElement::attribute(QString const&, QString const&) const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cef8): undefined reference to `QDomNode::firstChild() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cf27): undefined reference to `QDomElement::text() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cf6f): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cf82): undefined reference to `QDomNode::nextSibling() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cf91): undefined reference to `QDomNode::operator=(QDomNode const&)'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cf99): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cfa1): undefined reference to `QDomNode::isNull() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cfb1): undefined reference to `QDomNode::isElement() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cfc9): undefined reference to `QDomNode::toElement() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3cfdf): undefined reference to `QDomElement::tagName() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d078): undefined reference to `QDomElement::text() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d11a): undefined reference to `QDomElement::text() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d1a5): undefined reference to `QDomElement::text() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d246): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d29d): undefined reference to `QDomNode::firstChild() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2b6): undefined reference to `QDomNode::nextSibling() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2c5): undefined reference to `QDomNode::operator=(QDomNode const&)'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2cd): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2d5): undefined reference to `QDomNode::isNull() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2e1): undefined reference to `QDomNode::isText() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d2f2): undefined reference to `QDomNode::nodeValue() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d32c): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d407): undefined reference to `QDomElement::text() const'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d82a): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d832): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d909): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d9e9): undefined reference to `QDomNode::~QDomNode()'
/usr/lib/qt4/libQtUiTools.a(ui4.o): In function `QFormInternal::DomUI::read(QDomElement const&)':
(.text+0x3d9fd): undefined reference to `QDomNode::~QDomNode()'
collect2: ld returned 1 exit status
make[2]: *** [lib/plasma_scriptengine_qscript.so] Error 1
make[1]: *** [plasma/scriptengines/qtscript/CMakeFiles/plasma_scriptengine_qscript.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 69%] Building CXX object plasma/scriptengines/webkit/CMakeFiles/plasma_appletscriptengine_dashboard.dir/plasma_appletscriptengine_dashboard_automoc.o
Linking CXX shared module ../../../lib/plasma_appletscriptengine_dashboard.so
[ 69%] Built target plasma_appletscriptengine_dashboard
make: *** [all] Error 2

My Qt version is 4.4.2. I have tried removing and recompiling Qt, but this error persists. I previously built plasma-workspace-4.1.73 on the same system with no problems, but no version has worked since that one. All other kde-4.1.80 packages up to that one build fine (only kdeplasma-addons, kweather, and kdebase-startkde remain).

Since build errors tend to not stay very long, I suspect that the problem is being caused by something specific to my system's configuration, but I'm stumped as to where to look from here.
Comment 1 Anne-Marie Mahfouf 2008-12-07 10:30:36 UTC
A build error is not a bug, especially as you are using a build distribution. You should get support from your distribution. 

Comment 2 Martin Jansa 2008-12-18 21:55:15 UTC
(In reply to comment #1)
> A build error is not a bug, especially as you are using a build distribution.
> You should get support from your distribution. 
> 

I think it is..

It was partially solved with this patch
http://websvn.kde.org/trunk/KDE/kdebase/workspace/plasma/scriptengines/qtscript/CMakeLists.txt?r1=872339&r2=888087

But it looks like order of libraries is important in this case..${QT_QTUITOOLS_LIBRARY} is static library and has some unresolved symbols provided by ${QT_QTXML_LIBRARY}. If ${QT_QTXML_LIBRARY} occur AFTER ${QT_QTUITOOLS_LIBRARY} than build is OK, otherwise build will fail.

Please reconsider to change the order of libraries to make build distribution users a bit more happy :).

Thanks.

Regards