[ros-users] cross-compiling self_test fails

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: ros-users@code.ros.org
Subject: [ros-users] cross-compiling self_test fails
Hi!

I am trying to cross-compile ROS (diamondback) for the Nao (again) in a
32-bit ubuntu maverick chroot environment.
However, something seems to go wrong.
I have rostoolchain.cmake setup to include to the cross-compilation
toolchain file provided by Aldebaran,
and manually set CMAKE_FIND_ROOT_PATH to point to the cross-compilation
toolchain directories.

The ros base system builds without errors, however when I try to compile
the package:

[ self_test ]

I receive the linker error:
/usr/lib/libboost_regex-mt.so: undefined reference to
`std::ctype<char>::_M_widen_init() const@GLIBCXX_3.4.11'
collect2: ld returned 1 exit status


I think this problem is that ros tries to link to my local boost version
instead of the one provided by Aldebaran.
More sepecific, I think the problem is that the file
CMakeFiles/selftest_rostest.dir/link.txt
contains the passage
-Wl,-rpath,/usr/lib

If I delete that part from the file, I can compile self_test, but it gets
overwritten once I call rosmake again.
The passage is also in
test/CMakeFiles/error_selftest.dir/link.txt
test/CMakeFiles/no_id_selftest.dir/link.txt
test/CMakeFiles/nominal_selftest.dir/link.txt
test/CMakeFiles/exception_selftest.dir/link.txt

and I think it is somehow automatically generated by the
rosbuild_add_gtest_build_flags line (or something like that).
However, I was unable to find the macro/script which generates this
dependency.

Can someone help me out on this and either provide a patch or tell me what
I am potentially doing wrong?

Thanks!
Dan