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:/opt/trinity/lib:/build/tde-tdebase/src/build/libkonq:/build/tde-tdebase/src/build/kicker/kicker/interfaces:
Any thoughts?
--
David C. Rankin, J.D.,P.E.