predefined compiler macro __arm not defined in debian packages

asked 2013-09-24 11:03:32 -0500

enddl22 gravatar image

updated 2014-01-28 17:18:03 -0500

ngrennan gravatar image


I am using pre-compiled binary from , Precise armhf, on an Odroid-U2 board (Ubuntu 12.10 64bit, Kernel 3.0.75, Linaro).

As reported previously,

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 );
     *reinterpret_cast<uint8_t*>(stream.advance(1)) = b;

"__arm" macro seems not defined and is there anyway to check or define this predefined compiler macros?


Just in case, this is gdb call stack.

#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/
#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/
#2  0x4019035e in ros::MessageDeserializer::deserialize() ()
   from /opt/ros/groovy/lib/
#3  0x4018a376 in ros::SubscriptionQueue::call() ()
   from /opt/ros/groovy/lib/
#4  0x40154070 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) ()
   from /opt/ros/groovy/lib/
#5  0x4015500e in ros::CallbackQueue::callAvailable(ros::WallDuration) ()
   from /opt/ros/groovy/lib/
#6  0x400af8f8 in tf::TransformListener::dedicatedListenerThread() ()
   from /opt/ros/groovy/lib/
#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/
#8  0x40e55602 in thread_proxy () from /usr/lib/
#9  0x403bded2 in start_thread ()
   from /lib/arm-linux-gnueabihf/
#10 0x40d55f18 in ?? () from /lib/arm-linux-gnueabihf/
#11 0x40d55f18 in ?? () from /lib/arm-linux-gnueabihf/
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

[Edit] Resolved this by installing Groovy from source code.

edit retag flag offensive close merge delete