trinity-users@lists.pearsoncomputing.net

Message: previous - next
Month: July 2012

Re: [trinity-users] TDE for ARM

From: Mike Howard <mike@...>
Date: Fri, 20 Jul 2012 13:25:23 +0100
On 20/07/2012 07:59, Timothy Pearson wrote:
>> 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!