[ros-users] Running ROS on Gumstix | rosout hangs within futex()

Sebastian Haug sebhaug at gmail.com
Tue Aug 3 18:42:12 UTC 2010


Hi Daniel,

thank you very much for your help! This is what I found out:

On Mon, Aug 2, 2010 at 8:13 PM, Daniel Stonier <d.stonier at gmail.com> wrote:
> - When you compiled your hello world ros package, did you add any ros
> dependencies (i.e. is it linking to any ros libs? ldd).
I did some testing with the dependencies. If I set my hello_world
package to have no dependencies, it compiles (on the gumstix using the
native compiler) and runs just fine. If I add the roscpp dependency to
the manifest.xml it compiles (on the gumstix using the native
compiler) just fine but gets stuck within the futex() call. Below I
attachted the list of linked libraries for both cases [1].

The main problem is that not only my package get stuck in the futex()
call but also e.g. the rosout binary. The rosout package also depends
on roscpp, so I guess the problem lies somewhere there or within the
dependencies it loads.

> - If not, then it's just like a regular cmake cross compile using
> rostoolchain.cmake for configuration of your toolchain. The only difference
> then must be in how you did by hand compared to how its configured in
> rostoolchain.cmake. ros. The build command, rosmake, per se doesn't actually
> do anything when it comes to compiling, it just works out the trail of
> dependencies that must be compiled.
On my build system I have a rostoolchain.cmake wich points to the
cross-compilation stuff. I removed this file when I copied ros to the
embedded system.

On Mon, Aug 2, 2010 at 9:10 PM, Daniel Stonier <d.stonier at gmail.com> wrote:
> Looks like it's not finding the libraries it needs to dynamically load. Are
> you cross compiling on your pc and running on the board from the same
> locations?
I did check for the linked libraries. Output see attached below. I
think it finds all needed libraries. See [1].

Concerning compilation. By now I have tried out some different ways:
- Cross-compilation as described in the howtos I linked in my first
post. I compiled ROS and the hello_world package on my build machine
(ubuntu 10.04) with the open-embedded toolchain. Copied everything to
gumstix --> rosout and hello_world get stuck within futex().

- Complete native compilation of ROS: I did a svn checkout of ROS on
the gumstix and compiled everything there (which takes a while...).
Then I copied the hello world sources and compiled hello world there.
--> rosout and hello_world get stuck within futex().

At the moment I am running out of ideas what else I could try...

Thanks again
Sebastian

[1]
directly compiled on arm in hello_world package using rosmake WITH
dependency on roscpp --> gets STUCK in futex()
	librosstack.so => /home/root/ros/tools/rospack/lib/librosstack.so (0x40026000)
	librospack.so => /home/root/ros/tools/rospack/lib/librospack.so (0x4003e000)
	libroslib.so => /home/root/ros/core/roslib/lib/libroslib.so (0x4006f000)
	liblog4cxx.so.10 => /usr/lib/liblog4cxx.so.10 (0x40080000)
	libboost_thread-mt.so => /usr/lib/libboost_thread-mt.so (0x401e6000)
	librosconsole.so =>
/home/root/ros/core/rosconsole/lib/librosconsole.so (0x40201000)
	libXmlRpc.so => /home/root/ros/3rdparty/xmlrpcpp/lib/libXmlRpc.so (0x4023b000)
	libboost_signals-mt.so => /usr/lib/libboost_signals-mt.so (0x40254000)
	libros.so => /home/root/ros/core/roscpp/lib/libros.so (0x40272000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x403ef000)
	libm.so.6 => /lib/libm.so.6 (0x404a0000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40513000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x40525000)
	libc.so.6 => /lib/libc.so.6 (0x40544000)
	libboost_thread.so.1.43.0 => /usr/lib/libboost_thread.so.1.43.0 (0x4066b000)
	libaprutil-1.so.0 => /usr/lib/libaprutil-1.so.0 (0x40687000)
	libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0x406a9000)
	libuuid.so.1 => /usr/lib/libuuid.so.1 (0x406d2000)
	librt.so.1 => /lib/librt.so.1 (0x406de000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x406ed000)
	libdl.so.2 => /lib/libdl.so.2 (0x40726000)
	libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0x40731000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x4073e000)
	libboost_signals.so.1.43.0 => /usr/lib/libboost_signals.so.1.43.0 (0x40768000)
	libboost_filesystem.so.1.43.0 =>
/usr/lib/libboost_filesystem.so.1.43.0 (0x40787000)
	libboost_system.so.1.43.0 => /usr/lib/libboost_system.so.1.43.0 (0x407a4000)
	/lib/ld-linux.so.3 (0x40000000)

directly compiled on arm in hello_world package using rosmake WITHOUT
dependency on roscpp --> runs FINE
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40026000)
	libm.so.6 => /lib/libm.so.6 (0x400d7000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4014a000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x4015c000)
	libc.so.6 => /lib/libc.so.6 (0x4017b000)
	/lib/ld-linux.so.3 (0x40000000)



More information about the ros-users mailing list