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 --