trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: January 2014

Re: [trinity-devel] tdebase FTBFS /usr/bin/ld: cannot find -ldbus-tqt-1

From: Slávek Banko <slavek.banko@...>
Date: Mon, 20 Jan 2014 03:19:47 +0100
On Monday 20 of January 2014 03:12:12 Sl�vek Banko wrote:
> On Monday 20 of January 2014 00:52:20 David C. Rankin wrote:
> > On 01/19/2014 04:12 PM, David C. Rankin wrote:
> > > On 01/19/2014 03:56 PM, Darrell Anderson wrote:
> > >> I'm no compiler expert, not even close, sunny or rainy day. Unless
> > >> Arch is REALLY different from other distros, I would pause to
> > >> consider what else might be causing the errors. That is, the rest
> > >> of the team is building full package sets without the same errors.
> > >>
> > >> That said, yes, you could have stumbled across a corner case that
> > >> Arch exposes. We've seen that before around here. :)
> > >>
> > >> Darrell
> > >
> > > I'm the corner case sucker... I think I have an idea.
> > >
> > > tdebase/kicker/kicker/CMakeLists.txt has:
> > >
> > >   link_directories( ${TQT_LIBRARY_DIRS} )
> > >
> > > Why isn't it linking against TDE_LIBRARY_DIRS? So I'm going to try:
> > >
> > >   link_directories( ${TQT_LIBRARY_DIRS} ${TDE_LIBRARY_DIRS} )
> > >
> > > I have a love/hate relationship with cmake. Love it when it works, hate
> > > it when it doesn't because it does so much behind the scene and is a
> > > PITA to follow the chain of logic for tests/includes and find what it
> > > actually does with pkgconfig info after it finds it. For all I know
> > > tdebase is properly finding the libdbus-tqt-1 information, but since
> > > the
> > > link_directories doesn't want it, it may be ignoring the information.
> > > Why it includes on some distros and is failing for me? (See my
> > > love/hate comment :-)
> >
> > It failed again:
> >
> > Linking CXX static library libkicker_ui.a
> > [ 54%] Built target kicker_ui-static
> > Scanning dependencies of target tdeinit_kicker-shared
> > [ 54%] Building CXX object
> > kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o
> > Linking CXX shared library libtdeinit_kicker.so
> > /usr/bin/ld: cannot find -ldbus-tqt-1
> > collect2: error: ld returned 1 exit status
> > kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/build.make:108: recipe
> > for target 'kicker/kicker/libtdeinit_kicker.so' failed
> > make[2]: *** [kicker/kicker/libtdeinit_kicker.so] Error 1
> > CMakeFiles/Makefile2:16479: recipe for target
> > 'kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/all' failed
> > make[1]: *** [kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/all]
> > Error 2 Makefile:116: recipe for target 'all' failed
> > make: *** [all] Error 2
> >
> > Even with:
> > link_directories( ${TQT_LIBRARY_DIRS} ${TDE_LIBRARY_DIRS} )
> >
> > the build fails to add -L/opt/trinity/lib
> >
> > Now this is weird. -ldbus-1-tqt has no problem (from CMakeCache.txt)
> >
> > DBUS_1_TQT_LDFLAGS:INTERNAL=-L/opt/trinity/lib;-ldbus-1-tqt
> > DBUS_1_TQT_LDFLAGS_OTHER:INTERNAL=
> > DBUS_1_TQT_LIBDIR:INTERNAL=/opt/trinity/lib
> > DBUS_1_TQT_LIBRARIES:INTERNAL=dbus-1-tqt
> > DBUS_1_TQT_LIBRARY_DIRS:INTERNAL=/opt/trinity/lib
> > <snip>
> > DBUS_STATIC_LDFLAGS:INTERNAL=-ldbus-1;-lpthread;-lrt
> > DBUS_STATIC_LDFLAGS_OTHER:INTERNAL=
> > DBUS_STATIC_LIBDIR:INTERNAL=
> > DBUS_STATIC_LIBRARIES:INTERNAL=dbus-1;pthread;rt
> >
> > and
> >
> > DBUS_TQT_LDFLAGS:INTERNAL=-L/opt/trinity/lib;-ldbus-tqt-1;-ldbus-1
> > DBUS_TQT_LDFLAGS_OTHER:INTERNAL=
> > DBUS_TQT_LIBDIR:INTERNAL=/opt/trinity/lib
> > DBUS_TQT_LIBRARIES:INTERNAL=dbus-tqt-1;dbus-1
> > DBUS_TQT_LIBRARY_DIRS:INTERNAL=/opt/trinity/lib
> > <snip>
> > DBUS_TQT_STATIC_LDFLAGS:INTERNAL=-L/opt/trinity/lib;-ldbus-tqt-1;-ldbus-1
> >;- lpthread;-lrt DBUS_TQT_STATIC_LDFLAGS_OTHER:INTERNAL=
> > DBUS_TQT_STATIC_LIBDIR:INTERNAL=
> > DBUS_TQT_STATIC_LIBRARIES:INTERNAL=dbus-tqt-1;dbus-1;pthread;rt
> > DBUS_TQT_STATIC_LIBRARY_DIRS:INTERNAL=/opt/trinity/lib
> >
> > BUT....
> >
> > The /opt/trinity/lib information never makes it into the link command:
> >
> > /usr/bin/c++  -fPIC -march=x86-64 -mtune=generic -O2 -pipe
> > -fstack-protector --param=ssp-buffer-size=4   -DQT_NO_ASCII_CAST
> > -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
> > -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -I/opt/tqt3/include
> > -I/usr/include/tqt -DQT_NO_ASCII_CAST
> > -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
> > -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -Wl,--no-undefined
> > -shared -Wl,-soname,libtdeinit_kicker.so -o libtdeinit_kicker.so
> > CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o  -L/opt/tqt3/lib
> > -Wl,-whole-archive core/libkicker_core.a -Wl,-no-whole-archive
> > buttons/libkicker_buttons.a ui/libkicker_ui.a
> > ../libkicker/libkickermain.so.1.0.0 /opt/trinity/lib/libtdeabc.so.1.2.0
> > /opt/trinity/lib/libtdeutils.so.1.2.0 ../../libkonq/libkonq.so.4.2.0
> > ../../tdmlib/libdmctl.a -lXau
> > interfaces/libkickoffsearch_interfaces.so.0.0.0 -ldbus-tqt-1 -ldbus-1
> > /opt/trinity/lib/libvcard.so.0.0.0
> > /opt/trinity/lib/libtderesources.so.1.2.0
> > /opt/trinity/lib/libtdeparts.so.2.1.0 /opt/trinity/lib/libtdeio.so.14.0.0
> > /opt/trinity/lib/libtdeui.so.14.0.0 -lfreetype -lfontconfig
> > /opt/trinity/lib/libtdesu.so.14.0.0 -lutil
> > /opt/trinity/lib/libtdewalletclient.so.1.0.1
> > /opt/trinity/lib/libtdecore.so.14.0.0 /opt/trinity/lib/libDCOP.so.14.0.0
> > /opt/trinity/lib/libtdefx.so.14.0.0 -ltqt -ltqt-mt -lXrender -lX11 -lc
> > -lz -lidn -lXcomposite -lICE -lSM -lacl
> > -Wl,-rpath,/opt/tqt3/lib:/build/tde-tdebase/src/build/kicker/libkicker:/o
> >pt
> > /trinity/lib:/build/tde-tdebase/src/build/libkonq:/build/tde-tdebase/src/
> >bui ld/kicker/kicker/interfaces:
> >
> > Any thoughts?
>
> Try attached patch.
>
> Slavek

Quite possibly will need to adjust wherever linking tdecore-shared.
Patch updated.

Slavek
-- 

Attachments: