Ros barebones compiled from source for QNX crashes with memory fault
I have successfully cross compiled ROS barebones for QNX to be run on ArmV7. When I attempt to run ros master or rosout the program crashes with a memory fault.
Debugging it further reveals that it crashes at a specific boost function call, thread_specific_ptr<t>::reset() in CallbackQueue.cpp under roscpp library. Internally the Boost library is cross compiled by linking against boost's implementation of pthread.cpp. However, in QNX I see that the pthread library is found in libm.so instead of libpthread.so as in linux. Is this true? If so, do you think this memory fault might be because cross compiled boost is linking against its own pthread.cpp as opposed to QNX's libm.so?
Are there alternatives to this thread_specific_ptr that I can explore and replace? Any pointers or inputs would be highly appreciated
The cross-compiling community within the ROS community is rather small, and I think the nr of people trying to use QNX is even smaller, and then you also only see the intersection that frequents ROS Answers here, so I'm not too optimistic you'll get any response. Unfortunately I'd say, as it's ..
.. very interesting to see whether it's doable to get a cross-compiled QNX version of ROS working reliably.
Is this hobby / interest, or are you looking to use ROS on QNX for a particular purpose?
This is for official purpose. We thought of utilizing the logging features of ros to debug in a RT environment. I was successful in cross compiling it and getting it to publish data to a rostopic from a QNX Armv7 machine