[Python-modules-team] Bug#875610: python-pythonmagick: Undefined symbol in python2.7 PythonMagick.x86_64-linux-gnu.so

Dave Williams dave at opensourcesolutions.co.uk
Thu Sep 14 14:48:19 UTC 2017


The undefined symbol is the reference to the constructor:

boost::python::objects::caller_py_function_impl<boost::python::detail::caller<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>

which seems to come from _Color.cpp which defines it using a template:

void Export_pyste_src_Color()
{
    class_< Magick::Color >("Color", init< >())
        .def(init< MagickCore::Quantum, MagickCore::Quantum, MagickCore::Quantum >())
        .def(init< MagickCore::Quantum, MagickCore::Quantum, MagickCore::Quantum, MagickCore::Quantum >())
        .def(init< const std::string& >())
        .def(init< const char* >())
....

The error (as far as my system is concerned) occurred when migrating from python-pythonmagick:amd64 version 0.9.14-3+b1 to 0.9.17-1.

I cannot currently see any significant changes to libboost-python recently. This has stayed static on my system at 1.62.0 for some time having previously been 1.55.0 (which was the jessie default).
The autoconf rules only check for boostlib>1.20 so naturally passes.

I also note the compiler warnings when building include multiple unresolved references but these are seemingly to C API functiont like 
PyObject * PyLong_FromUnsignedLong(unsigned long v)
that have not changed for a long time - so might (as the warning implies) be just a warning a potential issue and not part of this actual problem.



More information about the Python-modules-team mailing list