predefined compiler macro __arm not defined in debian packages
Hello,
I am using pre-compiled binary from http://wiki.ros.org/groovy/Installation/UbuntuARM , Precise armhf, on an Odroid-U2 board (Ubuntu 12.10 64bit, Kernel 3.0.75, Linaro).
As reported previously,
http://answers.ros.org/question/71107/pandaboard-alignment-trap-when-using-tf/
https://github.com/ros/ros_comm/issues/184
I am also faced the alignment issue on serialization.
I am using ros-groovy-roscpp-serialization 0.3.14-0precise-20130327-1910-+0000 and this issue seems to be already fixed on this version. Since the following code can be found in serialization.h
#ifdef __arm
memcpy(stream.advance(sizeof(1)), &b, 1 );
#else
*reinterpret_cast<uint8_t*>(stream.advance(1)) = b;
#endif
...
...
"__arm" macro seems not defined and is there anyway to check or define this predefined compiler macros?
Best,
Just in case, this is gdb call stack.
(gdb)
#0 0x400b3294 in void ros::serialization::VectorSerializer<geometry_msgs::TransformStamped_<std::allocator<void> >, std::allocator<geometry_msgs::TransformStamped_<std::allocator<void> > >, void>::read<ros::serialization::IStream>(ros::serialization::IStream&, std::vector<geometry_msgs::TransformStamped_<std::allocator<void> >, std::allocator<geometry_msgs::TransformStamped_<std::allocator<void> > > >&) () from /opt/ros/groovy/lib/libtf.so
#1 0x400b3592 in ros::SubscriptionCallbackHelperT<boost::shared_ptr<tf::tfMessage_<std::allocator<void> > const> const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&) () from /opt/ros/groovy/lib/libtf.so
#2 0x4019035e in ros::MessageDeserializer::deserialize() ()
from /opt/ros/groovy/lib/libroscpp.so
#3 0x4018a376 in ros::SubscriptionQueue::call() ()
from /opt/ros/groovy/lib/libroscpp.so
#4 0x40154070 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) ()
from /opt/ros/groovy/lib/libroscpp.so
#5 0x4015500e in ros::CallbackQueue::callAvailable(ros::WallDuration) ()
from /opt/ros/groovy/lib/libroscpp.so
#6 0x400af8f8 in tf::TransformListener::dedicatedListenerThread() ()
from /opt/ros/groovy/lib/libtf.so
#7 0x400af654 in boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, tf::TransformListener>, boost::_bi::list1<boost::_bi::value<tf::TransformListener*> > > >::run() () from /opt/ros/groovy/lib/libtf.so
#8 0x40e55602 in thread_proxy () from /usr/lib/libboost_thread.so.1.46.1
#9 0x403bded2 in start_thread ()
from /lib/arm-linux-gnueabihf/libpthread.so.0
#10 0x40d55f18 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#11 0x40d55f18 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
[Edit] Resolved this by installing Groovy from source code. http://wiki.ros.org/groovy/Installation/Source
Asked by enddl22 on 2013-09-24 11:03:32 UTC
Comments