Just noticed that all of those failed open library calls are smoke and mirrors....its searching in alot of places, but eventually finds and opens all of the libraries successfully. So probably no need to worry about that.

The last function call before the futex is a gettimeofday call. Can you compile a normal program with that call and get it to run?



On 4 August 2010 03:42, Sebastian Haug <sebhaug@gmail.com> wrote:
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@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@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)
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users



--
Phone : +82-10-5400-3296 (010-5400-3296)
Home: http://snorriheim.dnsdojo.com/
Yujin Robot: http://www.yujinrobot.com/
Embedded Control Libraries: http://snorriheim.dnsdojo.com/redmine/wiki/ecl