Hi All,
Maybe somebody could give me a hint on this. I hope it's not something
obvious.
For my own benefit, I'm attempting to rebuild the Red Hat rpms targeting
armv5tel, so that I may use Trinity on my Toshiba AC100. I'm working
through the main install requirements in order to get a basic install so
I've done tqtinterface, arts, dbus-tqt, dbus-1-tqt, tdelibs along with
all the requires but can't get past tdebase.
tdebase gets almost there, but boms out at;
## ---- Start error output ---- ###
[100%] Building CXX object
kicker/kicker/CMakeFiles/kicker-module.dir/kicker_kdeinit_module.cpp.o
cd /root/rpmbuild/BUILD/kdebase/build/kicker/kicker && /usr/bin/c++
-Dkicker_module_EXPORTS -DHAVE_CONFIG_H -O2 -g -march=armv5te
-DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT
-DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h
-fPIC -I/root/rpmbuild/BUILD/kdebase/libkonq -I/usr/lib/qt-3.3/include
-I/usr/include/tqt -o CMakeFiles/kicker-module
dir/kicker_kdeinit_module.cpp.-o -c
/root/rpmbuild/BUILD/kdebase/build/kicker/kicker/kicker_kdeinit_module.cpp
Linking CXX shared module kicker.so
cd /root/rpmbuild/BUILD/kdebase/build/kicker/kicker && /usr/bin/cmake -E
cmake_link_script CMakeFiles/kicker-module.dir/link.txt -verbose=1
/usr/bin/c++ -fPIC -O2 -g -march=armv5te -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,kicker.so -o kicker.so
CMakeFiles/kicker-module.dir/kicker_kdeinit_module.cpp.o
-L/usr/lib/qt-3.3/lib libkdeinit_kicker.so
../libkicker/libkickermain.so.1.0.0 /usr/lib/libabc.so.1.2.0
/usr/lib/libvcard.so.0.0.0 /usr/lib/libkresources.so.1.2.0
/usr/lib/libkutils.so.1.2.0 /usr/lib/libkparts.so.2.1.0 /
sr/lib/libkio.so.4.2.0 /usr/lib/libkdeui.so.4.2.0 -lfreetype
-lfontconfig /usr/lib/libkdesu.so.4.2.0 -lutil
/usr/lib/libkwalletclient.so.1.0.1 /usr/lib/libkdecore.so.4.2.0
/usr/lib/libDCOP.so.4.2.0 /usr/lib/libkdefx.so.4.2.0 -ltqt -lqt-mt
-lXrender -lX11 -lz -lXcomposite -lXfixes -lICE -lSM
/usr/bin/ld: warning: libkonq.so.4, needed by libkdeinit_kicker.so, not
found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libkickoffsearch_interfaces.so.0, needed by
libkdeinit_kicker.so, not found (try using -rpath or -rpath-link)
libkdeinit_kicker.so: undefined reference to
`KonqBookmarkManager::s_bookmarkManager'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_invoke(int, QUObject*)'
libkdeinit_kicker.so: undefined reference to `typeinfo for
KickoffSearch::Plugin'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_property(int, int, QVariant*)'
libkdeinit_kicker.so: undefined reference to `typeinfo for
KickoffSearch::KickoffSearchInterface'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::KickoffSearchInterface(QObject*,
char const*'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::staticMetaObject()'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::Plugin::staticMetaObject()'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_cast(char const*)'
libkdeinit_kicker.so: undefined reference to `vtable for
KickoffSearch::KickoffSearchInterface'
libkdeinit_kicker.so: undefined reference to
`KickoffSearch::KickoffSearchInterface::qt_emit(int, QUObject*)'
libkdeinit_kicker.so: undefined reference to
`KonqPopupMenu::KonqPopupMenu(KBookmarkManager*, QPtrList<KFileItem>
const&, KURL const&, KActionCollection&, KNewMenu*, QWidget*, unsigned
int, unsigned int)'
libkdeinit_kicker.so: undefined reference to
`KonqOperations::doDrop(KFileItem const*, KURL const&, QDropEvent*,
QWidget*)'
collect2: ld returned 1 exit status
make[2]: *** [kicker/kicker/kicker] Error 1
make[2]: Leaving directory `/root/rpmbuild/BUILD/kdebase/build'
make[1]: *** [kicker/kicker/CMakeFiles/kicker.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/root/rpmbuild/BUILD/kdebase/build'
/usr/bin/cmake -E cmake_progress_report
/root/rpmbuild/BUILD/kdebase/build/CMakeFiles
[100%] Built target kicker-module
make[1]: Leaving directory `/root/rpmbuild/BUILD/kdebase/build'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.BTlI5u (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.BTlI5u (%build)
## ---- End error output ---- ###
Two lines from above;
/usr/bin/ld: warning: libkonq.so.4, needed by libkdeinit_kicker.so, not
found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libkickoffsearch_interfaces.so.0, needed by
libkdeinit_kicker.so, not found (try using -rpath or -rpath-link)
suggest to me it's a simple case of the libs libkonq.so.4 &
libkickoffsearch_interfaces.so.0 not being found by
libkdeinit_kicker.so. They do not exist on the system but are created
during the build process. With that in mind, I did a quick and dirty
hack of 'kicker/kicker/CMakeLists.txt' and added the two directories
containing the two 'missing' libs to the 'link_directories' stanza but
to no avail. The change adds '-L' entries for the locations of the libs
but doesn't alter the result.
Anybody know how I can rectify this correctly? I guess 'rpath' will need
to come into play also.
Any pointers appreciated.
Cheers,
Mike.
In my experience the ARM toolchain can introduce "interesting"
problems of
its own. As tdebase builds properly on i386/amd6, and CMake is
technically in charge of knowing what executables need to be linked
against which generated libraries, I would suspect a problem in the armel
toolchain binaries, possibly including CMake itself.
Tim
Ok.
It's probably complicated further by the fact that I'm not running Red
Hat on my AC100 (obviously) but I'm running Red Sleeve.
Anyway, I got 'tdebase' rpm to rebuild successfully by patching
'kicker/kicker/CMakeLists.txt', adding the following line after the
link_directories line;
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath
-Wl,${CMAKE_SOURCE_DIR}/build/libkonq -Wl,-rpath
-Wl,${CMAKE_SOURCE_DIR}/build/kicker/kicker/interfaces "
Cheers,
Mike.
--
Any question is easy if you know the answer!