Trying to get Boost.Python to build on Solaris 10 using SUN Studio 11

Good afternoon, I've so far managed to make decent progress on building RC 1.34's Boost.Python on this OS/Compiler combination using jam v1 with the patches I submitted earlier. Unfortunately I now seem to have hit a brick wall in file pickle_support.cpp. The offending lines of code are line 57, which reads: static object result(&instance_reduce); If I replace this line with plain static object result; the file will compile, however the above line produces the following error message from the compiler: sunpro-C++-action bin/boost/libs/python/build/libboost_python.so/sunpro/debug/pickle_support.o "./boost/python/converter/arg_to_python.hpp", line 215: Error: Could not find boost::python::converter::detail::arg_to_python_base::arg_to_python_base(boost::python::tuple(*)(boost::python::api::object), const boost::python::converter::registration) to initialize base class. "./boost/python/object_core.hpp", line 309: Where: While instantiating "boost::python::api::object_base_initializer<boost::python::tuple(*)(boost::python::api::object)>(boost::python::tuple(*const)(boost::python::api::object)&)". "./boost/python/object_core.hpp", line 309: Where: Instantiated from non-template code. 1 Error(s) detected I think I'm missing something obvious here but I'm not familiar enough with the Boost.Python code to work out what it is. I'd appreciate if someone who is would be able to have a closer look as this is the last file that doesn't build here. Regards, Timo

Timo Geusch <timo@unix-consult.com> writes:
Good afternoon, I've so far managed to make decent progress on building RC 1.34's Boost.Python on this OS/Compiler combination using jam v1 with the patches I submitted earlier.
Unfortunately I now seem to have hit a brick wall in file pickle_support.cpp. The offending lines of code are line 57, which reads:
static object result(&instance_reduce);
If I replace this line with plain static object result; the file will compile, however the above line produces the following error message from the compiler:
sunpro-C++-action bin/boost/libs/python/build/libboost_python.so/sunpro/debug/pickle_support.o "./boost/python/converter/arg_to_python.hpp", line 215: Error: Could not find boost::python::converter::detail::arg_to_python_base::arg_to_python_base(boost::python::tuple(*)(boost::python::api::object), const boost::python::converter::registration) to initialize base class. "./boost/python/object_core.hpp", line 309: Where: While instantiating "boost::python::api::object_base_initializer<boost::python::tuple(*)(boost::python::api::object)>(boost::python::tuple(*const)(boost::python::api::object)&)". "./boost/python/object_core.hpp", line 309: Where: Instantiated from non-template code. 1 Error(s) detected
I think I'm missing something obvious here but I'm not familiar enough with the Boost.Python code to work out what it is.
I'd appreciate if someone who is would be able to have a closer look as this is the last file that doesn't build here.
All I can tell you is this: on line 120 of boost/python/converter/arg_to_python.hpp, there's a test for is_pointer_to_function<T>. That test is returning false when it should be true for the given argument, which according to the error message, is of type boost::python::tuple(*)(boost::python::api::object) The is_pointer test is succeeding, though, which is why we end up in the ctor of pointer_deep_arg_to_python on line 215. If you can figure out how to fix is_pointer_to_function for SunPro, it should start working again. -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
The is_pointer test is succeeding, though, which is why we end up in the ctor of pointer_deep_arg_to_python on line 215. If you can figure out how to fix is_pointer_to_function for SunPro, it should start working again.
Thanks David, I'll have a look into this next w/e.
participants (2)
-
David Abrahams
-
Timo Geusch