trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: September 2010

Building Trinity on BLFS - symbol visibility issues

From: Leandro Nini <drfiemost@...>
Date: Sat, 18 Sep 2010 16:23:53 +0200
Hi,

first of all thanks to Timothy and all the people involved for keeping alive
my favourite desktop!

Now on to the business: I'm trying to build Trinity on a custom Linux From
Scratch system and experienced a few compiling errors, here are some caused
by the --enable-gcc-hidden-visibility switch:

In file included from /opt/qt/include/tqimage.h:32:0,
                 from kpixmap.cpp:26,
                 from libkdefx_la.all_cpp.cpp:2:
/opt/qt/include/qimage.h: In member function ‘bool
QImageTextKeyLang::operator<(const QImageTextKeyLang&) const’:
/opt/qt/include/qimage.h:61:61: warning: suggest parentheses around ‘&&’
within ‘||’
In file included from libkdefx_la.all_cpp.cpp:5:0:
kimageeffect.cpp: At global scope:
kimageeffect.cpp:4739:13: warning: unused parameter ‘bpp’
kimageeffect.cpp:4739:13: warning: unused parameter ‘has_alpha’
In file included from libkdefx_la.all_cpp.cpp:7:0:
kstyle.cpp:155:1: warning: ‘KStylePrivate’ has a field
‘KStylePrivate::menuHandler’ whose type uses the anonymous namespace
In file included from libkdefx_la.all_cpp.cpp:7:0:
kstyle.cpp: In member function ‘virtual void
KStyle::drawComplexControl(QStyle::ComplexControl, QPainter*, const
QWidget*, const QRect&, const QColorGroup&, QStyle::SFlags, QStyle::SCFlags,
QStyle::SCFlags, const QStyleOption&) const’:
kstyle.cpp:1134:7: warning: suggest explicit braces to avoid ambiguous
‘else’
kstyle.cpp: At global scope:
kstyle.cpp:2267:19: error: expected unqualified-id before string constant
make[2]: *** [libkdefx_la.all_cpp.lo] Errore 1
make[2]: Leaving directory
`/usr/src/KDETrinity/20100918/kdelibs-20100918/kdefx'



solved by moving the KDE_EXPORT define in kdefx/kstyle.cpp as follows:

extern "C"
void KDE_EXPORT kde_kstyle_set_scrollbar_type_windows( void* style )




networkstatustestservice.all_cpp.o: In function
`ServiceIface_stub::registerNetwork(QString const&,
NetworkStatus::Properties)':
networkstatustestservice.all_cpp.cpp:(.text+0xff1): undefined reference to
`operator<<(QDataStream&, NetworkStatus::Properties)'
collect2: ld returned 1 exit status
make[2]: *** [networkstatustestservice] Errore 1
make[2]: Leaving directory
`/usr/src/KDETrinity/20100918/kdelibs-20100918/networkstatus'


solved by adding KDE_EXPORT to the << and >> operators in
networkstatus/networkstatuscommon.{h,cpp} and removing the const qualifier.
Not sure if this is the correct way.




./.libs/libkdeinit_konqueror.so: undefined reference to
`StatusBarNetworkStatusIndicator::StatusBarNetworkStatusIndicator(QWidget*,
char const*)'
./.libs/libkdeinit_konqueror.so: undefined reference to
`StatusBarNetworkStatusIndicator::init()'
collect2: ld returned 1 exit status
make[3]: *** [konqueror] Errore 1
make[3]: Leaving directory
`/usr/src/KDETrinity/20100918/kdebase-20100918/konqueror'
make[2]: *** [all-recursive] Errore 1


./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_invoke(int, QUObject*)'
./.libs/libkdeinit_kicker.so: undefined reference to `typeinfo for
KickoffSearch::Plugin'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_property(int, int, QVariant*)'
./.libs/libkdeinit_kicker.so: undefined reference to `typeinfo for
KickoffSearch::KickoffSearchInterface'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::KickoffSearchInterface(QObject*,
char const*)'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::staticMetaObject()'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::Plugin::staticMetaObject()'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_cast(char const*)'
./.libs/libkdeinit_kicker.so: undefined reference to `vtable for
KickoffSearch::KickoffSearchInterface'
./.libs/libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_emit(int, QUObject*)'
collect2: ld returned 1 exit status
make[4]: *** [kicker] Errore 1
make[4]: Leaving directory
`/usr/src/KDETrinity/20100918/kdebase-20100918/kicker/kicker'


solved by adding KDE_EXPORT to StatusBarNetworkStatusIndicator,
KickoffSearchInterface and KickoffSearch::Plugin.
There were some other undefined references regarding RandRScreen and
RandRDisplay classes but I deleted my logs...

Some more build errors will come in next mail.


Regards,
Leandro

 
 --
 Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP
autenticato? GRATIS solo con Email.it: http://www.email.it/f
 
 Sponsor:
 Prova subito Emailpaghe, e' in prova gratuita sino al 31 dicembre 2010
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=10679&d=20100918