Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

A question about predefined compiler macros, "__arm".

Hello,

I am using pre-compiled binary from http://wiki.ros.org/groovy/Installation/UbuntuARM ,Precise armhf, on an Odroid-U2 board (Ubuntu 12.11 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?)

A question about predefined compiler macros, "__arm".

Hello,

I am using pre-compiled binary from http://wiki.ros.org/groovy/Installation/UbuntuARM ,Precise armhf, on an Odroid-U2 board (Ubuntu 12.11 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] Resolve this by installing Groovy from source code. http://wiki.ros.org/groovy/Installation/Source

click to hide/show revision 3
No.3 Revision

A question about predefined compiler macros, "__arm".macro __arm not defined in debian packages

Hello,

I am using pre-compiled binary from http://wiki.ros.org/groovy/Installation/UbuntuARM ,Precise , Precise armhf, on an Odroid-U2 board (Ubuntu 12.11 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] Resolve Resolved this by installing Groovy from source code. http://wiki.ros.org/groovy/Installation/Source

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

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