aldebaran/libqi-python

Building on i686 (nao vm 2.1.12) using boost-1.58 | segfaults in qi

warp1337 opened this issue · 1 comments

Hi,

I assume this is a special use case, however, maybe someone can give me a hint.

I successfully build libqi and libqi-python on Ubuntu 16.04 using qibuild and boost 1.58 (used @severin-lemaignan 's fork of libqi). I can do a

import qi

With no problem at all.

However, built on i686 (in the nao vm version 2.1.12) --- even after successful compilation of both libs, also using qibuild --- I get the following when trying the same in the VM...

Program received signal SIGSEGV, Segmentation fault. 0x0001b83a in ?? () (gdb) bt #0 0x0001b83a in ?? () #1 0xb6e74797 in boost::python::objects::register_dynamic_id<qi::py::PyPromise> () at /home/nao/ros_distro/include/boost/python/object/inheritance.hpp:73 #2 boost::python::objects::register_shared_ptr_from_python_and_casts<qi::py::PyPromise, boost::python::bases<mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_> > () at /home/nao/ros_distro/include/boost/python/object/class_metadata.hpp:97 #3 boost::python::objects::class_metadata<qi::py::PyPromise, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::register_aux2<qi::py::PyPromise, boost::integral_constant<bool, false> > () at /home/nao/ros_distro/include/boost/python/object/class_metadata.hpp:225 #4 boost::python::objects::class_metadata<qi::py::PyPromise, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::register_aux () at /home/nao/ros_distro/include/boost/python/object/class_metadata.hpp:219 #5 boost::python::objects::class_metadata<qi::py::PyPromise, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::register_ () at /home/nao/ros_distro/include/boost/python/object/class_metadata.hpp:205 #6 boost::python::class_<qi::py::PyPromise, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::initialize<boost::python::init<mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_> > (i=..., this=0xbfffe2f4) at /home/nao/ros_distro/include/boost/python/class.hpp:497 #7 boost::python::class_<qi::py::PyPromise, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::class_ (doc=0x0, name=0xb6efc65c "Promise", this=0xbfffe2f4) at /home/nao/ros_distro/include/boost/python/class.hpp:630 #8 qi::py::export_pyfuture () at /home/nao/ros_distro/external/qi/aldebaran/libqi-python/src/pyfuture.cpp:282 #9 0xb6e5bb25 in qi::py::export_all () at /home/nao/ros_distro/external/qi/aldebaran/libqi-python/src/pyexport.cpp:24 #10 0xb7b36b51 in init_module__qi () at /home/nao/ros_distro/external/qi/aldebaran/libqi-python/src/boostpymain.cpp:26 #11 0xb7ab6d5b in boost::detail::function::void_function_ref_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) () from /home/nao/ros_distro/lib/python2.7/site-packages/../../libboost_python.so
I could spent another day on this, but maybe someone has an idea? Maybe @suryaambrose ?

Okay turns out it was the python version which has to be compiled using:

--enable-unicode=ucs4